跳到主要内容

C语言学籍管理系统

· 阅读需 5 分钟
Meoo

由学生成绩管理系统修改,并且进一步完善,修复了学生管理系统的许多bug。

需求

(1)系统启动后,弹出一个用户界面,能实现人机交互的功能。而且只能通过界面菜单命令实现各种功能(包括系统退出功能),可以设计欢迎词。

(2)学生基本信息录入:录入信息包括学号、姓名、性别、宿舍号、电话号码等。

(3)学生成绩基本信息录入: 学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩。

(4)计算综合成绩:若本课程无实验(如实验成绩为-1),综合成绩=平时成绩30% +卷面成绩70%;若本课程有实验(如实验成绩不为-1),综合成绩=平时成绩15%+实验成绩15%+卷面成绩*70%。

(5)计算实得学分:采用等级学分制。综合成绩在90—100分之间,实得学分=学分x100%;综合成绩在80—90分之间,实得学分=学分x80%;综合成绩在70—80分之间,实得学分=学分x75%;综合成绩在60—70分之间,实得学分=学分x60%;综合成绩在60分以下,实得学分=学分x0%;

(6)学生基本情况的查询并输出:输入一个学生的学号或姓名,可查询出此学生的基本信息并显示输出;输入一个宿舍号码,可查询出本宿舍所有学生的基本信息并显示输出。

(7)学生成绩信息的查询并输出:输入一个学生的学号或姓名,可查询出此学生的所有课程情况。(如输出:学号,姓名,课程编号,课程姓名,综合成绩,实得学分等,并统计学生共修课程数目以及实得总学分值。)

(8)排序(分别按综合成绩和实得学分),输出按照综合成绩(或实得学分)升序或降序排序后的学生信息以及对应的课程成绩信息(或实得学分信息)。

(9)成绩修改:查找后修改成绩,修改后按照综合成绩重新排序,并输出学生信息和对应课程成绩和综合成绩。

(10)成绩追加:增补遗漏的学生以及对应的信息和对应的课程成绩,并计算出综合成绩和实得学分,增补以后重新排序,并输出新增学生信息和对应课程成绩和综合成绩。

附加功能

(11)删除学生信息:删除不需要的学生对应的记录(包括姓名、学号、课程、成绩等)。

(12)成绩(学分)分段:将学生成绩(学分)分段。

(13)文件存储:把学生信息和对应的课程成绩信息存入到文件中。

(14)文件输出:输出文件中的内容。

(15)文件导入:从文件中导入数据到学籍管理系统中,然后进行管理。

代码

代码在此

总结

  1. 编写过程中遇到很多问题,比如fclose关闭文件流,至今未搞明白,只有一个fp文件指针变量的信息查询,无论在哪调用fclose,无论调用多少次fclose,都无法关闭文件流,导致文件被进程占用,无法进行删除和替换,最终用fcloseall解决了,很奇怪。
  2. 冗余代码要删除,它们很容易干扰你的的思路。
  3. 输入时,缓冲区问题要注意。
  4. 仍然是case后忘加break问题,需要细心。
  5. 坐的时间长一定要出去走走,头脑清醒了思路来得更快,效率更高。