- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学生成绩管理系统设计方案
第18章 学生成绩管理系统设计 本篇运用C语言来设计一个学生的成绩管理系统,整个系统综合运用我们前几章所学习的C语言的知识,如结构化程序设计、数组、函数、结构体等等,在复习巩固C语言的基础知识的基础上,进一步加深对C语言编程的理解和掌握。利用所学知识,理论和实际结合,采用模块化的结构,锻炼学生综合分析解决实际问题的编程能力;使读者对C语言有更加深刻的了解与认识。 18.1 学生成绩管理系统功能 本系统实现的功能: (1)录入学生的成绩, (2)输出学生的成绩 (3)添加学生的成绩信息 (4)删除指定学生的成绩信息 (5)按照要求对学生成绩信息进行排序 (6)根据学号查询指定学生的成绩 (7)将学生的成绩信息保存到文件 18.2 功能模块的描述 18.2.1 数据结构 结构体说的定义如下: struct scorenode { int number; /*学生学号*/ char name[10]; /*学生姓名*/ float chinese; /*语文成绩*/ float mathmatic; /*数学成绩*/ float english; /*英语成绩 */ struct scorenode *next; }; typedef struct scorenode score; 18.2.2 main()主函数 程序采用模块化设计,主函数是程序的入口,各模块独立,可分块调整,均由主函数控制。采用while死循环和switch分支语句编写菜单选择控制各个模块的功能,每个模块的功能由简单的基本函数构成。 18.2.3 score *creatlink()创建动态链表 由于记录并不是一次性全部输入,而是随时添加和删除的,而预先开辟的空间数往往大于实际的记录数,浪费内存空间,因此使用动态空间开僻函数malloc()为输入的数据动态分配内存空间。 18.2.4 void print(score *head)显示学生信息 使用参数head传递链表的首地址,首先判断链表是否为空,如果为空,则输出提示信息;如果不为空,设一个指针变量p,先指向第一个结点,输出p所指的结点,然后使p后移一个结点,再输出,直到链表的尾结点。 18.2.5 score *add(score *head,score *stu)向链表中添加学生数据 该函数有两个数,head头结点指向链表的首地址,stu指向新建立的结点,向其中输入数据,然后添加到链表上,最后根据学生的学号进行排序。 18.2.6 score *search(score *head)查询学生成绩 由于在向链表中输入数据、添加数据的时候,已经对链表按学号从大到小排好序了,因此在进行查找时,只需要从链表的表头开始进行查询。如果链表为空,则直接输出提示信息;如果链表不为空,则按输出的学号进行查询,查询成功就输出该学号学生的成绩,否则输出提示信息。 18.2.7 score *dele(score *head)删除数据 该函数根据输入学生的学号,在链表中进行查找如果有匹配的,就将该学号的学生信息删除掉。最后返回删除后的链表的头结点。 18.2.8 score *sortdata(score *head)对数据进行排序 该函数提供了几种排序方法,可以按照学生的学号进行排序,按照学生的姓名,或者按照学生的单科成绩进行排序。使用switch-case语句根据用户的选择,判断是按照学号、姓名或是单科成绩使用交换法进行排序。 18.2.9 save(score *p1)保存数据 在程序中的数据输入和输出是以终端为对象的,当程序关闭后,数据也就丢失了,所以为了能随时查阅数据,必须将数据输出到磁盘文件上保存起来,使用时人磁盘中读入到内存中,这就用到了磁盘文件的读写操作。 18.2.10 score *load(score *head)从文件中读取数据 为了程序关闭后丢失,我们将数据保存到磁盘文件中,下一次对已经有的数据进行的时候可以直接从文件中读取数据进行操作。 18.2.11 score *statistics(score *head)成绩统计 该函数主要实现了对学生成绩统计的几种方式:统计个人总分和平均分、统计单科平均分、统计总分最高分和最低分。 18.2.12 int menu(int k)菜单 该函数主要提供一个系统显示的界面,系统模块进行介绍,便于用户进行操作。 18.2.12 用到的头文件和全局变量 #include malloc.h #include stdio.h #include stdlib.h #include string.h #define LEN sizeof(struct scorenode) #define DEB
您可能关注的文档
最近下载
- 通桥(2017)2101-Ⅱ时速160公里客货共线铁路预制后张法简支T梁24m.pdf
- 胡壮麟《语言学教程》(第5版)@第七章@复习笔记.pdf
- 2018年中级经济师考试《保险专业知识与实务》电子书.pdf VIP
- 公路收费站(所)风险管控清单.docx VIP
- 君正化工杜邦安全管理理念实施方案.pptx
- 在线网课学习课堂《空间句法与数据化设计——环境行为数据分析及设计应用》单元测试考核答案.docx
- 全面从严治党主体责任约谈资料汇编.docx VIP
- 2024年华为认证HCIA-5G(H35-660)考试题库(附答案).pdf VIP
- 《Web 程序设计》说课.ppt
- 数字经济-第1篇.pptx
文档评论(0)