学生成绩管理Word格式.docx
- 文档编号:15824998
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:36
- 大小:753.54KB
学生成绩管理Word格式.docx
《学生成绩管理Word格式.docx》由会员分享,可在线阅读,更多相关《学生成绩管理Word格式.docx(36页珍藏版)》请在冰豆网上搜索。
2.1概要设计6
2.2模块基本介绍6
2.2.1用户输入模块6
2.2.2学生信息录入模块6
2.2.3文件保存功能模块6
2.2.4文件打开功能模块6
2.2.5查询功能模块6
2.2.6报表输出功能模块6
2.3模块图7
第3章详细设计8
3.1详细设计8
3.1.1用户输入模块设计8
3.1.2学生信息录入模块设计8
3.1.3文件保存功能模块8
3.1.4文件打开功能模块8
3.1.5查询功能模块8
3.1.6报表输出功能模块9
第4章系统测试10
4.1系统主体功能10
4.2遇到的问题10
第5章使用说明11
设计总结19
参考文献20
致谢21
附录22
前言
该程序的开发旨在实现对学生成绩信息进行录入,修改,删除,查询等操作。
使得教师,学生可以对信息进行访问,修改及时查询。
简化现有系统的流程使之更加便捷合理操作,尽可能的实现无纸话管理,以及解决手工完成耗时巨大,效率很低的问题。
该信息管理系统集管理科学信息科学,系统科学,现代通信技术,电子计算机技术为一体,对成绩管理者的劳动强度,提高工作质量和效率;
方便管理人员对信息的查询、提高信息资源的利用效率和管理水平都具有重要的意义。
第1章系统分析
用数组或链表数据结构完成一个学生成绩管理系统,此系统的具体功能要求如下:
1.1.1学生信息录入功能
1)用户从键盘输入每个学生的信息:
学号、姓名、性别、数学、英语、政治、程序设计基础、物理五门课成绩。
2)可插入一个或多个学生信息到当前编辑的班级数据中。
3)可删除一个或多个学生信息。
1.1.2文件保存功能
1)学生信息每一班存为一个数据文件,数据文件可在程序中打开、编辑和重新保存。
2)用户输入学生信息可随时保存数据文件。
1.1.3文件打开功能
1)程序只能对当前打开的数据文件进行编辑。
1.1.4查询功能
1)浏览所有学生信息;
2)按学号查询学生信息;
3)按姓名查询学生信息;
4)查询一个班总成绩和平均成绩;
5)查询一个班某一门课总成绩和平均成绩;
6)查询某一门课分数段(<
60,60-69,70-79,80-89,>
90)学生数。
1.1.5报表输出功能
1)按学号输出一个班学生信息:
学号、姓名、性别、数学、英语、政治、程序设计基础、物理成绩和总成绩,到屏幕和文件。
2)按总成绩输出从高到低输出学号、姓名信息。
注:
以上功能以菜单形式供用户使用,并有一定的容错功能。
第2章系统总体设计
2.1概要设计
整个学生成绩管理系统采用链表作为基本数据结构,创建一个类student用于保存学生的数据且是链表中的一个节点。
类list作为保存整个链表之用。
主函数通过switch语句来根据用户的需要连接各个模块,以实现用户的需要。
2.2模块基本介绍
2.2.1用户输入模块
在此模块中,用户将根据菜单提示结合自己的需求输入一个0~11的值,来实现一定的功能。
2.2.2学生信息录入模块
此模块可以让用户从键盘输入每个学生的信息:
用户可插入一个或多个学生信息到当前编辑的班级数据中。
用户可删除一个或多个学生信息。
2.2.3文件保存功能模块
用户在确定以录入的成绩无误之后,可以将学生信息以每一班为单位存为一个数据文件。
用户输入的学生信息可随时保存数据文件。
2.2.4文件打开功能模块
用户可以用此模块将数据文件在程序中打开、编辑,程序只能对当前打开的数据文件进行编辑。
2.2.5查询功能模块
在此模块里,用户可实现以下操作:
1.浏览所有学生信息;
2.按学号查询学生信息;
3.按姓名查询学生信息;
4.查询一个班每个人的总成绩和平均成绩;
5.查询一个班某一门课每个人的总成绩和平均成绩;
6)进行成绩的统计分析:
包括总人数,每门课的最高成绩、最低成绩、平均成绩、各个分数段的人数(100-90、89-80、79-70、69-60、59-50、50以下)、及格人数。
2.2.6报表输出功能模块
在此模块中,用户可以浏览所有学生的信息,或者可以按学号输出一个班学生信息:
也可以按总成绩输出从高到低输出学号、姓名信息。
2.3模块图
第3章详细设计
3.1详细设计
主要功能模块的算法设计思路:
3.1.1用户输入模块设计
提示用户输入一个0~11的值,并存储在一个整型变量m中。
3.1.2学生信息录入模块设计
通过应用list中的instu()函数,来新建一个链表中的节点,即一个新的学生信息,来进行成绩的录入功能。
成绩修改功能,可以根据姓名或学号进行查询并修改相应的课程的成绩,使用了voidsearch(chars[10],int)和voidsearch1(chars[20],int)函数进行操作。
search函数根据姓名查找,search1函数根据学号进行查找。
因为学号和姓名,都是存储在字符数组中的,所以都是通过字符串的比较进行查找的。
然后根据整形参数进行对应的课程成绩的修改。
成绩删除功能,也是可以根据姓名或学号进行删除,查询的算法和成绩修改功能的查询方法是一样的,当找到要删除的节点时,因为节点都是在堆内存中保存的,所以可以直接delete掉,并将前一个节点的next指针指向被删掉的节点的next指针所指向的节点。
3.1.3文件保存功能模块
先提示用户输入保存文件的文件名及班级名称。
文件的前两行分别是班级名称和成绩单的开头,然后通过ofstream变量output来进行学生信息的输出,一项一项的输出,并设定格式,直到输出节点为NULL为止,之后关闭output。
3.1.4文件打开功能模块
先提示用户输入要打开的数据文件的名称,然后通过一个ifstream变量input来进行文件操作。
首先判断文件是否存在,如果不存在则输出"
Filedoesnotexist"
,并跳出switch语句。
文件存在的话,则可以进行数据的存入了。
因为数据文件具有固定的格式,即开头两行是班级名称和表头,则可以先用两次input.getline(temp,80);
语句来将input设置到第三行,此时可以将数据通过input读入链表中。
先用input.eof()判断文件中是否有数据,若有数据,则进行数据的读入,直到文件结束。
3.1.5查询功能模块
可以根据姓名或学号进行查找,搜索方法和前几个模块相同。
通过
outstu1(char*n)和outstu(char*n)来进行输出。
总成绩和平均成绩的查询通过函数voidoutsum(char*)和voidoutsum1(char*)来完成。
通过函数scanall()来浏览所有学生的信息。
通过函数think()来进行成绩的统计分析。
3.1.6报表输出功能模块
通过建立一个新的类classstucopy用于拷贝student的数据,并实现排序功能。
创建一个stucopystu[M]数组,将原链表的数据拷贝与数组中,然后用选择排序方法将数组排序,然后用output按照标准的格式输出或保存为数据文件。
第4章系统测试
4.1系统主体功能
退出系统。
成绩的录入:
包括学生学号、姓名、性别和各门课程成绩的录入。
成绩的查询:
可以根据学号或姓名查询某个学生的成绩。
成绩的修改:
可以根据学号或姓名来修改相应的学生的成绩。
数据的删除:
可以根据学号或姓名指定删除某个学生的数据。
成绩的统计分析:
包括总人数、最高成绩、最低成绩、平均成绩、各个分数段的人数(100-90、89-80、79-70、69-60、59-50、50以下)、及格率。
总成绩和平均成绩的查询:
可以根据学号或姓名查询。
浏览所有学生信息。
将所有学生信息保存成文件。
打开指定的数据文件。
按总成绩排序输出学生信息。
按学号顺序输出学生信息,并可保存成文件。
4.2遇到的问题
插入数据和删除数据等操作需要移动记录数据,容易出错。
经过我们一组的讨论和查阅资料,使用单链表结构管理学生成绩,方便随时插入和删除学生记录,
且不必移动数据,实现动态管理。
第5章使用说明
1、进入主界面:
2、选择操作项序号:
(例如输入1选择成绩录入)
3、依次根据系统提示输入学生信息,也可输入多个学生信息:
4、最后根据提示输入1返回系统界面
5、输入完成后可以选择2进行成绩查询:
6、可以根据学号查询:
7、也可以根据姓名查询:
8、选择3进行成绩修改,根据提示可以选择查询需要修改的学生成绩的方法,根据姓名或者学号,查询出后可根据系统提示修改学生成绩:
9、在录入和修改学生信息完成后,我们可以输入7来浏览所有学生信息:
10、或者选择4来删除学生信息,也是可以根据姓名和学号来查询删除:
11、选择8,系统可以将所有学生信息保存成文件,或者选择9将学生信息数据文件导入到系统中:
12、按总成绩排序输出学生信息:
13、按学号顺序输出学生信息,并可以保存成文件:
14、退出系统
15、打开输出文件:
设计总结
经过本次课程设计,发现做软件真的需要做很多工作,不仅仅是敲代码。
首先,必须要有需求分析。
就拿这次的题目来说,一个清晰的需求分析能让我省去很多工作,能让我把代码写的更清晰,让我的代码能有更好的重用性,以此简化程序。
而这次的题目其实也算不上需求分析,只能算是功能分析吧。
从界面到用户登陆判断,从增删改查基本功能到文件读写。
如果能够把代码细化,把基本功能都封装成函数,这样应该会提高代码的重用性。
其次,有了清晰的需求分析,还要有注释。
注释也很重要,特别是写过之后重用和测试代码时,都必须得看。
否则就不得不将已写好的封装函数从头到尾再看一遍,再理解,这样很浪费时间。
有了注释,就可以省去这些重新理解函数的时间,可以提高效率。
再次,写注释是为了使函数更简单的被理解。
而写注释之前,必须要测试这段代码的可行性。
必须要尽可能多的考虑会出现的情况,对不希望出现的情况予以相对的措施或者提示。
这样在代码重用的时候也可以放心的重用,而不必因为代码写的不够完善而再来修改,这样也会浪费很多时间。
最后,程序的测试。
一个完善的程序应该经得起测试。
自己的程序写得好不好,最终得看测试。
如果输入了非法的输入或者操作,程序是否能够正常运行?
还是会像这次一输入错误就会死循环?
这是程序的健壮性。
做好以上几个方面,程序基本就做好了。
但是任何一个程序都不可能没有BUG,金无足赤人无完人。
如果要追求完美,就不得不锲而不舍,定期得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 管理