c语言学生管理系统

创建结构体里面包含学生的各种信息。

struct xs {
	int xh;
	char xm[20];
	int gs, yy, wl;
	double pj;
	struct xs* next;
};

创建菜单

void menu()
{
	printf("\n************************************\n");
	printf("*         学生管理系统(1.0)        *\n");
	printf("  ************************************\n");
	printf("  ************************************\n");
	printf("*             1.创建链表             *\n");
	printf("*             2.显示链表             *\n");
	printf("*             3.保存文件             *\n");
	printf("*             4.读取文件             *\n");
	printf("*             5.系统退出             *\n");
	printf("  ************************************\n");
	printf("*          请选择操作:(1-5)         *\n");
	printf("  ************************************\n");
}

创建链表

struct xs* create()
{
	struct xs* hd = (struct xs*)malloc(sizeof(struct xs)), * p = NULL, * r = NULL;
	hd->next = NULL;
	r = hd;
	printf("请输入学生人数: ");
	scanf("%d", &rs);
	for (int i = 1; i <= rs; i++)
	{
		printf("请输入第%d个学生成绩信息: \n", i);
		p = (struct xs*)malloc(sizeof(struct xs));
		p->next = NULL;
		printf("学号:");
		scanf("%d", &p->xh);
		printf("姓名:");
		scanf("%s", &p->xm);
		printf("高数:");
		scanf("%d", &p->gs);
		printf("英语:");
		scanf("%d", &p->yy);
		printf("物理:");
		scanf("%d", &p->wl);
		p->pj = (p->gs + p->yy + p->wl) / 3.0;
		r->next = p;
		r = r->next;
	}
	printf("创建链表完毕,请按任意键继续!\n");
	_getch();
	return hd;
}

打印信息

