C语言程序实践源代码-学生成绩管理系统
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
上个学期C语言程序实践课的作业题,发出来给有需要的人参考吧。代码是纯C写的,已加注释。下面是作业要求:
* 设计一个学生成绩管理系统(学号、姓名、总分、物理、化学、计算机、英语、数学、体育)
* 采用单链表的方式设计
* 使用菜单方式进行操作,并具有操作出错提示
* 可以对记录进行增加、显示、保存到文件、读取文件、删除、查询等操作具体的菜单如下:
" 0. init list", /*初始化*/
" 1. Enter list",/*输入记录*/
" 2. Delete a record from list", /*从表中删除记录,可以依照学号或姓名进行查找删除。如果删除后没有保存到文件,直接退出系统时,需要提醒保存文件*/
" 3. print list ", /*显示所有记录到屏幕*/
" 4. Search record on name",/*按照姓名查找记录*/
" 5. Save the file", /*将单链表中记录保存到文件中*/
" 6. Load the file", /*从文件中读入记录*/
" 7. compute the score", /*计算所有学生的总分和均分*/
" 8. insert record to list ",/*插入记录到表中,插入记录后,直接退出时,需要提醒保存文件*/
" 9. copy the file to new file",/*复制文件到新的文件中*/
" 10. sort to make new file",/*排序,将学生按照分数(总分)由高到低排名*/
" 11. append record to file",/*追加记录到文件中,追加记录后,直接退出时,需要提醒保存文件*/
" 12. index on number", /*索引,按照学号进行排序*/
" 13. total on number",/*分类合计,依据不同学科进行分类统计(平均分)和排名*/
" 14. Quit" /*退出系统*/
只完成这些要求不复杂,我大概花了2个小时,但是考虑下面一些细节的话,就要耗费一番功夫了...
1.命令的操作顺序需要正确。例如所有的操作前必须初始化,按总分排序前必须计算总分等。
2.输入的学号和姓名必须检查合法性,这里限定学号为纯数字串,
姓名为纯大小写字母串,且长度有限。
3.输入信息时要判断是否存在学号相同的学生。
4.因为存在按姓名查找功能,则假定按姓名删除时姓名唯一,否则应按学号查找删除。
因此按姓名查找应能打印多个姓名相同的情况,而按姓名删除不需要删除多个姓名相同的学生信息。
5.复制文件时应排除源文件名与目标文件名相同的情况,否则会得到空白文件。
6.追加记录到文件时,链表中始终不应出现追加的信息,文件中在未保存前也不应出现追加的信息。
追加的信息应位于文件末尾。
7.菜单应能处理用户输入的错误命令,例如输入大数字、字符、字符串等。
8.退出时应释放链表。
下面给出完整的代码,比较长,建议拷贝下来放到IDE里面看...
最新评论