学生成绩管理系统设计.ppt

上传人:石*** 文档编号:38895905 上传时间:2022-09-06 格式:PPT 页数:28 大小:1.19MB
返回 下载 相关 举报
学生成绩管理系统设计.ppt_第1页
第1页 / 共28页
学生成绩管理系统设计.ppt_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《学生成绩管理系统设计.ppt》由会员分享,可在线阅读,更多相关《学生成绩管理系统设计.ppt(28页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、学生成绩管理系统设学生成绩管理系统设计计现在学习的是第1页,共28页18.1 18.1 学生成绩管理系统功能学生成绩管理系统功能本系统实现的功能:本系统实现的功能:(1)录入学生的成绩,)录入学生的成绩,(2)输出学生的成绩)输出学生的成绩(3)添加学生的成绩信息)添加学生的成绩信息(4)删除指定学生的成绩信息)删除指定学生的成绩信息(5)按照要求对学生成绩信息进行排序)按照要求对学生成绩信息进行排序(6)根据学号查询指定学生的成绩)根据学号查询指定学生的成绩(7)将学生的成绩信息保存到文件)将学生的成绩信息保存到文件现在学习的是第2页,共28页现在学习的是第3页,共28页现在学习的是第4页,

2、共28页18.2 18.2 功能模块的描述功能模块的描述 18.2.1 18.2.1 数据结构数据结构结构体说的定义如下:结构体说的定义如下:struct scorenodeint number;/*学生学号学生学号*/char name10;/*学生姓名学生姓名*/float chinese;/*语文成绩语文成绩*/float mathmatic;/*数学成绩数学成绩*/float english;/*英语成绩英语成绩*/struct scorenode*next;typedef struct scorenode score;现在学习的是第5页,共28页18.2.2 main()18.2.2

3、 main()主函数主函数程序采用模块化设计,主函数是程序的入口,各模块程序采用模块化设计,主函数是程序的入口,各模块独立,可分块调整,均由主函数控制。采用独立,可分块调整,均由主函数控制。采用while死循环和死循环和switch分支语句编写菜单选择控制各个模块的功能,每个模分支语句编写菜单选择控制各个模块的功能,每个模块的功能由简单的基本函数构成。块的功能由简单的基本函数构成。现在学习的是第6页,共28页18.2.3 score 18.2.3 score*creatlink()creatlink()创建动态链表创建动态链表由于记录并不是一次性全部输入,而是随时添加和删由于记录并不是一次性全

4、部输入,而是随时添加和删除的,而预先开辟的空间数往往大于实际的记录数,浪费内除的,而预先开辟的空间数往往大于实际的记录数,浪费内存空间,因此使用动态空间开僻函数存空间,因此使用动态空间开僻函数malloc()为输入的数据为输入的数据动态分配内存空间。动态分配内存空间。现在学习的是第7页,共28页18.2.4 void print(score 18.2.4 void print(score*head)head)显示学生信息显示学生信息使用参数使用参数head传递链表的首地址,首先判断链表是否传递链表的首地址,首先判断链表是否为空,如果为空,则输出提示信息;如果不为空,设一个指为空,如果为空,则输

5、出提示信息;如果不为空,设一个指针变量针变量p,先指向第一个结点,输出,先指向第一个结点,输出p所指的结点,然后使所指的结点,然后使p后移一个结点,再输出,直到链表的尾结点。后移一个结点,再输出,直到链表的尾结点。现在学习的是第8页,共28页18.2.5 score 18.2.5 score*add(score add(score*head,score head,score*stu)stu)向向链表中添加学生数据链表中添加学生数据该函数有两个数,该函数有两个数,head头结点指向链表的首地址,头结点指向链表的首地址,stu指向新建立的结点,向其中输入数据,然后添加到链表上,指向新建立的结点,向

