第10章-学生成绩管理系统.pptx

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计?第10章 学生成绩管理系统10.1 系统的功能五大功能模块:1.输入记录模块:此模块主要实现将学生记录存入单链表中的工作。在系统中,记录由学生的基本信息和成绩信息等字段构成。这些数据可以从以二进制形式存储的数据文件(已经录入的记录)中读入,也可通过键盘逐个输入新的学生记录。当从数据文件中读入记录时,就是从数据文件中依次把记录逐条复制到单链表中。2.查询记录模块:主要实现在单链表中查找满足相关条件的学生记录。在此系统中,用户可以按照学生的学号或姓名在单链表中进行查找。若找到满足条件的记录,则给出指向该记录的指针。否则,给出值为NULL的空指针,并打印出未找到该学生记录的提示信息。3.更新记录模块:主要实现对学生记录的维护。在此系统中,它实现对学生记录的修改、删除、插入和排序操作。一般而言,系统进行了这些操作之后,需要将修改的数据存入源程序文件。4.统计记录模块:主要实现对各门课程的不同分数段的人数、各门课程最高分和总分最高分的统计。成绩统计有利于教师对课程的教学进行分析和总结。5.输出记录模块:第一实现对学生记录的存盘操作,即将单链表中的各节点中存储的学生记录信息写入数据文件中。第二,它实现将单链表中存储的学生记录信息以表格的形式在屏幕上打印出来。学生成绩管理系统功能模块图10.2系统的总体设计10.2.1 功能模块的设计1.主控模块的流程设计本成绩管理系统执行主流程如图9-2所示。它先以可读写的方式打开数据文件,此文件路径默认为“c:\student”,若文件不存在,则新建此文件。当打开文件操作成功后,从文件中一次读出一条记录添加到新建的单链表中,然后执行显示主菜单和进入主循环流程操作,通过按键判断来执行相应的操作。若该文件中没有数据,系统会提示单链表为空,没有任何学生记录可操作。按键的有效键值为0至9之间的任意数值,其他按键为无效输入。各个按键的执行功能为:“1”:输入记录,调用Add()函数;“2”:删除记录,调用Del()函数;“3”:查找记录,调用Qur()函数;“4”:修改记录,调用Modify()函数;“5”:插入记录,调用Insert()函数;“6”:统计记录,调用Count()函数;“7”:排序记录,调用Sort()函数;“8”:存储记录,调用Save()函数;“9”:显示记录,调用Disp()函数;“0”:退出系统;主控函数功能流程图2.输入记录模块的流程设计:主要实现将数据存入单链表中。这部分的操作比较简单。当从数据文件中读出记录时,调用函数fread(p,sizeof(Node),1,fp),执行一次从文件中读取一条学生成绩记录信息存入指针变量p所指的节点中的操作,这个操作在main()中执行,即当成绩管理系统进入显示菜单界面之前,该操作已经执行了。用户选择“1”,调用Add(1)函数,进行学生记录的输入,实际是完成在单链表1中添加节点的操作。字符串和数值的输入分别采用了函数来实现,同时对输入数据进行条件判断,如分数必须在0~100之间,避免无效信息的输入。通过函数完成输入数据任务,这样大大减少了代码的重复和冗余,符合模块化程序设计的特点。3.查询记录模块:主要实现在单链表中按学号或姓名查找满足相关条件的学生记录。在查询函数Qur(l)中,l为指向保存了学生成绩信息的单链表的首地址的指针变量。为了遵循模块化编程的原则,同时考虑到可能存在相同姓名的学生记录,设计了二个单独的函数进行记录的定位操作:按学号查询函数Node* Locateofnum(Link l,char findmess[]) ,参数findmess[]保存要查找的学号,若找到该记录,则返回指向该节点的指针;否则,返回一个空指针。按姓名查询函数Locateofname(Link l,char findmess[], Node* n[]),参数findmess[]保存要查找的姓名,指针数组Node* n[]中的元素用于存放各个相同姓名的记录的节点指针,若找不到记录,元素的值为一个空指针。4.更新记录模块:主要实现对学生记录的修改、删除、插入和排序操作。因为学生记录是以单链表的结构形式存储的,所以这些操作都在单链表中完成。具体包括修改、删除、插入和排序操作等四个模块。(1)修改记录: 修改记录操作需要对单链表中目标节点的数据域中的值进行修改,它分两步完成。第一步,输入要修改的学号,输入后调用定位函数 Locateofnum ()在单链表中逐个对节点数据域中学号字段的值进行比较,直到找到该学号的学生记录;第二步,如果找到该学生记录,修改除学号之外的各字段的值,并将存盘标记变量saveflag 置 1,表示已经对记录进行了修改,但还未执行存盘操作。注意,学号是唯一的,不能作修改。(2)删除记录 考虑到可能有姓名相同的记录,删除记录

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档