版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.wd.wd.wd.目 录引言1 系统概述1.1 系统功能1.2 系统作用和特点 2 需求分析2.1 功能要求2.2 性能要求2.3 数据需求 2.4 开发环境 3 详细设计3.1 登陆界面与主界面的实现3.2 详细设计思想3.3 系统构造体的设计 3.3 各种模块的实现 4 所遇到的问题和分析4.1系统存在的缺乏4.2 制作过程中遇到的问题4.4 问题分析5系统特色及关键技术 6结论及心得体会参考文献附录摘 要随着计算机的普及,人们的生活和学习都离不开电脑,计算机是提高生产效率的主要工具及途径,所以教育也不例外。现在 基本每个大学都有自己的学生管理系统。学生成绩管理系统不仅把广阔教师从繁重的
2、成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。本系统依据开发要求主要应用于教育系统,学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理系统的开发运用,实现了学生成绩管理的自动化。主要完成对学生成绩的管理,包括添加、修改、删除,查询,查看信息以及保存入档等六个方面。每一个表的修改都将联动的影响其它的表,当完成添加或删除操作时系统会自动地完成学生成绩的修改。查询功能也是系统的核心之一,在系统中主要根据学生姓名和学号进展查询,其目的都
3、是为了方便用户使用。系统有完整的添加、删除和修改功能,并具备成绩表查询功能。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。本文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点说明了系统的设计思路、总体设计、各个功能模块的设计与实现。关键词:学生成绩;成绩管理信息系统;C语言引言 几年前,许多学校对于学生成绩的管理还是停留在运用手工操作,随着计算机的飞快开展以及各个学校的规模不断壮大,学生人数逐年增加。关于学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进展学生成绩管理。但人工管理又有着许多缺陷,比方:效率底、易出错、检索信息慢、对学校的管理提供
4、决策信息较为困难等。学校不能完全掌握每一个学生的学习情况,这样对学校的教学工作及其不利,使学校的教学质量一直停滞不前,所以我想借本次课程设计之际,开发一个适用于各校的通用高校学生成绩管理系统,使学校能够充分掌握学生的学习情况,便于学校教学工作的进展和改革。开发的目标建设学生成绩管理系统,采用计算机对学生成绩进展管理,进一步提高办学效率和现代化水平。使学校对学生的成绩能够快速并准确的录入、修改和查询,更好地掌握每个学生的各科成绩,便于教师的管理。使学生对个人的学习成绩进展快速的查询。让教师能够更好、更快的了解学生的学习情况,使学校的教学质量进一步的提高。本系统改变以往靠手工管理学生成绩的状况,可
5、以树立良好的办学先锋,提高工作效率,节省人力和物力,在些高校建设了校园网,实现了办公自动化。1 系统概述1.1系统功能学生成绩管理系统主要以管理学生成绩信息为目的,。主要功能包括登录用户、成绩录入管理、查询管理、修改管理、删除管理、统计管理、成绩排名等。登录用户:教师可以进展各种操作,学生只能进展查询操作。成绩录入管理:每次考试完毕,都可录入学生成绩信息。查询管理:包括查询成绩和 基本信息。可以显示单独一条记录,也可以显示所有信息。修改管理:包括修改成绩和 基本信息。删除管理:包括删除成绩和 基本信息。统计管理:统计学生人数,优生率,不及格人数和平均成绩。成绩排名:按成绩的上下顺序排列。1.2
6、 系统作用和特点系统可以更快的使学生的成绩相加并且排名以及各种统计,这对教师来说是很好可以减少很多工作量,在多人多课考试时很有用,只要成绩出来,输入电脑就可以在几秒内是成绩相加,并知道了某学生在学校排名,对教师来说,考完试自由的时间就增加了许多。功能强大,实用性很强,并且有较好的交互界面,方便用户使用,具有易操作性,覆盖面广。2需求分析2.1功能要求使用中文菜单,界面设计和用户输入输出要人性化些;将学生信息保存在文本文档中,具有数据删除功能,能最终从文件中删除;排序功能,根据自己设计的数据构造,设计排序算法具有多种查询如按学号查询、按姓名查询、按成绩查询等及输出功能;其它功能如各种统计,统计每
7、个学生所有课程的平均分,统计某门课程所有学生的平均分等学生信息的修改修改学生姓名,修改学生某门课程的成绩2.2性能需求系统的高速性、稳定性、安全性。系统的体系构造能够方便使用功能,适应业务、办公的开展。系统人机界面友好,易学易用。系统维护成本较低。2.3数据需求 基本数据维护功能添加学生的信息。修改学生的信息。删除学生的信息。查询学生的信息。统计学生的信息。存读的成绩信息。学生C语言算法数据库性别数据库学号算法姓名C语言学生数据构造登录用户账号权限密码用户构造用户登录 学生成绩管理系统 学生用户 教师用户查询记录删除记录来成绩统计修改记录查询记录统计记录存读记录成绩统计统计记录退出添加记录主菜
8、单2.4 开发环境开发环境是用Visual C+ 6.0,简称VC或者VC6.0,是微软推出的一款C+编译器,将“高级语言翻译为“机器语言低级语言的程序。Visual C+是一个功能强大的可视化软件开发工具。它是一种可视化的编程工具,它基于windows操作系统。它有两种方式来建设应用程序,一种是通过VC6.0的可视化编程工具,另一种是通过visual c+6.0的代码编辑器,手工编写代码。本系统所用的语言是C语言,C语言是目前世界上流行、使用最广泛的高级程序设计语言。C语言对操作系统和系统使用程序以及需要对硬件进展操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
9、C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言详细设计3.1登陆界面与主界面的实现系统登录界面用了C选择控制语言。用于对进入系统的用户进展安全检查,阻止非法用户的进入。验证账号及密码,通过判断账号及密码是否符合申请的账号和密码,如果符合那么允许登录,否那么提示用户账号或密码不正确。本系统的登录界面:主界面:在主界面中包括“ = 1 * GB3 * MERGEFORMAT 班级成绩添加 = 2 * GB3 * MERGEFORMAT 班级成绩显示 = 3 * GB3 * MERGEFORMAT 班级成绩统计 = 4 *
10、GB3 * MERGEFORMAT 班级成绩查询 = 5 * GB3 * MERGEFORMAT 班级成绩修改 = 6 * GB3 * MERGEFORMAT 班级成绩表 = 7 * GB3 * MERGEFORMAT 班级成绩存档 = 8 * GB3 * MERGEFORMAT = 9 * GB3 * MERGEFORMAT 班级成绩读入 = 10 * GB3 * MERGEFORMAT 退出等全部的功能,之所以设计这麽一个主界面,一是因为能使用户对程序操作的流程更加清晰简明,二是保证了用户同时只能对一个文件进展操作系统的要求,保证了系统的正确性和易用性。3.2详细设计思想3.2.1确定程序
11、主要功能模块这个就比较简单了,主要是根据系统设计的说明及要求来设计,从而设计了九大功能模块,有文件操作,有系统维护功能,排序和统计功能,有输入输出等 基本功能,比较人性化,添加了较多的提示语。这个程序的主要功能时输入学生的学号,姓名,学期和三科成绩来对其进展存储,在存储后可以对学生的成绩按学号及学期或姓名及学期来进展查询,同时输出此同学的平均分及总分,之后可以对某个同学的成绩进展各种操作,例如修改,删除等,同时还可以对学生们的成绩按照总分或单科成绩排序,在整个过程中所做的操作都会保存到student.txt文件中并显示。3.2.2确定语言算法由于之前都没有做过类似的设计,所以一时间不能够确定到
12、底使用何种语言来设计本系统,所以在网上看了一些其他人设计的程序,链表的、数组的,各种各样的,也不知如何选择,但是仔细地看了其中的设计思想,最终还是用C和数组的来做,一是觉得本人对链表掌握的不是很熟练,那么在设计过程中容易产生不能理解的错误,耽误时间,二是想运用C,可以稳固一下所学的数据构造的知识,之前做实验的时候都没怎么用所学的知识,这时候想练练。就这样确定了整体的构造算法3.3 系统构造体的设计Student总分平均分C语言姓名学号算法性别数据库struct Student /构造体int term;/学期int num;/学号char name12;/姓名float mark1;/成绩fl
13、oat mark2;float mark3;float sum;/总分float average;/平均分3.3 各种模块的实现Main()函数的设计用Mvoid main()来实现,主要是来显示主菜单,使用户选择操作。在main()函数中主要运用do-while循环语句和switch()-case选择判断语句来调用相关,选择各种功能模块。系统的运行是在一个永真的循环里进展的,只有在主界面并选择“退出时,才会跳出永真循环,并退出程序。3.3.1录入学生记录模块用函数int add_text(struct Student stud, int n) 来实现 主要功能用来对学生的记录进展添加。选择8
14、,进入模块录入所需学生个数的学生信息,比方学号,姓名,成绩等。然后进入主菜单,根据主菜单来在此根基上进展操作。期间会有一些提示语,按此操作即可。本函数用到了文件操作的指针FILE *fp。3.3.2显示学生记录模块用函数void output_stu(struct Student stud, int n, int i)来实现 主要功能是用来显示学生的信息进展输出。在系统已经录入了学生资料的前提下,只用该功能可以显示学生的信息资料等等。同时也会自动跳出主菜单进展后续操作。主要的程序代码就是从文件的读操作和界面显示操作。3.3.3添加学生资料模块用函数void input_num(struct S
15、tudent stud, int n, int i) 来实现。主要功能是用来添加学生资料,成绩。假设有重号那么提示重新输入,就可以使用本模块来进展添加利用for循环进展输入新学生记录,输入完后,最后会有一个提示语句:是否继续输入 (yn),y是继续输入,n是返回主菜单否那么将返回主菜单,本模块功能到此完毕。在此期间会根据语句算出总分和平均分,并默认按学号排序保存到文件中去3.3.4 查询,删除,修改模块分别用三个函数来实现,删除箅修改模块是基于查询模块上的,要先查询你要进展操作的内容,然后再进展其它操作。 查询是用用函数int find_stu(struct Student stud, int
16、 n)来实现,它有两种方式,主菜单先5进入查询,会出现提示:请选择您要查询的方式:(1:按学号2:按名字;),用for和if语句,if (strcmp(, you_choice) != 0) 如果第i项与查找信息不匹配那么查询失败,否那么查询成功,调用显示函数,输出该学生信息,之后会出现提示:是否进展1:修改2:删除3:退出选项。修改是用函数void updata_stu(struct Student stud, int n, int y) 来实现的,修改也可以进展任选一门课进展修改,会有提示:请输入您要对哪一门成绩进展修改?( 0:数据库; 1:算法; 2:C语言) 之后
17、输入该课程的成绩就可以了。 删除是用void delete_stu(struct Student stud, int n, int y)来实现的,选择了以后,还会有判断提示:确认您要进展删除吗?(y/n),y是确定,之后就会回到主菜单,n是不删除。退出是如果不进展任何操作后,返回到主菜单。3.3.5 统计模块谇功能是用void TJ_stu(struct Student stud, int n, int o) 来实现的。选3进入统计界面,首先有提示要统计的学科,有123供你选择,选择了以后,就可以显示出该课程的成绩表,按从高到低的顺序排列,算法是用冒泡排序方法。以及各种统计,包括:平均成绩、及
18、格率、优生率、不及格人数、优生人数。排序代码如下:for (i = 0; i n-1; i+) for(j = i+1; j studi.scoreo) temp = studi; studi = studj; studj = temp; 3.3.6 班级成绩表模块该模块是用void chenji_stu(struct Student stud, int n, int o) /函数实现,用到的算法是直接选择排序,是按总成绩从高到低排序的,显示是调用了显示模块的函数,使得函数的构造大的简化了。主要程序如下:for (i = 0; i n-1; i+) k=i;for(j = i+1; j stu
19、di.score3) k=j; / score3)表示总成绩if(k!=i) temp = studi; studi = studk; studk = temp; 4 所遇到的问题和分析解决4.1系统存在的缺乏本学生成绩管理系统由九大模块组成,每个模块相互联系又相互独立。这个学生成绩管理系统存在着很多缺乏之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。只能实现学生管理系统最 基本的功能,可以进展简单的输入、输出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的修改、操作进展保存等。而且在每个模块也有缺乏的地方,比方在输入学生资料时,对每个信息项没有严格的规定
20、,可以输入任何的字符。感觉应用范围还是不容乐观。这有待以后努力,更详尽的实现模块的功能。4.2 制作过程中遇到的问题4.2.1do-while语句的位置问题在查询学生记录此模块中,只能查询一次,假设要进展屡次查询的话就不行了,只能先到主菜单,再先查询选项,很是麻烦。不能实现原有的功能。所以要想清楚到底是哪里循环出问题,按照逻辑思路找到相应的语句正确添加就行了。 4.2.2system(cls)的使用问题刚开场时对菜单的切换不是很了解,编写的程序运行的时候是一竖行向下的,很影响使用者的视觉范围,通过查询一些资料得知了system(cls)的作用,能够把一些暂时不用或不相关的信息通过清屏来处理。4
21、.2.3内存的分配问题对于初学者的话对内存的分配和释放问题是比较抽象的和模糊的问题,在排序是之前就出现了交换数据困难的问题,以及内存分配空间繁琐释放空间不及时的问题,造成空间的浪费,使得程序运行时效率较低,因此最后采用了顺序存储记录的方式,这就能改变前面所出现的问题。4.4问题分析在自己动手写的时候才会发现有太多的问题,这些都是只有自已亲自去实践才会有的收获,例如在有些细节方面还是要特别注意啊,像分号的添加,是或还是与的的方向问题,函数的返回值等问题,虽然容易改掉,但是很容易养成不好的习惯,而且还会浪费时间,所以在一开场写的时候就要很仔细,这样才能保证程序编的精细,同时假设出现很多这样的错误的
22、话,在编写程序的时候也会心里烦的,所以在编程的时候要认真仔细。就你在刚开场时对文件的操作不是很明白,一直不能很好的操作文件,直到快验收的时候,仍旧出现问题,就是对已经存在的文件读取问题,将数据从文件中读取,但是不能够正常的读出,最后把读文件的操作语句进展仔细检查后,发现语句的顺序有点问题,重新把fscanf()语句进展再修改后就发现能够正常的读取文件了。其余的就没什么比较大的问题了, 基本上只要细心一点的话就可以正确调试成功了。5系统特色及关键技术其实在本程序的设计过程当中,没有很吸引人的关键技术,因为我的C语言学的很好,所以当初设计的时候就只是想把功能都实现就好了,尽可能的把所要求的功能都编
23、进程序,这样就觉得很满足了。所以都是设计的比较简单易懂的语言,这样自己能够更明白一些,所以就没有时间去细细地去设计自己的程序。本程序要说有什么值得说的,那就只有人性化这点了,在设计成学的时候,因为自己怕弄混了,所以添加了很详尽的提示,这样在编程的过程中或调试的时候都能够比较快的运行。还有就是尽可能的应用了do-while语句和switch-case语句,这两个语句在之前不是很常用,所以在这个程序中试炼了一下,虽然在编写的过程中总是出错,但还是成功的用好了,也是程序有条理一些。我也知道这些东西别人可能比我弄得还要好,但是我在我所学的知识中成功的应用了这些,我觉得就是好事,就是进步。6结论及心得体会学生成绩管理系统终于成功的验收了,从这最后的测试结果来看, 基本上实现了成绩管理系统的几大功能:成绩信息录入、成绩信息的管理。并到达操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改。本系统经过测试,证明其运行是稳定、可靠的。但在系统设计中也也遇到很多的问题,并且本系统的功能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国预防接种技能竞赛实践操作训练题库及答案
- 某电厂高空坠落安全措施及应急预案
- 弱电桥架安装施工工艺
- 2025-2026学年高一数学期中模拟试卷(人教版)试卷
- 柳州市人民医院《护理抢救工作制度》《防范住院患者走失管理制度》考试试题及答案
- 2025-2026年网络营销师考试移动营销策略模拟试题
- 2025-2026年医学考研免疫学重点知识巩固习题
- 2025-2026年考研法学宪法与行政法模拟试卷
- 2025-2026年区块链技术共识机制与智能合约解析模拟试题
- 2026年压疮创面换药操作质量指南考试试卷试题及答案
- 2026年中医针灸考试题及答案
- 广东茂名市电白区2026年村(社区)工作人员招聘考试试卷-含答案解析
- 2026河北机关事业单位工人技能等级考试(广播电视机务员)历年参考题库含答案详解
- 陆上风电场培训内容
- 2026年甘肃省兰州市公安招聘辅警考试真题及答案
- 《无人机飞行控制技术》无人机应用技术专业全套教学课件
- 高等代数一课程教学大纲
- (正式版)SHT 3115-2024 石油化工管式炉轻质浇注料衬里工程技术规范
- 公司TRD施工方案
- FZ/T 81007-2022单、夹服装
- LY/T 2328-2014木荷防火林带营建技术规程
评论
0/150
提交评论