C语言学生成绩管理系统课程设计报告资料

上传人:w****i 文档编号:92367262 上传时间:2019-07-09 格式:DOC 页数:35 大小:193.50KB
返回 下载 相关 举报
C语言学生成绩管理系统课程设计报告资料_第1页
第1页 / 共35页
C语言学生成绩管理系统课程设计报告资料_第2页
第2页 / 共35页
C语言学生成绩管理系统课程设计报告资料_第3页
第3页 / 共35页
C语言学生成绩管理系统课程设计报告资料_第4页
第4页 / 共35页
C语言学生成绩管理系统课程设计报告资料_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《C语言学生成绩管理系统课程设计报告资料》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统课程设计报告资料(35页珍藏版)》请在金锄头文库上搜索。

1、目 录摘要11需求分析22详细设计说明22.1功能模块图22.2 数据结构设计32.2.1学生成绩信息结构体32.2.2单链表node结构体32.3 功能模块设计42.3.1主函数main()执行流程42.3.2输入学生信息模块42.3.3查询学生信息模块42.3.4更新学生信息模块52.3.5学生信息整理模块52.3.6输出信息模块62.4 相关函数说明63程序源代码73.1程序预处理文件73.2主菜单界面83.3表格形式显示记录93.4记录查找定位函数103.5输入字符串,并进行长度验证(长度lens)123.6创建学生信息133.7查询学生记录173.8删除学生记录203.9修改学生记录

2、223.10增加学生信息243.11数据存盘263.12按学号排序273.13主函数294课程设计心得与体会325参考文献34 i学生成绩管理系统 (德州学院计算机系 山东德州 253023)1摘要摘 要:学生成绩管理系统是当今教育单位必不可少的一部分,对于学校管理者的作用是巨大的。它使得人们无需经过特别的训练就能够使用电脑完成许多复杂的工作。教师通过学生成绩管理系统对学生的信息进行轻松的管理,学生也可以通过它来查询自己的成绩信息。为此,根据用户各方面的实际需要开发设计了本学生成绩管理系统。本系统采用VC+6.0作为开发工具。系统的实现过程:包括系统需求分析,流程分析,功能设计等。系统的主要功

3、能有学生信息录入,数据查询等功能。关键词:Microsoft Visual C+6.0摘要 341需求分析随着科学的发展和社会的进步,许多过去有人工处理的繁杂事务开始交付计算机管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。2详细设计说明2.1功能模块图学生成绩管理系统包括五个模块:输入信息模块,查询信息模块,更新信息模块,信息整理模块,输出信息模块。学生成绩管理系统输

4、入信息模块查询信息模块块更新信息模块信息整理模块输出信息模块从文件读入从键盘输入按学号查询按姓名查询按学院查询按班级查询修改学生信息删除学生信息插入学生信息学生信息排序总 分 最 高 分各 科 最 高 分各分 数 段 人 数不 及 格 率输出至屏幕输出至文件学生成绩管理系统功能模块图2.2 数据结构设计2.2.1学生成绩信息结构体信息结构体中包括学号、姓名、学期、学院、班级、C语言成绩、数学成绩、英语成绩、总分、平均分。struct studentchar num10; /*学号*/char name15; /*姓名*/char xueqi10; /*学期*/char xueyuan15; /

5、*学院*/char banji15; /*班级*/int cgrade; /*C语言成绩*/int mgrade; /*数学成绩*/int egrade; /*英语成绩*/int total; /*总分*/float ave; /*平均分*/2.2.2单链表node结构体typedef struct nodestruct student data; /*数据域*/struct node *next;/*指针域*/Node,*Link;2.3 功能模块设计2.3.1主函数main()执行流程本成绩管理系统可以先以可读写的方式打开数据文件,若该文件不存在,则提醒用户新建此文件。当打开文件操作成功后

6、,从文件中一次读出一条记录,添加到新建的单链表中,然后执行显示主菜单和进入主循环操作,进行按键判断。选择1,则调用Create()函数,执行创建学生信息操作;选择2,则调用Insert()函数,执行插入学生信息操作;选择3,则调用Del()函数,执行删除学生信息操作;选择4,则调用Modify()函数,执行修改学生信息操作;选择5,则调用Sortnum()函数,执行按学号排序操作;选择6,则调用Find()函数,执行查找学生信息操作;选择7,则调用Sortscore()函数,执行按总分排序操作;选择8,则调用Tongji()函数,执行学生信息整理操作;选择9,则调用Save()函数,执行保存学

7、生信息操作;输入09之外的值,则调用Wrong()函数,给出按键错误的提示。2.3.2输入学生信息模块输入学生信息模块主要实现将数据存入单链表中。当从数据文件中读出信息时,它调用了fread(p,sizeof(Node),1,fp)文件读取函数,执行一次从文件中读取一条学生成绩信息存入指针变量p所指的节点中的操作,并且这个操作在main()中执行,即当成绩管理系统进入显示菜单界面时,该操作已经执行了。若该文件中没有数据,系统会提示单链表为空,没有任何学生信息可操作,此时,用户应选择1,调用Create()函数,进行学生信息的输入,即完成在单链表l中添加节点的操作。 2.3.3查询学生信息模块查

