VC375 C语言学生成绩管理系统毕业设计
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
五、系统各模块(函数)的组成。功能、参数说明、相互调用关系
主函数 main()
利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
初始化函数 STUDENT *init()
这是一个无参函数,里面只有一个语句,它的作用是使链表初始化,使head的值为NULL。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码!
菜单选择函数 int menu_select();
这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择,中间还显示系统当前的时间。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!
输入记录函数 STUDENT *create()
这是一个无参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入,函数结束后,带回一个指向链表头的指针head。
输入记录函数 STUDENT *create()
这是一个无参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入,函数结束后,带回一个指向链表头的指针head。
显示记录函数 void print(STUDENT *head)
这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。 think58.com
查找记录函数 void search(STUDENT *head)
这是一个不返回值的有参函数,形参为“链表头的指针”,实现按学号对某个学生进行查找,并显示所查找到的记录。
删除记录函数 STUDENT *delete(STUDENT *head)
这是一个有参函数,形参为“链表头的指针”,先输入要删除的学生记录的学号,找到后显示该学生信息,等确认后便可按“Y”进行删除。
排序函数 STUDENT *sort(STUDENT *head)
这是一个有参函数,形参为“链表头的指针”,按学生成绩的平均分高低进行排序,还可以显示名次。
插入函数 STUDENT *insert(STUDENT *head,STUDENT *new)
这是一个有参函数,形参有两个,一个是“链表头的指针”,一个是“待插入指针”,按照原来成绩平均分的高低进行插入,插入后会重新进行排序,并返回。
保存数据到文件函数 void save(STUDENT *head)
这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑上由自己任意命名的二进制文件。
从文件读数据函数 STUDENT *load()
这是一个不返回值的有参函数,形参为“链表头的指针”,根据输入的文件地址进行读取
think58好,好think58
[版权所有:http://think58.com]
[资料来源:http://THINK58.com]
六、各功能模块的算法处理流程图及相关说明
1、主函数 main()
2、初始化函数 STUDENT *init()
3、菜单选择函数 int menu_select();
4、输入记录函数 STUDENT *create()
算法:先声明一个首节点head,并将head->next设为NULL。每输入一个数据就声明一个新节点p,把p->next设为NULL,并且链接到之前列表的尾端。
N-S流程图如下:
head=NULL
for(;;) think58好,好think58
[资料来源:THINK58.com]
指针p指向新开辟的单元
指针p是否为空
是 否
输入学号p->num
输出 p->num是否为0
内存 是 否
溢出 输入姓名p->name
停止 for(i=0;i<3;i++)
输入 输入成绩
返回 p->sum=s;
菜单 p->average=(float)s/3;
p->order=0;
p->next=head;head=p; copyright think58
5、 记录函数 void print(STUDENT *head)
算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复执行此步聚直到p指针指向NULL为止。
think58好,好think58 [资料来源:http://THINK58.com]
[来源:http://www.think58.com]N-S流程图如下:
copyright think58
[资料来源:www.THINK58.com]