学生成绩管理系统说明书.docx

上传人:牧羊曲112 文档编号:5173300 上传时间:2023-06-10 格式:DOCX 页数:26 大小:342.12KB
返回 下载 相关 举报
学生成绩管理系统说明书.docx_第1页
第1页 / 共26页
学生成绩管理系统说明书.docx_第2页
第2页 / 共26页
学生成绩管理系统说明书.docx_第3页
第3页 / 共26页
学生成绩管理系统说明书.docx_第4页
第4页 / 共26页
学生成绩管理系统说明书.docx_第5页
第5页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《学生成绩管理系统说明书.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统说明书.docx(26页珍藏版)》请在三一办公上搜索。

1、唐山学院数据结构课程设计题目系(部)班级姓名学号指导教师学生成绩管理系统设计与实计算机科学与技术系11计本1班尹云张小松2013年1月4日至1月11日共2周2013年1月11日数据结构课程设计任务书一、设计题目、内容及要求1、设计题目:学生成绩管理系统设计与实现。2、设计内容及要求:(1 )查询功能:可以通过姓名、学号进行查询学生成绩,同时可以查询有不及格科目 的学生。(2)录入功能:能够录入学生成绩(包括:学号、姓名、至少门课程的成绩、总分、 平均分等信息)。总分和平均分自动计算。(3)排序功能:能够对学生成绩进行排序并可以浏览排序结果。(4)统计功能:能够统计出优秀、良好、中等、及格和不及

2、格这五个等级的人数。二要求的设计成果(课程设计说明书、设计实物、图纸等)1、用C语言进行程序设计,实现系统的功能。注重算法效率,代码要有适当的注释;2、撰写课程设计说明书一份,不少于2000字。课程设计说明书应包括封面、任务书、 成绩评定表、正文(设计思路、设计步骤等)、参考文献(资料)、附录(程序代码)等 内容。三、进程安排1月4日:进行需求分析,确定系统的主要功能和算法思路;1月5日1月6日:进行详细设计,确定各模块的算法思路;1月7日1月8日:进行编码实现;1月9日1月10日:进行测试调试,完善设计;撰写设计说明书,准备答辩;1月11日:答辩。、主要参考资料1. 严蔚敏,吴伟民.数据结构

3、.清华大学出版社,2007.2. 苏仕华.数据结构课程设计.机械工业出版社,2010.3. 滕国文.数据结构课程设计.清华大学出版社,2010.指导教师(签名)|教研室主任(签名)课程设计成绩评定表出勤情况出勤天数缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况1引言学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者 和管理者来说都至关重要。为了提高学校管理员和学生管理和查询学生成绩的效率,需 要建立一个学生成绩管理系统,使我们可以在众多的学生信息中查找自己的成绩信息, 面对学院大量的学生信息,学生只

4、要登录本系统就可以查找到自己的成绩信息,而管理 员也方便去管理每学期的学生的成绩信息。学生成绩管理系统,使学生成绩信息管理工 作规范化、系统化、程序化,避免学生管理的随意性,提高信息处理的速度和准确性, 能够及时、准确、有效的查询和修改学生信息。学生成绩管理系统有效地管理学生成绩 相关信息,包括学生成绩的查询、录入、排序、统计等功能。该系统为用户提供了一个 简单的人机界面,用户可以根据提示信息进行各种操作。本次设计使用的编程语言是C语言。2问题分析根据设计题目要求分析如下:(1)本题目主要涉及顺序表的基本操作。(2)在学生成绩管理系统中,录入学生信息时通常按录入顺序的先后,因此选用线性表。 在