6、其中输入数据,然后添加到链表上,最后根据学生的学号进行排序。最后根据学生的学号进行排序。现在学习的是第9页,共28页18.2.6 score 18.2.6 score*search(score search(score*head)head)查询学生查询学生成绩成绩由于在向链表中输入数据、添加数据的时候,已经对由于在向链表中输入数据、添加数据的时候,已经对链表按学号从大到小排好序了,因此在进行查找时,只需要链表按学号从大到小排好序了,因此在进行查找时,只需要从链表的表头开始进行查询。如果链表为空,则直接输出提从链表的表头开始进行查询。如果链表为空,则直接输出提示信息;如果链表不为空,则按输出的学

7、号进行查询,查询示信息;如果链表不为空,则按输出的学号进行查询,查询成功就输出该学号学生的成绩,否则输出提示信息。成功就输出该学号学生的成绩,否则输出提示信息。现在学习的是第10页,共28页18.2.7 score 18.2.7 score*dele(score dele(score*head)head)删除数据删除数据该函数根据输入学生的学号,在链表中进行查找如果该函数根据输入学生的学号,在链表中进行查找如果有匹配的,就将该学号的学生信息删除掉。最后返回删除后有匹配的,就将该学号的学生信息删除掉。最后返回删除后的链表的头结点。的链表的头结点。现在学习的是第11页,共28页18.2.8 sco

8、re 18.2.8 score*sortdata(score sortdata(score*head)head)对数据进对数据进行排序行排序该函数提供了几种排序方法,可以按照学生的学号进该函数提供了几种排序方法,可以按照学生的学号进行排序,按照学生的姓名,或者按照学生的单科成绩进行排行排序,按照学生的姓名,或者按照学生的单科成绩进行排序。使用序。使用switch-case语句根据用户的选择,判断是按照学语句根据用户的选择,判断是按照学号、姓名或是单科成绩使用交换法进行排序。号、姓名或是单科成绩使用交换法进行排序。现在学习的是第12页,共28页18.2.9 save(score 18.2.9 s

9、ave(score*p1)p1)保存数据保存数据在程序中的数据输入和输出是以终端为对象的,当程在程序中的数据输入和输出是以终端为对象的,当程序关闭后,数据也就丢失了,所以为了能随时查阅数据,必序关闭后,数据也就丢失了,所以为了能随时查阅数据,必须将数据输出到磁盘文件上保存起来,使用时人磁盘中读入须将数据输出到磁盘文件上保存起来,使用时人磁盘中读入到内存中,这就用到了磁盘文件的读写操作。到内存中,这就用到了磁盘文件的读写操作。现在学习的是第13页,共28页18.2.10 score 18.2.10 score*load(score load(score*head)head)从文件中读从文件中读取

10、数据取数据为了程序关闭后丢失,我们将数据保存到磁盘文件中为了程序关闭后丢失,我们将数据保存到磁盘文件中,下一次对已经有的数据进行的时候可以直接从文件中读取,下一次对已经有的数据进行的时候可以直接从文件中读取数据进行操作。数据进行操作。现在学习的是第14页,共28页18.2.11 score 18.2.11 score*statistics(score statistics(score*head)head)成绩统成绩统计计该函数主要实现了对学生成绩统计的几种方式:统计该函数主要实现了对学生成绩统计的几种方式:统计个人总分和平均分、统计单科平均分、统计总分最高分和最个人总分和平均分、统计单科平均分

11、、统计总分最高分和最低分。低分。现在学习的是第15页,共28页18.2.12 int menu(int k)18.2.12 int menu(int k)菜单菜单该函数主要提供一个系统显示的界面,系统模块进行该函数主要提供一个系统显示的界面,系统模块进行介绍,便于用户进行操作。介绍,便于用户进行操作。现在学习的是第16页,共28页18.2.12 18.2.12 用到的头文件和全局变量用到的头文件和全局变量#include#include#include#include#define LEN sizeof(struct scorenode)#define DEBUGint n,k;/*n,k为全

