最新C语言班级成绩管理系统.docx

上传人:1595****071 文档编号:34721533 上传时间:2022-08-18 格式:DOCX 页数:34 大小:571.32KB
返回 下载 相关 举报
最新C语言班级成绩管理系统.docx_第1页
第1页 / 共34页
最新C语言班级成绩管理系统.docx_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《最新C语言班级成绩管理系统.docx》由会员分享,可在线阅读,更多相关《最新C语言班级成绩管理系统.docx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言班级成绩管理系统引言2 学院课程设计报告C语言程序设计课程设计专业电气工程及其自动化班级姓名学号指导教师年 月-新能源与动力工程学院课程设计任务书课程名称:C语言程序设计课程设计 指导教师(签名): 班级: 姓名 学号: 一、课程设计题目班级成绩管理系统二、课程设计使用的原始资料(数据)及设计技术要求:安装有Windows操作系统电脑Visual C+ 6.0二

2、、课程设计的目的学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和政治)等三、 课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等)1输入功能:可以一次完成无数条信息的输入。2输出功能:能按班级输出学生的成绩单。3修改功能:完成对单个学生成绩的修改。4查找功能:完成对单个学生信息查找,并显示。5排序功能:按学生成绩进行排序,并显示。四、 工作进度安排7月8日:选择课程设计题目,确定分组7月9日:查找资料,编辑程序7月10日:查找资料,编辑程序7月11日:查找资料,修改程序7月12日:审核和打分五、 主要参考文献1 谭浩强.C语言程序设计(第二版).

3、北京: 清华大学出版社,2009.2 谭浩强C程序设计程序设计学习辅导 .北京 :清华大学出版社,2005.审核批准意见系主任(签字) 年月日指导教师评语及成绩评定表指导教师评语成绩设计过程(40)设计报告(50)小组答辩(10)总成绩(100)指导教师签字: 年 月 日目录一引言- 1 -1.1 设计目的- 1 -1.2意义- 1 -1.3内容- 1 -1.4主要任务- 2 -二主要功能和功能- 3 -2.1主要功能- 3 -2.2要求- 3 -三.系统的数据需求及性能分析- 4 -3.1 数据需求- 4 -3.2系统的性能分析- 4 -四. 输入输出要求- 5 -五整体框架结构- 6 -六

4、学生成绩业务管理图- 7 -七系统概要设计- 8 -7.1 程序的模块组成- 8 -7.2 学生信息结构数组- 8 -7.3 各个程序的主要功能介绍:- 9 -八.系统详细设计- 10 -8.1函数介绍- 10 -九. 调试与测试- 13 -9.1系统调试- 13 -9.2系统测试- 13 -十总结- 20 -参考文献- 22 -附录 源代码- 23 -一引言1.1 设计目的1.学生成绩的录入2.能统计学生的成绩,求学生的总分及平均分3.能查询单个学生成绩4.能修改单个学生信息1.2意义随着经济的快速发展,科技的日益普及。目前我国的信息数字化工作也进入一个全新发展时期,特别是高校的信息化建设已

5、进入了全面的发展阶段,诸多高校充分地认识到,信息化建设己经成为了高校提高自身管理水平、提升综合竞争实力的重要手段。在高校,各种信息管理系统层出不穷。通过本系统,能够实现对学生成绩的有效管理,减少教务人员、教师的工作量,该系统能够很好的满足学校教学、管理方面的要求。为教务人员、教师提供学生成绩管理系统,以轻松实现学生成绩管理。系统化的成绩管理可以减少教务人员及教师因为工作量大而出现错误,为学校减少不必要的人力、物力、财力,便于学生成绩的增加、删除、修改、查询。1.3内容对一个有N个学生的班级,每个学生有四门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。1.4主要任务1.能

6、按完成对学生成绩的录入、修改。2.能统计学生的成绩,求学生的总分及平均分。3.能查询学生各科成绩。二主要功能和功能2.1主要功能1.学生查询功能:为了方便学生查找成绩等信息,将所有信息按照需要进行分类。这样学生就能很方便的找到自己所需要的信息。2.管理员查询功能:管理员可以通过条件选择查询所有信息,并进行排序。3.添加功能:管理员可以输入学生成绩等相关信息。4.修改功能:输入密码后管理员可以对数据库中的信息进行修改,系统能够通过管理员的给出的条件查找出所要修改的信息,对修改后的信息进行保存。5.统计功能:管理员可以通过此功能对信息进行统计。2.2要求使用二进制文件方式存储数据,系统以菜单方式工

