c语言程序设计报告学生成绩管理系统_第1页
c语言程序设计报告学生成绩管理系统_第2页
c语言程序设计报告学生成绩管理系统_第3页
c语言程序设计报告学生成绩管理系统_第4页
c语言程序设计报告学生成绩管理系统_第5页
免费预览已结束,剩余25页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生成绩管理系统-1-课程设计报告书学生成绩管理系统完成日期:2010年7月14日单位:班级:学号:姓名:指导老师:分院学生成绩管理系统2内容摘要摘要:本次课程设计的课题是学生成绩管理系统,本文介绍课程设计课题的 选题意义,说明了本系统提供的主要功能,对设计思路、功能模块、流程图、 功能模块、中心算法进行了详细的说明,并画出流程框图。本文提供了完整的 源程序代码,并展示了系统使用和运行效果。最后给出了在小学期高级语言程 序设计过程中的总结,其中包含本程序独特设计,作者的设计收获、设计中遇 到的困难和问题,以及作者对设计题目及功能的改进意见, 查阅的参考文献等 方面的内容。索引关键字关键词:源程

2、序代码,学生成绩管理,流程框图学生成绩管理系统3内容目录1 题目要求-41.11.1内容要求-4 41.21.2设计要求-4 42 设计思想-53 功能模块及流程图 - 54 数据结构-75 中心算法代码说明 - 76 系统实现-86.16.1程序代码-8 86.26.2系统使用- 21216.36.3运行效果说明-21217 总结-248 致谢词-259 参考文献-25学生成绩管理系统4.正文1 题目要求1.1 内容要求要求能够实现输入记录、查询记录、更新记录、统计记录、输出记录等功 能。1.输入记录。对每个学生的学号、姓名、班级、数学、英语、计算机成绩 进行输入并存储,在程序的运行过程中,

3、数据的存储可以采用结构体数组或者 链表,但是最终应该存储在文件中。2.维护记录。能够实现添加、删除、修改学生记录,但是一定要将最终数 据存储到文件中。3.查询记录。根据班级、学号、科目等查询学生的成绩。如果查询时学生 数据并没有读入到结构体数组或者链表中, 则应该先从文件中读出数据并存储 在结构体数组或者链表中,然后在结构体数组或者链表中查询满足条件的数 据。4.统计记录。完成对各门功课最高分和不及格人数的统计。1.2 设计要求1各级菜单及功能间必须建立必要的联系,要定义参照完整性规则2使用二进制文件方式存储数据。3要求有菜单界面,结果显示时应达到界面友好。4将完成的全部内容连编成一个.exe

4、文件。学生成绩管理系统52 设计思想1.在设计时考虑以下几个方面:操作简单。因为使用者多为非计算机专业人员,所以该系统要求设计的界面美观,操作方便。要充分考软件界面友好和操作方便,便愈使用人员快速上手。易于维护。一个软件的好坏,关键在于产品的可靠,稳定,便于维护。2 2 开发语言的选择针对世界上流行的大量软件和开发工具,经过认真分析其优缺点,结合目前的软硬件开发环境,选用微软 WINDOWWINDOW 平台下的 VisualVisual C+C+作为软件开发工具。选用工具有几 下几方面优点:1C C 语言简洁、紧凑、使用方便、灵活。有3232 个关键字。C C 语言程序比其他许多高级语言简练,

5、源程序短,因此输入程序时工作量小。2运算符丰富。3数据类型丰富,具有现代语言的各种数据结构。4C C 语言是完全模块化和结构化的语言。用函数作为程序的模块单位,便于实现程 序的模块化。5语法限制不太严格,程序设计自由度大。6生成目标代码质量高,程序执行效率高。7用 C C 语言编写的程序可移植性好。综上所述,VisualVisual C+C+可以满足学生成绩管理的要求,所以用来开发学生成绩管理 系统是非常合适的。3 功能模块及流程图学生成绩管理系统对学校加强学生基本情况及学生成绩管理有着重要的作用。为了 能使该系统具有更为广泛的功能:应该将该系统细分为学生操作系统、教师操作系统、 教务处操作系

6、统,以满足不同身份学生成绩管理系统6的人的需求。总体来说,该系统应分为输入模块、维 护模块、查询模块以及统计模块。由于本软件为学校中多个身份的人的定制开发的。我们经过反复论证,最终确定了 学生成绩管理系统的设计方案,主要流程图如下所示:学生成绩管理系统7学生操作教师操作教务处操作仃V“V通过系统主菜单,可以使学校中不同身份的人选择不同的操作系统,从而合理的使用 不同的功能。4 数据结构结构体:程序设计中用到的结构体类型:学生信息结构体类型:struct student学生成绩管理系统8int num;char nam20;char clas20;float math;float english

