最新消息:点击查看大S的省钱秘笈

C语言程序实践源代码-学生成绩管理系统

编程相关 Slyar 255浏览 0评论

文章作者:姜南(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里面看...

转载请注明:Slyar Home » C语言程序实践源代码-学生成绩管理系统

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (9)

  1. 第34行 int SWITCH[16] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 是什么意思?
    独孤求败4年前 (2013-04-29)回复
  2. 谢谢了!都是学生我们的难处谢谢你能体谅!
    飘行者4年前 (2013-03-04)回复
  3. @xiaoxi 你也忒懒了吧,用别人的代码还懒得改动
    流水账6年前 (2010-09-12)回复
  4. 怎么改才能输入中文名字啊
    yyyo7年前 (2010-06-30)回复
  5. @Slyar 谢谢!
    xiaoxi7年前 (2010-02-20)回复
  6. @xiaoxi wordpress代码高亮插件
    Slyar7年前 (2010-02-19)回复
  7. @Slyar 谢谢你的回复,就是你这篇日志中的代码粘贴出来的这种效果是怎么实现的。
    xiaoxi7年前 (2010-02-19)回复
  8. @xiaoxi 啊?这我就不知道了...
    Slyar7年前 (2010-02-19)回复
  9. 请问怎样粘贴代码,使每行代码前面都有一个编号?谢谢
    xiaoxi7年前 (2010-02-18)回复