7、作 学生成绩信息包括:学号,班别,姓名,四门课程成绩(语文、数学、英语和政治)等。要求使用二进制文件方式存储数据,系统以菜单方式工作,实现对学生成绩的录入,修改,统计,排序,查询,输出等功能。三.系统的数据需求及性能分析3.1 数据需求通过查阅资料以及对程序的理解,总结出用户对数据的需求如下:1.学生信息:包括:学号、学生姓名等信息。2.课程信息:包括:课程编号、课程名称等。3.基本数据维护功能:(1)录入学生的成绩信息。(2)显示学生的成绩信息。(3)保存学生的成绩信息。(4)排序学生的成绩信息。(5)统计学生的成绩信息。3.2系统的性能分析1.系统的高速性、稳定性、安全性。2.系统人机界面

8、友好,易学易用。3.系统维护成本较低。四. 输入输出要求在菜单选项中1-7,选择功能项,进行对应选项的函数调用。1.每一条记录包括一个学生的学号、姓名、4门成绩、平均成绩;2.输入功能:输入学生的基本信息存入磁盘文件中;3.显示功能:输出已存盘的学生信息;4.排序功能:输出用户所要选择科目的提问,输入科目后输出该科目一排好的学生成绩,并按学生平均成绩进行排序;5.插入功能:插入新的信息;6.修改功能,输入密码.错误输出是否继续输入密码.正确则逐个输出是否想要修改学生信息;7.保存功能:将学生记录保存在任何自定义的文件中。五整体框架结构主程序初始化 录入 显示 排序 插入 修改 保存 退出图1

9、整体框架结构图六学生成绩业务管理图输入学号和密码输出结果学生数据库查询学生数据修改或添加统计汇总成绩数据库新数据管理员输出结果、图2 学生成绩业务管理图七系统概要设计7.1 程序的模块组成第一个模块:先定义好一些必要的全局变量以及调用的函数和结构体数组。第二个模块:设计一个菜单函数menu();实现能供用户选择功能项。第三个模块:用enter()函数实现成绩的输入。第四个模块:用save()函数实现成绩的保存。第五个模块:用print()函数实现成绩输出。第六个模块:用cort()函数实现成绩排序功能。第七个模块:用modify()函数实现成绩修改功能。第八个模块:用count()函数实现成绩

10、统计功能。main函数实现总的控制台界面,调用void enter(),void cort(),void modify(),void count(),print(),void save(),函数实现各种用户功能要求。7.2 学生信息结构数组 struct stuchar name20; int num; int scoreM;7.3 各个程序的主要功能介绍:1.为便于用户使用,先定义一个常数N表示人数,学生信息的结构体数组,以及调用功能项的函数。2.void main():利用swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。 3.void Enter():用来执行学

11、生成绩记录的输入。4.void Print():显示所有学生的信息。5.void save():这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑上由自己任意命名的二进制文件。6.void Cort():要排序的 科目的 序号,用选择排序法实现函数学生成绩的排序。7.void Modify():需要通过密码验证,进入菜单后可实现对学生资料的修改。8.void Count():可以显示学生的平均成绩以及科目最高分。八.系统详细设计8.1函数介绍 1.主函数main()利用swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。主要实现“功能选择”的界

12、面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!2. void Enter()函数用scanf依次输入学生信息,在输入多门成绩成绩时,用for循环来实现,结尾调用save()函数保存。3. void Print()函数为了使界面美观对学生成绩用%5d输出,且用换行实现,学生信息整齐排列。4.void Cort()函数先定义choice1,输出想要排序的科目的序号,用选择排序法实现函数学生成绩的排序。5.void Modify()函数先定义好 一个密码以及flag=0;如果输入的密码错误则flag=1,用d