7、;float computer;stuSIZE;5 中心算法代码说明说明1. void save()FILE *fp;int j;if(fp=fopen(stui_l ist,wb)=NULL)printf(cannot open filen);return;for(j=0;jSIZE;j+)if(fwrite(& stuj,sizeof(struct student),1,fp)!=1)printf(file write errorn);fclose(fp);以上代码将数据存入文件中,操作起来避免了直接对内存进行操作,可对文件进行操作。2.for(i=0;iSIZE;i+)for(j

8、=0;jstui+1.math)t=stui.math;stui.math=stui+1.math;stui+1.math=t;for(j=0,i=0;iSIZE;i+) if(stui.math60) j=j+1;学生成绩管理系统9统计函数中使用起泡法排序再统计的方法6.系统实现6.1 程序代码代码如下:#include #include #define SIZE 34struct studentint num;char nam20;char clas20;float math;float english;float computer;stuSIZE;void save()/*将数据储存于文

9、件*/FILE *fp;int j;if(fp=fopen(stui_l ist,wb)=NULL)printf(cannot open filen);return;for(j=0;jSIZE;j+)if(fwrite(&stuj,sizeof(struct student),1,fp)!=1) printf(file write errorn);fclose(fp);学生成绩管理系统10search(int n) /*查询学号函数*/ int j;for(j=0;jSIZE)return -1;void function1()void xt2();int i;char k;print

10、f(/*添加记录*/*学生成绩管理系统11*n);for(i=0;iSIZE;i+)printf(请输入该生学号:n); scanf(%d,&stui.num);printf(请输入该生姓名:n);scanf(%s, &stui.nam);printf(请输入该生所在班级:n);scanf(%s, &stui.clas);printf(请输入该生数学成绩:n);scanf(%f, &stui.math);printf(请输入该生英语成绩:n);scanf(%f, &stui.english);printf(请输入该生计算机成绩:n);scanf(%f,

11、&puter);getchar();printf(完成本次操作! ! !n);printf(是否返回上一菜单?y/n:n);k=getchar();if(k=n)continue;/*判断*/else学生成绩管理系统12scanf(%d,&i);j=search(i);if(j=-1)loop:printf(”该学生不存在,请重新输入!n);printf(”输入0退出n);for(j=0;jSIZE;j+)if(j=-1)goto loop;else break;elsefor(i=0;iSIZE;i+)printf(”原数据为:n);printf(学 号%d,姓 名%s,班

12、级%s,数 学 成 绩%4.1f,英 语 成 绩%4.1f,计 算 机 成绩%4.1fn,stuj.num,stuj.nam,stuj.clas,stuj.math,stuj.english,puter);stuj.num=0;stuj.nam20=0;stuj.clas20=0;stuj.math=0;stuj.english=0;puter=0;printf(删除结果为n);break;save();xt2();void function2()/*删除学生记录*/void xt2();int i,j;char a,k;*删 除 学 生 信 息*n);printf(请输入要删除学生的学号:n

13、);学生成绩管理系统13printf(”学号d,姓名s,班级s,数学成绩4.1f,英语成绩4.1f,计算机成绩%4.1fn,stuj.num,stu|j.nam,stu|j.clas,stu|j.math,stu|j.english,stu|puter);save();printf(完成本次操作!! n);k=getchar();if(k=y)continue;/*判断*/elsebreak;printf(是否返回主菜单y/n:n);scanf(%c,&a);if(a=y)xt2();elsefunction2();void function3()/*修改*/ char name20,

14、phy10;void xt2();printf(请输入要修改的学生姓名:);scanf(%s,name);printf(n);int i;float t;for(i=0;iSIZE;i+)change:if(strcmp(stui.nam,name)=O)printf(请输入要修改的科目:);scanf(%s,phy);if(strcmp(math,phy)=0)printf(输入成绩:);scanf(%f,& t);stui.math=t;printf(”成绩为:%4.2fn,stui.math);学生成绩管理系统14else if(strcmp(english,phy)=O)pri

15、ntf(输入成绩:);scanf(%f,& t);stui.english=t;printf(成绩为:%4.2fn,stui.english);else if(strcmp(computer,phy)=0)printf(输入成绩:);scanf(%f,& t);puter=t;printf(成绩为:%4.2fn,puter);elseprintf(错误,请重新输入:);goto change;save();printf(完成本次操作! ! !n);xt2();void way1()/*按班级查询*/void function4();int i;char clas20;char