12、局变量,本程序中的函数均可以使用它为全局变量,本程序中的函数均可以使用它,分别分别用于记数和标记用于记数和标记*/现在学习的是第17页,共28页18.3 18.3 程序代码程序代码根据上一节对学生成绩管理系统的数据结构的模块功根据上一节对学生成绩管理系统的数据结构的模块功能的分析,并列出了实现各个模块功能的函数以及它们的程能的分析,并列出了实现各个模块功能的函数以及它们的程序执行序执行N-S图,下面是实现各个函数的程序代码以及在程序图,下面是实现各个函数的程序代码以及在程序运行进的运行结果。运行进的运行结果。现在学习的是第18页,共28页18.3.1 18.3.1 主函数主函数mainmain

13、代码代码主函数主函数main功能是通过调用功能是通过调用creat,search,dele,add,print,ststistics,save,sortdata等函等函数,实现学生成绩查询系统功能。数,实现学生成绩查询系统功能。现在学习的是第19页,共28页18.3.2 18.3.2 创建链表函数创建链表函数creatlinkcreatlink函数函数creatlink的功能是创建链表,此函数带回一个指的功能是创建链表,此函数带回一个指向链表头的指针。函数体中使用了向链表头的指针。函数体中使用了goto语句,方便程序执行语句,方便程序执行过程中的跳转。过程中的跳转。现在学习的是第20页,共28

14、页18.3.3 18.3.3 显示学生信息函数显示学生信息函数printprint函数函数print的功能是显示学生成绩,即将所建立的学生的功能是显示学生成绩,即将所建立的学生成绩链表打印出来。如果链表不为空时,逐个打印出学生的成绩链表打印出来。如果链表不为空时,逐个打印出学生的学号,姓名和各科成绩。学号,姓名和各科成绩。现在学习的是第21页,共28页18.3.4 18.3.4 向链表中添加学生数据函数向链表中添加学生数据函数addadd函数函数add的功能是向已经建立的链表中追加学生资料,的功能是向已经建立的链表中追加学生资料,并且将所有学生资料按学号排序。并且将所有学生资料按学号排序。现在

15、学习的是第22页,共28页18.3.5 18.3.5 查询学生成绩函数查询学生成绩函数searchsearch函数函数search的功能是从链表中查询输入学号的学生信的功能是从链表中查询输入学号的学生信息。息。现在学习的是第23页,共28页18.3.6 18.3.6 删除数据函数删除数据函数deledele函数函数dele的功能是删除输入学号的学生信息。的功能是删除输入学号的学生信息。现在学习的是第24页,共28页18.3.7 18.3.7 对数据进行排序函数对数据进行排序函数sortdatasortdata函数函数sortdata的功能是对链表中的数据按照一定的要求的功能是对链表中的数据按照

16、一定的要求进行排序。本函数提供了几种排序方法,使用进行排序。本函数提供了几种排序方法,使用switch-case语句根据用户的选择,判断是按照学号、姓名或是单科成绩语句根据用户的选择,判断是按照学号、姓名或是单科成绩使用交换法进行排序。此函数带回一个指向链表头的指针使用交换法进行排序。此函数带回一个指向链表头的指针现在学习的是第25页,共28页18.3.8 18.3.8 保存数据函数保存数据函数savesave函数函数save的功能是保存学生的资料到磁盘中,在程序的功能是保存学生的资料到磁盘中,在程序关系以后,下次使用时不会丢失。关系以后,下次使用时不会丢失。现在学习的是第26页,共28页18

17、.3.9 18.3.9 从文件中读取数据函数从文件中读取数据函数loadload函数函数loadfile的功能是从文件读入学生记录。当把学生的功能是从文件读入学生记录。当把学生记录保存到磁盘上后,下次使用时还需要从保存的文件中读记录保存到磁盘上后,下次使用时还需要从保存的文件中读取。取。现在学习的是第27页,共28页18.3.10 18.3.10 成绩统计函数成绩统计函数statisticsstatistics函数函数statistics的功能是统计学生成绩,该函数主要实的功能是统计学生成绩,该函数主要实现了对学生成绩进行统计个人总分和平均分、统计单科平均现了对学生成绩进行统计个人总分和平均分、统计单科平均分、统计总分最高分和最低分的操作。分、统计总分最高分和最低分的操作。现在学习的是第28页,共28页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com