13、o .while实现是否重新输入密码,密码准确后调用modi()函数,实现修改功能。6. void Count()函数用menu1函数实现一个菜单功能。用switch实现,用户选择想执行的功能,从而调用Show1()Show2()Show3()。 开始Main()enter()print()save()sort()modify ()运行程序count()ChoiceChoice函数123456退出程序7图3 结构图8.2 统计函数流程开始调用menu1函数输入choice1choice1调用show1函数调用show2函数输入选择的科目J=0I=0I=i+1Isn+1.scoreiTemp=s

14、i.scorensn.scorei=sn+1.scoreiSi+1.scoren=tempJ=j+1I=0;sum=0I=i+1INSum=sum+si.scorejSum=sum+si.scorej输出排序成绩输出平均成绩返回函数123结束结束九. 调试与测试9.1系统调试1.在enter()函数中对学生成绩的输入用scanf(“%d”,s);当输入一门成绩后就会跳回,使接下来的程序无法运行,改为for(j=1;j=M;j+) scanf(“%d”,&si.scorej);将错误解决。2.在enter函数中,输入姓名用scanf(“%s”,&si.name);错误,在scanf函数中的输入项

15、如果是字符数组名代表该数组的起始地址.则应改为scanf(“%d”,si.name)。3.在运行print()函数时,第四门课显示出来的分数并非输入项:错误,在定义时将j=1,应改为j=0。 4.在count()函数中,show3();输出的人数比实际的多一人,因为b+在循环结束之后会自增一次,则比实际的大一。9.2系统测试1.运行时进入主界面,系统根据输入的数字选项来调用相应的函数。主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。以下为该界面;图5:主菜单2.进行学生成绩输入时按照提示选择1键,录入第一个学员信息。完成后屏幕下方出现提示“是否继续

16、输入?(YN)”,此时,按键盘上的N键则为结束输入,返回主菜单;若按Y键,则继续输入第二个学生信息,依此类推。图6:成绩录入3.当要求显示学生成绩时输入2键,按下回车键即出现以下界面图中所显示的即为刚刚输入的学生成绩:图7 :成绩显示4.选择保存成绩是选择3,按下回车则提示输入文件名则由图所示:图8:成绩保存5.当执行对学生成绩进行排序时,输入4键,会出现一个选择界面让所要排序的科目,当输入一个数字时及执行对该科目成绩的排序命令,具体如下截图:图9:成绩排序6.改时需要进行密码验证当密码错误时不能进行该操作,只有输入正确的密码才能运行,运行结果如下图:图10:成绩修改7.当需要进行成绩统计时,

17、输入数字6,按回车即可出现一个选择界面:输入数字1即显示每科成绩最高的学生信息:输入数字2即显示每科的平均成绩;输入数字3则退出该功能的运行。截图如下:图11:成绩统计十总结在这为期一周的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了班级成绩管理系统系统的程序设计。虽然在这学期中,我们已经学习了C 语言程序设计这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对C语言有了更深一步的了解,掌握了更多的技巧和技能。C语言是计算机程序

18、设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。这次设计中,我们的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块

19、,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!在参考书上,我们不仅参考了谭浩强主编的第二版C语言程序设计进行参考。当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一

20、次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。一周的课程设计即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。参考文献1 谭浩强.C语言程序设计(第二版).北京: 清华大学出版社,2009.2 谭浩强C程序设计程序设计学习辅导 .北京 :清华大学出版社,2005.附录 源代码#include /*I/O函数*/#include /*字符串函数*/#define M 4 /*课程数*/#define NUM 3 /*人数*/ #define NULL 0#include#includeint avar

21、M;struct stuchar name20; int num; int scoreM; void enter(struct stu s,int n); void print(struct stu s,int n); void save(struct stu s,int n); void sort(struct stu s,int n); void modify(struct stu s,int n); void count(struct stu s,int n); int menu();void main()void clrscr(); struct stu studentNUM; for