16、a;loop:printf(请输入要查询学生的班级:n);scanf(%s,clas);for(i=0;iSIZE;i+)if(strcmp(clas,stui.clas)=0)printf(学号%d,姓名%s,班级%s,数学成绩%f,英语成绩%f,计算机成 绩fn,stui.num,stui.nam,stui.clas,stui.math,stui.english,puter);学生成绩管理系统15if(i=SIZE)printf(”您所查询的信息不存在,请重新输入”);goto loop;printf(完成本次操作!!!n);scanf(%c,&a);if(a=y)way1();e

17、lsefunction4();void way2()/*按学号查询*/void function4();int i;int number;char a;loop:printf(请输入要查询学生的学号:n);scanf(%d,&number);for(i=0;iSIZE;i+)if(number=stui.num)printf(学号%d,姓名%s,班级%s,数学成绩%f,英语成绩%f,计算机成绩fn,stui.num,stui.nam,stui.clas,stui.math,stui.english,puter);if(i=SIZE)printf(”您所查询的信息不存在,请重新输入n);

18、goto loop;printf(完成本次操作!!!n);scanf(%c,&a);if(a=y)way2();elsefunction4();void check1()/*按学生数学成绩查询*/学生成绩管理系统16void way3();int i;char a;char name20;loop:printf (请输入要查询的学生姓名n);scanf(%s,name);for(i=0;iSIZE;i+)if(strcmp(name,stui.nam)=0)printf(%s的数学成绩是%fn,name,stui.math);printf(完成本次操作!! n);scanf(%c,&a

19、mp;a);if(a=y)goto loop;elseway3();void check2()/*按学生英语成绩查询*/void way3();int i;char a;char name20;loop:printf (请输入要查询的学生姓名n);scanf(%s,name);for(i=0;iSIZE;i+)if(strcmp(name,stui.nam)=0)printf(%s的英语成绩是%fn,name,stui.english);printf(完成本次操作!!!n);scanf(%c,&a);if(a=y)goto loop;elseway3();学生成绩管理系统17void

20、way3();int i;char a;char name20;printf(”请输入要查询的学生姓名n);scanf(%s,name);for(i=0;iSIZE;i+)if(strcmp(name,stui.nam)=0)printf(%s的计算机成绩是%fn,name,puter);printf(完成本次操作!!!n);scanf(%c,&a);if(a=y)check3();elseway3();void way3()/*按科目查询*/void function4();int check;prin tf(*printf(请输入要查询的科目:*n);1按学生数学成绩查询n);pr

