1 / 28
文档名称:

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

格式:ppt   页数:28
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:企业资源 2012/1/16 文件大小:0 KB

下载得到文件列表

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

文档介绍

文档介绍:第18章学生成绩管理系统设计
本篇运用C语言来设计一个学生的成绩管理系统,整个系统综合运用我们前几章所学习的C语言的知识,如结构化程序设计、数组、函数、结构体等等,在复习巩固C语言的基础知识的基础上,进一步加深对C语言编程的理解和掌握。利用所学知识,理论和实际结合,采用模块化的结构,锻炼学生综合分析解决实际问题的编程能力;使读者对C语言有更加深刻的了解与认识。
学生成绩管理系统功能
本系统实现的功能:
(1)录入学生的成绩,
(2)输出学生的成绩
(3)添加学生的成绩信息
(4)删除指定学生的成绩信息
(5)按照要求对学生成绩信息进行排序
(6)根据学号查询指定学生的成绩
(7)将学生的成绩信息保存到文件
功能模块的描述 数据结构
结构体说的定义如下:
struct scorenode
{
int number; /*学生学号*/
char name[10]; /*学生姓名*/
float chinese; /*语文成绩*/
float mathmatic; /*数学成绩*/
float english; /*英语成绩*/
struct scorenode *next;
};
typedef struct scorenode score;
main()主函数
程序采用模块化设计,主函数是程序的入口,各模块独立,可分块调整,均由主函数控制。采用while死循环和switch分支语句编写菜单选择控制各个模块的功能,每个模块的功能由简单的基本函数构成。
score *creatlink()创建动态链表
由于记录并不是一次性全部输入,而是随时添加和删除的,而预先开辟的空间数往往大于实际的记录数,浪费内存空间,因此使用动态空间开僻函数malloc()为输入的数据动态分配内存空间。
void print(score *head)显示学生信息
使用参数head传递链表的首地址,首先判断链表是否为空,如果为空,则输出提示信息;如果不为空,设一个指针变量p,先指向第一个结点,输出p所指的结点,然后使p后移一个结点,再输出,直到链表的尾结点。
score *add(score *head,score *stu)向链表中添加学生数据
该函数有两个数,head头结点指向链表的首地址,stu指向新建立的结点,向其中输入数据,然后添加到链表上,最后根据学生的学号进行排序。
score *search(score *head)查询学生成绩
由于在向链表中输入数据、添加数据的时候,已经对链表按学号从大到小排好序了,因此在进行查找时,只需要从链表的表头开始进行查询。如果链表为空,则直接输出提示信息;如果链表不为空,则按输出的学号进行查询,查询成功就输出该学号学生的成绩,否则输出提示信息。