5、查找学生信息时,是在大量无序的学生信息中,通过比较所给关键字与对应信息项, 找到所要查找的学生信息。修改学生信息是在查找的基础上完成的,首先要找到需要修 改的信息项,用输入的新数据覆盖原来的老数据,达到修改的目的。删除学生信息也是 在查找的基础上完成的,先找到要删除的学生信息,从要删除的那个信息项开始,用后 一个信息项覆盖它,一直循环到最后,即可完成删除。在查询不及格的学生信息时,只 要把符合不及格的学生信息输出即可做到查询。在统计不同等级的学生人数时,是想要 根据划分的不同等级,将所有学生信息分成符合条件的几个部分。学生信息的存储结构:struct STU/*定义学生信息结构体*/(int

6、num;/* 学号*/char name20;/* 姓名*/double Data;/*数据结构成绩*/double Math;/*高等数学成绩*/double English;/*大学英语成绩*/double sum;/* 总成绩*/double ave;/* 平均成绩*/STU,stu1000003总体设计3.1模块结构图图3.1系统模块结构图输入:学生信息的录入。查找:按学号或姓名查找学生成绩,输入关键字,查找指定信息记录并输出。修改:通过调用查找函数,找到要修改的学生信息,输入新数据覆盖原先的数据。删除:通过调用查找函数,找到要删除的学生信息,用后一项覆盖前一项。查询:查询各科成绩不及

7、格的学生成绩,输出其学生信息。排序:按总成绩排序,并输出排序后学生信息。统计:分别统计各个等级的学生人数,并输出各个等级的学生人数。退出:结束程序运行。c=1?Yc=2?c=3?c=4?c=5?c=6?N=7?Y c=0/系统启动密码输入乂=?-Nx=123456?Y密码错误系统重启YYNNNNN进入系统功能表Y查询不及格信息Y修改学生信息统计学生信息查找学生信息总成绩排序删除学生信息录入学生信息Y结束开始图3.2系统流程图结构图4详细设计4.1录入模块该模块实现的功能是从键盘录入学生信息。4.1.1设计思路void Getinformation()此函数用来录入学生信息。此函数用while循

8、环达到循环输入 的目的,只要输入的学号有效(在所有学号的范围内且不等于-1),就可以实现学生信 息的不断录入,用-1做结束录入的标志。4.1.2流程图是否继续?继续按1,结束按-1输入学生信息1-1开始结束结束.图4.1录入模块程序流程图4.2查找模块该模块实现的功能是根据所给的学生信息(关键字),查找该学生的全部信息并输出。4.2.1设计思路在void Seekinformation()函数中,用while循环可以实现循环输入查找信息,用if语句 可以实现按学号和姓名两种查找方式。用if语句确定查找方式,通过调用void Seeknum ()或void Seekname()函数实现查找。在v

9、oid Seeknum ()(void Seekname () 函数中,用for循环逐次查找,通过用if语句比较学号(姓名),返回符合条件的标号,并调用Printinformation ()函数输出该生的所有信息。判断是否继续查找,继续查找则 进入以上环境,否则退出查找。图4.2查找模块程序流程图4.3修改模块该模块的实现的功能是根据需要修改学生信息。4.3.1设计思路在Modifinformation ()函数中,此函数用于修改学生信息。基本原理就是用输入的新数 据覆盖原来的老数据,达到修改的目的。本函数还调用了查找模块的函数,使修改前能 按学号或姓名找到要修改的学生信息。4.3.2流程图图

10、4.3修改学生信息模块程序流程图该模块实现的功能是删除指定的学生信息4.4.1设计思路Deleteformation()此函数用于删除学生信息。同样调用了查找模块的函数。删除模块的 关键语句是for(j=x;ji-1;j+)stuj=stuj+1,从要删除的那一个信息项开始,用后4.5查询模块该模块实现的功能是查询不及格(某科成绩低于60分)的学生信息并输出。4.5.1设计思路voidShowfail()此函数用于显示不及格学生的信息。能够按要求输出不及格学生的学 号、姓名、各科成绩、平均成绩、总成绩。首先在for循环中用if语句搜索该学生是 否有成绩不及格,当三门课中至少有一门不及格时就会输

11、出该学生的相关信息。4.6排序模块该模块实现的功能是按学生总成绩对学生信息排序并输出排序后的结果。4.6.1设计思路Lineup函数用来对学生信息按总成绩进行排序。Lineup函数在排序时用的是冒泡排序 法,冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n+1个数,若 第i个数比后一个数大(则升序,小则降序。本程序一律采用降序)则交换两数。图4.6冒泡排序的模块程序流程图4.7统计模块该模块的实现的功能是统计各个等级的学生人数并输出各等级的人数。4.7.1设计思路void Count ()函数统计各个等级(优秀、良好、中等、及格、不及格)的学生人数。函 数用switch语句划分

12、出不同等级,用for循环依次判断每个学生所处的等级,并记录每 个等级的人数。图4.7统计不同等级学生的人数模块程序流程图5运行测试进入演示程序后即可显示的界面:图5.0.1系统进入输入密码错误显示的界面: WD:燃的文栏与桌面倬面口甜岫学生成绩莒建紊统,日密码错误!请重新进人系统。Piess ansp key to continue图5.0.2输入密码正确后的功能表输入密码正确显示的界面:D :饿的文档与某面源面We bu 学生成笠萱建至练取巳-统系BtE -J :绩功成的.frr J.- - - . r.- 生要自5息自心自级 学需I所生生生生备同亍不成不 择入找改膏忠计出 选蕾修馨一 W1

13、2345670请输入您所需要的功能睫图5.0.3输入密码正确后的功能表1、执行功能1,依次录入学生信息:1.1录入第1个学生信息:请输入您所需要的功能绩绩绩 成成成 .字语 K/:l:c结数英 环号名馨学6 9 75 00 81.2录入第2个学生信息:9 7 98 8 9 素a: 成成成 il翌亍语 :6:b结数英 号名尊学 学蛇塾ro大1.3录入第3个学生信息:绩绩绩 ui成成成字语 :3:1结数英 号名馨学ir收1.4录入第4个学生信息:亨8若:uangiSSib;1.5录入第5个学生信息:绩绩绩 成成M也于语 :4:J结数茧 号名霍当1.6录入第6个学生信息:7 8 9 t 7 8 案新

14、 ui成成式 uh:子语 :7:1结数童 号名洋当 学蛇塾rg大1.7结束录入!结束录入?请输入您所需要的功能图5.1结束录入2、执行功能2,按一定方式查找学生信息:2.1按学号查找学生信息:请输入您所需要的功能k查找学生信息功按学号查找按1 器姓名查找按21输入要查找的学号=2号姓名数据结构高等数学大学英语总成绩平均成绩富卷查如出查询请按10图5.2.1查找学号不存在2.2继续按学号查找学生信息:继缄查找请按1,退出查询请按10亮学号查我按1按姓名查找按2M入要查找的学号中平均成绩80.67学号姓名数据结构高等数学大学英语总成绩 3 lirui 98.0Q88.8056.00242.0Q继续

15、查找请按1,退出查询请按10图5.2.2查找学号存在2.3按姓名查找的学生信息:继续查找请按1,退出查询请按10舄学号查找按1按姓名查找按2备入要查找的姓省门Mui睾号姓名数据结构高等数学大学英语总成绩 平均成绩 3 lipni 98.0088.0056.00242.0080.67继续查找请按1,退出查询请按10图5.2.3查找姓名存在2.4继续按姓名查找学生信息:继续查找请按1,退出查询请按10卜学号查找按1按姓名查找按2姓名数据结构高等数学大学英语总成绩平均成绩咨奏杳屣盒三如出杳询请椅项图5.2.4查找姓名不存在2.5退出查找:按1,退出查询请按10继续查10请输入您所需要的功能图5.2.

16、5退出查找3、执行功能3,修改学生信息:3.1执行修改学生信息功能:|请输入您所需要的功能勇1新出要修改的信息:学号输入新信息;学号6 bing 89 8? S9继续修改请性名 bing姓名数据结构S9.30数据结构L,退出此功能请按10高等数学S7.00高等数学大学英语总成绩99.00275.00大学英语平均成绩91-67图5.3.1修改学生信息3.2退出修改功能:10请输入您崩需要的功能图5.3.2退出修改4、执行功能4,删除学生信息:4.1执行删除学生信息功能:|请输入您所需要的功能为蠢找按2成辄入要查找的姓名=温出要删除的信息:学号姓名数据结构高等数学大学英语总成绩4 jinze G7

17、.0989.0098.00254.00确认删除请按1不删除请按21平均成绩84.67福青按1,退出此功能请按10图5.4.1删除学生信息4.2退出删除功能:继续删除请按lf退出此功能请按1010洼蝴入您的毒图5.4.2退出删除5、执行功能5,查询不及格的学生信息:请输入您所需要的功.目姬一7泻八查询不及格学生信息功能: 学号姓.辄出数据结构成绩不及相畚学看翳构 1 chen 56.00 输出大学英语成绩不及格的学生信息: 3 Iwui 98.00 请输入您所需要的功能高等数学89.0088.09大学英语总成绩平均成绩87.0077.3380-67图5.5查询不及格学生信息6、执行功能6,用冒泡

18、法按总成绩对学生信息排序:请输入您所需要的功能6、按总成绩对学生信息排序功醵 赢慕顽羸盘矗命构高等数学大学英语总成绩平均成绩lirui c hen bing wang iLiluii98.0056 .0089.007867.0088.0089.0087.0087.0078.0056 .00 87.00 89.00 67.0089 .00242.09232.002G5.00232.00234.0980.6777.3388.3377.3378.00请输入您所需要的功能 哑图5.6按总成绩学生信息排序7、执行功能7,统计不同等级学生的人数:请输入您所需要的功能 矣豪笙雷级学生人数的功能:lists学

19、生入数*请输入您所需要的功能0-? :-图5.7统计不同等级学生人数8、执行功能0,退出该系统:请输入您所需要的功能0-?=0,谢谢使用? 再见? K Press any key to continue图5.8退出系统9、选择功能数字错误:请输入您所需要的功能*输入数字有误,请重新输入* 请输入您所需要的功能图5.9重选功能6总结(1)综合实践过程的收获通过本次的综合实践,收获颇多。对过去学习的数据结构与算法分析的相关知识进 行了汇总。同时也自学了许多相关知识。通过调用各种功能函数实现对相关数据的具体 操作。实践出真知,在课堂上,接受理论的知识,且把每一个内容都细分切块,最终学 到的却不能完全

20、有效的整合到一起,在做这个课程设计的时候,涉及到很多学过的内容。 因此就必须要查阅很多课本和书籍,这样不仅把以前学过的快遗忘的知识重新复习一 遍,还能有效的把那些零散的知识点相结合,并运用。通过这次综合实践,加强了对实 践操作的要求,不但要掌握理论知识,还要通过自己动手操作,在实践中充分理解理论 知识,使自己的理论水平上升到更高层次,此外在此次实践中,自学能力得到了增强, 这是这次综合实践过程中的最大收获。(2) 遇到问题以及解决问题的思路和方法通过本次得综合实践,在编写学生成绩管理系统程序代码的过程中遇到了很多的问 题。如果录入的学生信息数量非常大时,用此系统的查找效率就比较低,所以此系统用

21、 于信息量比较少。由于学生人数不确定,可能造成存储空间的浪费。由于自己本身编程 能力的问题,实现的功能非常有限,只可以进行简单的信息录入、查找、修改、删除、 查询、排序、统计等简单功能。在每个模块也存在不足的地方,如输入学生信息时,对 每个信息项没有严格的规定,所以在输入信息时要提起注意。(3) 程序调试能力的思考在调试过程中逐渐学会了编译器的调试功能。学会读懂程序中出错时所报出的错误 提示信息。并能够根据这些信息找到相应的错误,及时改正。(4) 在综合实践设计过程中对数据结构课程的认识通过这次综合设计,对数据结构课程有了更深的认识。对于从事计算机专业的 的人士来说,学习数据结构和算法都是有必

22、要的。算法是对输入数据的处理,以产生解 决问题的输出的过程。从实践的角度来看,我们必须了解计算机领域中不同问题的一系 列标准算法以及计算机程序加工的对象之间的关系;此外,我们还要具备设计新算法和 分析其效率的能力。要清楚地知道、算法和程序三者之间的关系及相应的技术。参考文献1严蔚敏,吴伟民.数据结构.北京:清华大学出版社,2008. 苏仕华.数据结构课程设计.北京:机械工业出版社,2010.3.滕国文.数据结构课程设计.北京:清华大学出版社,2010.附录#include#include#includestruct STU/*定义学生信息结构体*/int num;/* 学号 */char na

23、me20;/* 姓名 */double Data;/*数据结构成绩*/double Math;/*高等数学成绩*/double English;/*大学英语成绩*/double sum;/* 总成绩 */double ave;/* 平均成绩*/STU,stu100000;int i=1;/*统计录入学生人数*/ int a,d,w;char b20;void Getinformation()/*录入学生信息,用-1结束录入*/stu0.sum=0;stu0.ave=0;printf(1、录入学生信息功能(用-1结束信息录入):n);printf(学号:”);scanf(%d”,&stui.nu

24、m);while(stui.num!=-1)&(stui.num=100000)/*确定输入的学号有效 */printf(姓名:);scanf(%s”,&stui.name);printf(”数据结构成绩:”);scanf(%lf”,&stui.Data);printf(高等数学成绩:);scanf(%lf”,&stui.Math);printf(大学英语成绩:);scanf(%lf”,&stui.English);stui.sum=stui.Data+stui.Math+stui.English;stui.ave=stui.sum/3;i+;printf(学号:”);scanf(%d”,&s

25、tui.num);if(stui.num=-1)printf(”结束录入!n);printf(n);int Seeknum(int no)/* 按学号查找 */int j;for(j=1;ji;j+)if(stuj.num=no)return j;return -1;int Seekname(char b20)/* 按姓名查找 */int k;for(k=1;ki;k+)if(strcmp(stuk.name,b)=0)return k;return -1;void Printinformation(int x)/* 输出学生信息 */if(x=-1)printf(该学生信息不存在! n);e

26、lseprintf( %d %s %.2lf%.2lf%.2lf%.2lf %.2lfn”,stux.num,stux.name,stux.Data,stux.Math,stux.English,stux.sum,stux.ave);void Seekinformation()/* 查找学生信息 */int x;printf(2、查找学生信息功能:n);while(1)/*可以循环输入查找信息*/printf(按学号查找按1 按姓名查找按2n);scanf(%d”,&a);if(a=1)printf(输入要查找的学号:,scanf(%d”,&d);x=Seeknum(d);/*调用按学号查找函

27、数*/printf(-学号姓名数据结构高等数学大学英语总成绩 平均成绩);Printinformation(x);else if(a=2)printf(输入要查找的姓名:,scanf(%s”,&b);x=Seekname(b);/*调用按姓名查找函数*/printf(-学号姓名数据结构高等数学大学英语总成绩 平均 成绩n);Printinformation(x);printf(继续查找请按1,退出查询请按10n);scanf(%d”,&a);if(a=10)break;void Modifinformation()/*修 改学生信息 */int x;printf(3、修改学生信息功能:n);w

28、hile(1)printf(请先查找要修改的学生信息! n);printf(按学号查找按1 按姓名查找按2n);scanf(%d”,&a);if(a=1)printf(输入要查找的学号:,scanf(%d”,&d);x=Seeknum(d);/*调用按学号查找函数*/else if(a=2)printf(输入要查找的姓名:,scanf(%s”,&b);x=Seekname(b);/*调用按姓名查找函数*/if(x=-1)printf(该学生信息不存在! n);elseprintf(”输出要修改的信息:n);printf(-学号姓名数据结构高等数学大学英语总成绩 平均成绩);Printinfor

29、mation(x);printf(”输入新信息:n);w=x;printf(学号姓名数据结构高等数学大学英语,);scanf(%d %s %lf %lf %lf”,&stuw.num,&stuw.name,&stuw.Data,&stuw.Math,&stuw.Englis h);stuw.sum=stuw.Data+stuw.Math+stuw.English;stuw.ave=stuw.sum/3;printf(继续修改请按1,退出此功能请按10n);scanf(%d”,&a);if(a=10)break;void Deleteformation()/* 删除学生信息 */int x;in

30、t j;printf(4、删除学生信息功能:n);while(1)printf(-请先查找要删除的学生信息:n);printf(按学号查找按1 按姓名查找按2n);scanf(%d”,&a);if(a=1)printf(输入要查找的学号:,scanf(%d”,&d);x=Seeknum(d);/*调用按学号查找函数*/else if(a=2)printf(输入要查找的姓名:,scanf(%s”,&b);x=Seekname(b);/*调用按姓名查找函数*/if(x=-1)printf(该学生信息不存在!”);elseprintf(”输出要删除的信息:n);printf(-学号姓名数据结构高等数

31、学大学英语总成绩 平均成绩);Printinformation(x);printf(”确认删除请按1不删除请按2n);scanf(%d”,&a);if(a=1)for(j=x;ji;j+)stuj=stuj+1;/*用元素以覆盖的方式向前移动来删除元素*/printfC删除成功! n);i-;printf(继续删除请按1,退出此功能请按10n); scanf(%d”,&a);if(a=10)break;void Showfail()/*查询不及格(某科成绩低于60分)学生信息*/int j,flag=0;printf(5、查询不及格学生信息功能:n);printf(-学号姓名数据结构高等数学大

32、学英语总成绩平均成绩n);for(j=1;ji;j+)if(stuj.Data60)flag=1;printf(”输出数据结构成绩不及格的学生信息:n);Printinformation(j);if(stuj.Math60)flag=1;printf(”输出高等数学成绩不及格的学生信息:n);Printinformation(j);if(stuj.English60)flag=1;printf(”输出大学英语成绩不及格的学生信息:n);Printinformation(j);if(flag=0)printf(不存在某科成绩不及格的学生!n);void Lineup()/*用冒泡法按总成绩排序*

33、/struct STU t;double max;int m,n,j;printf(6、按总成绩对学生信息排序功能:n);max=stu1.ave;for(m=1;mi;m+)for(n=m+1;ni+1;n+)if(maxstun.ave)t=stun;stun=stum;stum=t;max=stun.ave;printf(-学号 姓名数据结构高等数学大学英语 总成绩 平均成绩n);printf(-输出按总成绩排序的学生信息:n);for(j=1;ji;j+)Printinformation(j);printf(n);void Count()/*统计不同等级学生的人数*/int j,A=0

34、,B=0,C=0,D=0,E=0;printf(7、统计不同等级学生人数的功能:n);for(j=1;ji;j+)switch(int(stuj.ave/10)/*利用switch语句统计各个等级的学生人数*/case 10:case 9:A+;break;/*统计优秀学生人数*/case 8:B+;break;/*统计良好学生人数*/case 7:C+;break;/*统计中等学生人数*/case 6:D+;break;/*统计及格学生人数*/default :E+;/*统计不及格学生人数*/printf(优秀学生人数:dn”,A);printf(良好学生人数:dn”,B);printf(中

35、等学生人数:dn”,C);printf(”及格学生人数:dn”,D);printf(不及格学生人数:dn”,E);printf(n);main()int c,x;printf(请输入密码(6位数字):);/*设置密码*/scanf(”d”,&x);system(”cls”);/* 进行清屏 */if(x=123456)printf(ttt* 学生成绩管理系统 *n); printf(ttt请选择您所需要的功能:n);/*系统功能*/ printf(ttt1 录入学生信息 n);printf(ttt2 查找学生信息n);printf(ttt3 修改学生信息n);printf(ttt4 删除学生信

36、息n);printf(ttt5查询不及格学生信息n);printf(ttt6 按总成绩排序n);printf(ttt7统计不同等级学生的人数n);printf(ttt0 退出n);printf(n);printf(请输入您所需要的功能(0-7):);scanf(%d,&c);printf(n);while(1)switch(c)/*利用switch语句集成各个功能函数*/case 1 : Getinformation();break;/* 录入学生信息*/case 2 : Seekinformation();break;/* 查找学生信息 */case 3 : Modifinformation

37、();break;/*修 改学生信息 */case 4 : Deleteformation();break;/* 删除学生信息 */case 5 : Showfail();break;/*查询不及格学生信息*/case 6 : Lineup();break;/*按 总成绩排序 */case 7 : Count();break;/*统计不同等级学生的人数*/case 0 : printf(ttt*谢谢使用!再见! *n);exit(0);/*退 出*/ default: printf(ttt*输入数字有误,请重新输入 *n);break;printf(请输入您所需要的功能(0-7):);scanf(%d”,&c);printf(n);else printf(密码错误!请重新进入系统。n);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号