8、询学生信息模块在单链表中按学号或姓名或学院或班级查找满足条件的学生信息。在查询函数Find()中,l为指向保存了学生成绩信息的单链表的首地址的指针变量。对于在单链表中进行的指针定位操作,我设计成了两个单独的函数Node* Locate(Link l,char findmess,char nameornum)和int Locate2(Link l,char findmess,char nameornum),参数findmess保存要查找的具体内容,nameornum保存要查找的字段,若找到该记录,则返回指向该节点的指针;否则,返回一个空指针。2.3.4更新学生信息模块此模块主要实现了对学生信息的

9、修改、删除、插入和排序操作。因为学生信息是以单链表的结构形式存储的,所以这些操作都在单链表中完成。(1)修改学生信息修改学生信息需要对单链表中目标节点的数据域中的只进行修改,它分两步完成。第一步,输入要修改的学号,输入后调用Locate()或Locate2()在单链表中逐个对节点数据域中学号字段的值进行比较,直到找到该学号的学生信息;第二部,若未找到该学生信息,修改除学号之外的各字段的值,并将存盘标记变量saveflag置1,表示已经对信息进行了修改,但还未执行存盘操作。(2)删除学生信息删除学生信息操作完成删除指定学号或姓名,它也分两步完成。第一步,输入要删除的学号或姓名,输入后调用定位函数

10、Locate()在单链表中逐个对节点数据域中学号或姓名字段的值进行比较,直到找到该学号或姓名的学生信息,返回指向该学生信息的节点指针;第二步,若找到该学生信息,将该学生信息所在节点的前驱节点的指针域指向目标节点的后继结点。(3)插入学生信息插入学生信息操作完成在指定学号的随后位置插入新的学生信息。首先,它要求用户输入某个学生的学号,新的学生信息将插入在该学生信息之后;然后,提示用户输入一条新的学生信息,这些信息保存在新节点的数据域中;最后,将该节点插入在指定位置学号之后。(4)学生信息排序针对单链表结构的特点,我采用了插入排序算法实现按平均分降序、按学号升序进行排序。2.3.5学生信息整理模块

11、它主要通过循环读取指针变量p所指的当前节点的数据域中各字段的值,并对各个成绩字段进行逐个判断的形式,完成单科最高分、总分最高分学生的查找和各科不及格人数的统计。2.3.6输出信息模块当把信息输出至文件时,调用fwrite(p,sizeof(Node),1,fp)函数,将p指针所指节点中的各字段值写入文件指针fp所指的文件。当把信息输出至屏幕时,调用Disp(Link l)函数,将单链表l中存储的学生信息以表格的形式在屏幕上打印出来。2.4 相关函数说明printheader()用于在以表格形式显示学生记录时,打印输出表头信息。printdata(Node *pp)用于在以表格形式显示学生记录时

12、,打印输出单链表pp中的学生信息。stringinput(char *t,int lens,char *notice)用于输入字符串,并进行字符串长度验证(长度lens)。T用于保存输入的字符串,因为是以指针形式传递的,所以t相当于该函数的返回值。notice用于保存printf()中输入的提示信息。numberinput(char *notice)用于输入数值型数据,notice用于保存printf()中输出的提示信息,该函数返回用户输入的整型数据。Disp(Link l)用于显示单链表l中存储的学生记录,内容为student结构中定义的内容。Locate(Link l,char findm

13、ess,char nameornum)用于定位链表中符合要求的节点,并返回指向该节点的指针。Create(Link l)用于在单链表中创建学生信息节点。Find(Link l)用于在单链表l中按学号、姓名、学院、班级查找满足条件的学生信息,并显示出来。Del(Link l)用于先在单链表l中找到满足条件的学生信息的节点,然后删除该节点。Modify(Link l)用于在单链表中修改学生信息。Insert(Link l)用于在单链表中插入学生信息。Tongji(Link l)用于在单链表l中完成学生信息的整理工作,统计出该班的总分第一名、单科第一名、各分数段人数、不及格率。Sortscore(L

14、ink l)用于在单链表l中完成利用插入排序法实现单链表的按总分降序排序。Sortnum(Link l)用于在单链表l中完成利用插入排序法实现单链表的按学号降序排序。Save(Link l,char file20)用于将单链表l中的数据写入磁盘中的数据文件。main()整个学生成绩管理系统的控制部分。3程序源代码3.1程序预处理文件#include stdio.h#include stdlib.h#include string.h#include conio.h /*屏幕操作函数库*/#define HEADER1 -学生信息表-n#define HEADER2 |学号|学期| 姓名 | 学院 | 班级|英语|数学|C语言| 总分 | 平均分 |n#define HEADER3 |-|-|-|-|-|-|-|-|-|-|n#define FORMAT |%-4s|%-4s|%-7s|%-8s|%-5s|%5d|%4

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号