22、( ; ; ) switch(menu() case 1:enter(student,NUM);break; case 2:print(student,NUM);break; case 3:save(student,NUM);break; case 4:sort(student,NUM);break; case 5:modify(student,NUM);break; case 6:count(student,NUM);break; case 7:return; int menu()int choice;printf(n*班级成绩管理*n);printf( 1 成绩录入n);printf( 2

23、 成绩显示n);printf( 3 成绩保存n);printf( 4 成绩排序n);printf( 5 成绩修改n);printf( 6 成绩统计n);printf( 7 退出系统n);printf( 学生人数级 NUM 课程 数学0 语文1 英语2 政治3n);printf(*n);doprintf(nchoice1-7:); scanf(%d,&choice);while(choice7);return choice;void enter(struct stu s,int n)char c;int i=0;int j;do printf(please enter the message:n

24、);getchar(); printf(enter name:n); scanf(%s,si.name); printf(enter num:n); scanf(%d,&si.num);printf(enter score:n); for(j=0;jM;j+)scanf(%d,&si.scorej);printf(按Y继续录入,按N结束录入!);getchar();scanf(%c,&c);if(c!=Y&c!=y)break;+i;while(i!=n);void save(struct stu s,int n)FILE *fp; int i; char save20; printf(ent

25、er the file name:); scanf(%s,save); /*输入选择项*/ if(fp=fopen(stu-list,wb)=NULL)printf(can not open filen); return; elsefor (i=0;in;i+) if(fwrite (&si,sizeof(struct stu),1,fp)!=1); printf(file write errorn); fclose(fp); printf(successn);void print (struct stu s,int n)int i,j; for(i=0;in;i+) printf( 数学 语

26、文 英语 政治n);printf(%s,si.name); printf(%d,si.num); for(j=0;jM;j+) printf(%5d,si.scorej); printf(n);void sort(struct stu s,int n) /*排序*/int i,j,min,temp,k; printf(please choice subject 1-4:n); scanf(%d,&k); for(i=0;in-1;i+)min=i; for(j=i+1;jsj.scorek)temp=smin.scorek; smin.scorek=sj.scorek; sj.scorek=t

27、emp; printf(n The sorted numbers:n); for(i=0;in;i+) printf(%5d,si.scorek); printf(n);void count(struct stu s,int n)void show1(struct stu a,int n1);void show2(struct stu a,int n1);int menu1();for( ; ;) switch(menu1() case 1:show1(s,n);break; case 2:show2(s,n);break; case 3:return;int menu1()int choic

28、e1;printf(n*n);printf(1:显示每科成绩最高的学生信息n);printf(2:显示每科平均成绩n);printf(3:退出n);printf(*n);do printf(n Enter tou choice1 (1-3):);scanf(%d,&choice1);while(choice13);return choice1;void show1(struct stu a,int n1)int k,i,j,c=0; printf(please enter the subject num:); scanf(%d,&k); for(i=0;in1;i+) if(ac.scorek

29、ai.scorek) c=i; printf(%s,%d,ac.name,ac.num); for(j=0;jM;j+) printf(%5d,ac.scorej);void show2(struct stu a,int n1)int i,j,sum; for(j=0;jM;j+)sum=0; for(i=0;in1;i+) sum=sum+ai.scorej; avarj=sum/n1; printf(The %d avarage is:%dn,j,avarj);void modify(struct stu s,int n)void modi(struct stu c,int n1); in

30、t flag=0; char a10,c,code10=1234a;/*密码*/ doprintf(please enter you code:n); scanf(%s,&a); if(strcmp(code,a)=0)break; elseprintf(You code is wrong,enter again?ynn); scanf(%cn,&c); if(c=n|c=N)flag=1;break;while(1); if(flag=0) modi(s,n);void modi (struct stu c,int n1) int num,ch; int i,j; printf(please

31、 input modify No:); scanf(%d,&num ); getchar(); for(i=0;i=n1) printf(n list No %d studentn,ci.num); elseprintf(modify(y/n)?n); ch=getchar();getchar(); if(ch=y|ch=Y)printf(enter numn); scanf(%d,&ci.num); getchar(); printf(modify name(y/n)?n); / ch=getchar();getchar(); if(ch=y|ch=Y)printf(enter name:n); scanf(%s,ci.name); getchar(); printf(modify record(y/n)?n); ch=getchar();getchar(); if(ch=y|ch=Y)printf(enter record:n); for(j=0;jM;j+)scanf(%d,&ci.scorej); getchar();return;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