21、intf(printf(printf(printf(请选择:n);scanf(%d, &check);2按学生英语成绩查询n);3按学生计算机成绩查询n);4.返回上一菜单n);switch(check)case 1:check1();break;case 2:check2();break;case 3:check3();break;void check3()/*按学生计算机成绩查询*/学生成绩管理系统18case 4:function4();break;学生成绩管理系统19void function4() /*查询记录*/void main();int way;*printf(*pr

22、intf(请选择:n);scanf(%d,&way);switch(way)case 1:way1();break;case 2:way2();break;case 3:way3();break;case 4:main();break; void function5()/*统计*/void main();char phy1O;int a;printf(请输入要统计的科目:);shuru:scanf(%s,phy);if(strcmp(math,phy)=0)int i,j;float t;for(i=0;iSIZE;i+)printf(”*n);printf(printf(printf

23、(printf(1按班级查询n); 2按学号查询n); 3按科目查询n); 4返回主菜单n);*n);学生成绩管理系统20for(j=0;jstui+1.math)t=stui.math;stui.math=stui+1.math;stui+1.math=t;for(j=0,i=0;iSIZE;i+) if(stui.math60)j=j+1;printf(”数学最高分为%4.1f,不及格人数为%dn,stuSIZE.math,j);if(strcmp(e nglish,phy)=0)int i,j;float t;for(i=0;iSIZE;i+)for(j=0;jstui+1.englis

24、h)t=stui.english;stui.english=stui+1.english;stui+1.english=t;for(j=0,i=0;iSIZE;i+) if(stui.english60)j=j+1;printf(英语最高分为%4.1f,不及格人数为%dn,stuSIZE.english,j);if(strcmp(computer,phy)=0)学生成绩管理系统21int i,j;float t;for(i=0;iSIZE;i+)for(j=0;jstui+puter)t=puter;puter=stui+puter;stui+puter=t;for(j=0,i=0;iSIZE

25、;i+)if(puter60)j=j+1;printf(计算机最高分为%4.1f,不及格人数为%dn,stuSIZE.computer,j);printf(1,继续统计n);printf(2,返回主菜单n);printf(请选择:n);scanf(%d, &a);switch(a)case 1:function5();break;case 2:main();break;void xt1() void main();printf(*n);printf(printf(1.查询记录n);2.返回上一菜单n);学生成绩管理系统22printf(”*Jprintf(n);int function

26、;printf(请输入要选择的功能:);scanf(%d,& function);switch(function)case 1:function4();break;case 2:main();break;void xt2()void main();printf(*n);printf(printf(printf(printf(printf(printf(1.添加记录n);2.删除记录n);3.修改记录n);4.查询记录n);5.统计记录n);6.返回上一菜单n);printf(*printf(n);int function;printf(请输入要选择的功能:);scanf(%d,&

27、; function);switch(function)case 1:function1();break;case 2:function2();break;case 3:function3();break;case 4:function4();break;case 5:function5();break;case 6:main();break;学生成绩管理系统23学生成绩管理系统24void xt3()void main();printf(*printf(请选择运行身份:);scanf(%d, &a);if(a=1)xt1(); if(a=2)xt2();if(a=3)xt3();pr

28、intf(”*处 操 作 系 统*n);printf(printf(printf(printf(1.查询记录n);2.统计记录n);3.返回上一菜单n);*n);printf(n);int function;printf(请输入要选择的功能:);scanf(%d,& function);switch(function)case 1:function4();break;case 2:function5();break;case 3:main();break;void main()int a;printf(*n);printf(1.学生2教师3.教务处n);*n);学生成绩管理系统256.

29、2 系统使用1录入信息时,每一个项目都必须输入相应的内容,输入错误时,系统自动提供输入错误提示,可以根据提示重新输入。2修改、增加、删除,查找记录前必须先打开一个文件修改完后必须记得保存信息。6.3 运行效果说明主菜单:供使用人选择身份,进入相应的管理系统学生成绩管理系统26rfTTEjjB - ;:”:=:/;&L,?-. j, .- YAyxiiT筲丁U,: 決貪; 滋竄疙磔/: ; 聲驚护y;号”.: 、堂?密醫克;慮竝歩-誉 矍廿小:二;啰:嘰:邈XA送必萇證暨蹇尹:$密&Q送;0律烷爲fS5p9s|ra!K=5W,-匚:Jnx| *D:X nfi序IDisliu.讥5

30、p I .已s sHI.HI.系肆r r小录录录录一弼记记记记记匕粘畧活冋YM-mJsn一充殳-添憧12 3 15 6请选择:胃输入墓査询竽生的哗号2EBH2414愕号2 0&92 41也 姓名J inso ng ” .0C9B06宽成本枫操作!I淸输入要选擇的功能叩LJ J= j LJ LJ J j kJ LJ 2 H LJ 1-1 1-1 a_l 1-1 LJ请选匡 *D: riJrDebu.ECpp I - eie添加学生信息:是教师能够录入添加学生信息查询功能:使使用人可以根据班级、学号、科目查询成绩。幫询询单芋誉香杳_菜询矍-、_I_I主蹇辛科冋1212 3 3 4 4二二二

31、二-!闻但单一杳査菜“询聲 rm.土”U* . *返 F12 344班级朋”越芋成希油.弋语成绩師.MB0000 .廿聲贺成绩E H学生成绩管理系统27储输入要选J牟的功能譚畔生成绩管理系统逅回上一菜单I接:摄崔拥臥合程序DebugCppE exe学.H卜学主2愚师氣教务处黑査啊抵豪黑擁潦豪规烧农揺酬岸棉岸抵託卄再肾眸普烁片週卄忖黑弭屛老卄豪卄黑忖屛応卄来卄检忖牺农忖斛卄図岸 隔选样运行身份譚福输入聚删除学生的学号:089241廉邈抵为:2 MH92 414姓名jin won肌班级B6”数学威绩y H.H,英语成绩8 H. W,计茸机成绩总日-0,结果为叫姓名Jgwn务班级,数学威绩EL此英语

32、鯛 缜叫计算机成绩a.a删除功能:教师能够删除学生信息并储存。叮记录请领入曇修改的科冃邛MhSjAH:86成绩为:腳.如莞成本次操作!丨艸簪系统2”別除记录3修改记录4.査询记录 取統址记录一、.X合程序VDeLxigXCppl. exe:瞬星麗名Wiwh 一刖獄记录3-骸决记隶4.査诃记录5.统F己录H修改功能:使教师能够根据学生姓名修改学生不同科目的成绩。EJ学生成绩管理系统28淸输入该生数李成绩鲁输入该生英倍成痛请输入谏生计畀机感绩:亀琏挟揀作鼻丨是杏逆回上一夷单?y/n |1淙加1售亲2_ _几傷改记录4. 章询记录5.统$i己录石返回上一菜单J口X *D s、合程JBcbugCpp1.ezc能目广功科.0单要要高筆.入入最续回择務语继盪选请晏警学生成绩管理系统29统计功能:用来统计某科目在班级中最高分以及不及格人数。7.总结通过本次 C C 程序课程设计,我觉得对自己提高很大:克服了懒惰,这在我以后 的学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论