C语言——学生信息管理系统
功能展示
界面展示
所有功能模块:
功能1:菜单模块(显示功能菜单)
功能2:增加学生信息
功能3:输出学生信息(查看所有学习信息)
功能4:修改学生信息
第一步:修改信息
第二步:查询验证
功能5:删除学生信息
第一步:删除信息
第一步:查询验证
功能6:查询单个学生信息
- 按照学号查询:
- 按照姓名查询:
- 查询为空:
功能7:排序学习信息(按照学号升序排序)
在排序之前,先增加几条数据:
执行排序:
验证结果(该数据无法验证是否执行头排序)
再插入一条比第一条小的数据(用于执行头排序):
执行(头)排序:
验证结果:
功能8:退出管理系统
心得分享
过程梳理 首先要根据需求分析,将各个功能模块罗列出来 数据建模,对数据进行封装,创建一个student结构体,添加我们需要的各种数据。 创建一个可以循环输入命令的菜单,并且可以退出,还可以检查输入的指令是否匹配。 然后一个个功能模块实现就可以了。但要注意实现功能的顺序。(写功能也要有顺序,这样可以事半功倍) 第一个功能,肯定就是添加了,每当需要添加的时候,就需要申请一块内存,创建一个student结构体,并赋予相应的数据。 第二个功能,就是打印全部数据。 第三个功能,实现单个数据的查询。 第四个功能,实现单个数据的删除。(删除和修改都差不多) 第五个功能,实现单个数据的修改。 第六个功能,也就是最难的功能——链表排序 最后,对细节进行处理。 个人总结 当思维混乱的时候,不妨画图来理解。 写循环时,一定要明确跳出的逻辑和循环的次数和迭代方法。 在实现功能的时候,还需要考虑特殊情况!边界条件的处理尤其重要。(在排序的时候,一定要考虑多个因素) 总体难度不大,但是需要一步一步去实现,更多的是考验对细节的处理,后面又看了别人的实现方法,发现自己的思维方式还是比较呆板,别人几行就可以搞定的,自己还是用了各种if分支和for循环才搞定,还得加强自己的思维能力,多刷算法!
学生管理系统(完整代码)
main.cpp
# include "student.h" int main(){ StudentNode* s = NULL; int command; while (true) { myMenu(); // 展示菜单 scanf("%d", &command); // 输入 switch (command) { case 1:// 增加学生信息 AddStudent(&s); break; case 2:// 删除学生信息 DeleteStudent(&s); break; case 3:// 修改学生信息 UpdateStudent(&s); break; case 4:// 查询学生信息 (可按照姓名和学号) SearchStudent(&s); break; case 5:// 输出学生信息 (打印所有学生信息) MyPrint(s); break; case 6:// 排序学生信息 (按照学号升序排序) MySort(&s); break; case 0:// 退出管理系统 exit(); break; default : //输入有误 error(); break; } system("pause"); } }
student.h
student.cpp
下一篇:
「题解」字符串中的所有单词进行倒排