void print(struct xs* hd)
{
	if (hd == NULL)
	{
		printf("当前链表为空,请按任意键继续!");
		_getch();
		return;
	}
	struct xs* p = hd->next;
	printf("   学号  姓名  高数  英语 物理  平均  \n");
	printf("  ************************************\n");
	while (p != NULL)
	{
		printf("    %d%     -6s     %d     %d%     d     %.2f\n", p->xh, p->xm, p->gs, p->yy, p->wl, p->pj);
		p = p->next;
	}
	printf("  ************************************\n");
	printf("链表显示完毕,请按任意键继续!\n");
	_getch();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/319298.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用MATLAB连接USRP

文章目录 前言一、本地环境二、前期准备1、MATLAB版本、labview版本、UHD 版本对应关系2、下载 GNU Radio Companion3、确定 USRP UHD 版本①、下载一个 USRP 硬件驱动程序②、确认 MATLAB 的 UHD 版本 三、下载 USRP 通信工具箱支持包四、使用 MATLAB 连接 USRP 前言 本文记录…

vue中组件的传递取值方式总结

vue中组件的传递取值方式总结 目录概述需求&#xff1a; 设计思路实现思路分析1.父子传参2.vue 子组件接收数据进行渲染或处理3.父组件通过v-on监听自定义事件并取得传递的值4.ref引用子组件5.通过provide/inject传值6.attrs和listeners7.通过vuex进行全局状态管理8.Vue mixin9…

Python 分支结构案例-个人所得税计算器

个人所得税的计算方法&#xff08;旧版&#xff09;如下表&#xff1a; 要使用代码根据工资计算税后收入&#xff0c;可以用分支结构编写一个计算器&#xff1a; """ example018 - 个人所得税&#xff08;旧版算法&#xff09;计算器Author: 不在同一频道上的呆…

扩展卡尔曼滤波(Extended Kalman Filter, EKF):理论和应用

扩展卡尔曼滤波&#xff08;Extended Kalman Filter, EKF&#xff09;&#xff1a;理论、公式和应用 引言 卡尔曼滤波是一种广泛应用于估计动态系统状态的技术&#xff0c;但当系统的动态模型或测量模型是非线性的时候&#xff0c;传统的卡尔曼滤波方法就显得无能为力。扩展卡…

Modbus协议学习第二篇之Modbus poll slave仿真软件初体验

软件准备 学习Modbus离不开硬件&#xff0c;好在我们可以通过仿真软件来模拟硬件&#xff0c;本篇博客就来简单介绍一下Modbus仿真软件的最基础使用方法&#xff0c;需要用到的3款仿真软件如下&#xff1a; Modbus Poll 64位 / Modbus Poll 32位&#xff08;根据自己机器位数选…

机器学习周记(第二十五周:文献阅读-DSTIGNN)2024.1.8~2024.1.14

目录 摘要 ABSTRACT 1 论文标题 2 论文摘要 3 论文背景 4 过去研究 5 论文研究 5.1 问题描述 5.2 论文模型 5.2.1 时空交互学习模块&#xff08;Spatiotemporal Interactive Learning Module&#xff09; 5.2.2 动态图推理模块&#xff08;Dynamic Graph Inference…

哪些代码是 Code Review 中的大忌?—— 以 Python 为例

Code Review 首要达成的结果是更好的可读性。 在此基础上才是进一步发现项目的 Bug、处理性能优化上的问题。 因为&#xff0c;编码是给人看的&#xff0c;不是给计算机&#xff08;Coding for human, NOT computer&#xff09;。 一. 滥用缩写命名 Overusing abbreviation …

软件工程:黑盒测试等价分类法相关知识和多实例分析

目录 一、黑盒测试和等价分类法 1. 黑盒测试 2. 等价分类法 二、黑盒测试等价分类法实例分析 1. 工厂招工年龄测试 2. 规定电话号码测试 3. 八位微机测试 4. 三角形判断测试 一、黑盒测试和等价分类法 1. 黑盒测试 黑盒测试就是根据被测试程序功能来进行测试&#xf…

4_【Linux版】重装数据库问题处理记录

1、卸载已安装的oracle数据库。 2、知识点补充&#xff1a; 3、调整/dev/shm/的大小 【linux下修改/dev/shm tmpfs文件系统大小 - saratearing - 博客园 (cnblogs.com)】 mount -o remount,size100g /dev/shm 4、重装oracle后没有orainstRoot.sh 【重装oracle后没有orains…

【面试突击】并发编程、线程池面试实战

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

2024--Django平台开发-Django知识点(七)

频率超高的问题 Redis的问题虚拟环境mysqlcient和pymysql短信服务&#xff0c;一期用的是腾讯云短信 虚拟环境 可以用来创建虚拟环境的&#xff1a; virtualenv这个模块&#xff0c;简单易上手&#xff0c;推荐 小白不建议&#xff0c;conda&#xff0c;如果大家用这个&…

NSSCTF Round# 16 Basic pwn方向题解

pwn nc_pwnre 没有附件&#xff0c;nc直接连接 给了一段汇编代码&#xff0c;让gpt翻译一下 这段汇编代码是一个循环&#xff0c;它对存储在ebpi位置的字符串进行处理。让我逐步解释一下每个指令的作用&#xff1a;mov eax, [ebpi]: 将ebpi位置的值加载到eax寄存器中。 add e…

【汇编要笑着学】汇编模块化编程 | call和ret调用指令 | jmp跳转指令 | inc自加指令

Ⅰ.汇编模块化编程 0x00 一个简单的例子 我们了解模块化编程前先给出一个例子&#xff0c;方便大家快速了解。 SECTION MBR vstart0x7c00 ; 起始地址编译在0x7c00mov ax,cs mov ds,ax mov es,axmov ss,axmov fs,axmov sp,0x7c00 ; 上面这些都没什…

系列十、Spring Security登录接口添加验证码

一、Spring Security登录接口添加验证码 1.1、概述 一般企业开发中&#xff0c;登录时都会有一个验证码&#xff0c;基于Spring Security的登录接口默认是没有验证码的&#xff1f;那么如何把验证码功能集成到Spring Security的登录接口呢&#xff1f;请看下文&#xff01; 1.…

基于SSM的仓库在线管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

C++学习笔记——输入、输出和文件

目录 一、标准输入输出 2.1下面是它们的基本用法 解释 二、格式化输入输出 2.2下面是一个示例 解释 三、文件读写 3.3下面是一个文件读写的示例 解释 四、异常处理和错误检测 4.1下面是一个示例 解释 五、一个实例代码 5.1如何读取 CSV 文件&#xff0c;并计算每…

大厂是怎么做支付系统的流程容错的?

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 1 单据关联 如某些订单域内部的多种单据间存在关联关系一样&#xff0c;支付设计上也有单据间关联设计。如所有逆向过程都须持有正向的单据&#xff0c;因此退款须关联到原来的支付&#…

LTESniffer:一款功能强大的LTE上下行链路安全监控工具

关于LTESniffer LTESniffer是一款功能强大的LTE上下行链路安全监控工具&#xff0c;该工具是一款针对LTE的安全开源工具。 该工具首先可以解码物理下行控制信道&#xff08;PDCCH&#xff09;并获取所有活动用户的下行链路控制信息&#xff08;DCI&#xff09;和无线网络临时…

为了这口醋,包的这饺子。为了Selenium,学有限的CSS,逐步替换XPATH

Learn about CSS rules and pseudo-classes to help you move your XPATH locators to CSS. 1. 最基本IdElement TypeDirect ChildChild or Sub-ChildClass 2. 深入一点Next SiblingAttribute ValuesChoosing a Specific Match Sub-String Matches 3 参考资料 In order for Sel…

Java零基础教学文档第五篇:jQuery

今日新篇章 【jQuery】 【主要内容】 jQuery简介 jQuery安装 jQuery语法 jQuery选择器 jQuery事件处理 jQueryDOM操作 jQuery元素遍历 jQuery过滤 jQuery其它方法 【学习目标】 1.jQuery简介 1.1 jQuery简介 jQuery 库可以通过一行简单的标记被添加到网页中。 1.…