学生成绩管理系统C语言课程设计_第1页
学生成绩管理系统C语言课程设计_第2页
学生成绩管理系统C语言课程设计_第3页
学生成绩管理系统C语言课程设计_第4页
学生成绩管理系统C语言课程设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、百度文库好好学习,天天向上c语言程序设计课程设计报告题目(中文)学生成绩管理系统姓名学号学部专业、年级指导教师2010年12月31日学生成绩管理系统设计报告1.组内成员基本情况2.与课程设计相关的课程学习情况(分别列出已学过的课程)课程1:计算机科学导论C课程2:C语言程序设计。3.组内成员中当任班干部的姓名与职务情况目录一、问题描述二、需求分析模块1:添加学生信息模块2:添加课程信息3 4 5 6 7 8 0 H与 uHH=-HyH个 模模模模模模模添加成绩信息查询成绩信息统计学生成绩信息修改学生成绩删除学生成绩恢复删除成绩退出三、算法设计1 2 3 4 5 6 去法法去去去 算算算算算算主

2、函数的算法添加记录函数根据学号修改成绩记录查找函数删除记录恢复记录四、调试分析入程序实现实现1:添加学生信息实现2:添加课程信息实现3:添加成绩信息实现4:查询成绩信息A个人成绩B班级成绩实现5:统计学生成绩信息A个人平均成绩B班级某门课程及排名实现6:修改学生成绩实现7:删除学生成绩实现8:恢复删除成绩实现0:退出六、总结与体会七、程序附录八、存在的问题问题1在输入学生成绩信息时,不能对未有信息的识别。问题2在输入的学生成绩的函数里,存放的是课程名。问题3不能对全班的总成绩进行排名-3百度文库好好学习,天天向上九、指导教师对课程设计的评语一、问题描述做三个简单的文件系统。第一个文件包括的信息

3、有学生的姓名、性别、学号、专业、班级、所在系部。能够对学生信息进行储存、添加。第二个文件包括学号、课程名和成绩。能够对学生的成绩进行存储、查询、修改、添加和恢复。在查找里而能够以学生的学号进行学生成绩的查找。在学生成绩的修改里而不能对学生的学号和课程名进行修改。能够随时对学生的成绩进行添加。且不会覆盖以前的学生记录。第三个文件包括课程的代码和课程名称。能够对课程的信息进行储存。结构体1(课程信息)字符串变量(课程代码)最大长度为10字符串变量(课程名)最大长度为10结构体2(学生信息)整型 字符串 字符型 字符串 字符串 字符串变量(学号)变量(姓名)变量(性别)变量(专业)变量(班级)变量(

4、系部)四个字节 最大长度为11 一个字节 最大长度为12 最大长度为12 最大长度为12结构体3(学生成绩信息)字符型变量(标志)一个字节整型变量(学号)四个字节字符串变量(课程名)最大长度为10实型变量(成绩)四个字节运用的文件:二、需求分析模块1:添加学生信息本模块主要是负责对学生信息文件”进行添加,也能实现对学生记录的追加。在添加记录的时候,能通过一个输出函数。屏幕会主动提示。用户可以根据提示通过一个输入函数,输入要添加的学生记录的数目来定量的对学生记录进行添加。然后对照屏幕上的格式,依次对每一条记录进行录入。每一条记录录入完了后,用回车键结束本条记录的输入工作。接着对下一条记录进行输入

5、。直到百度文库好好学习,天天向上输入的记录和定量输入的学生记录数相同。程序自动跳出。模块2:添加课程信息本模块主要是负责对课程信息文件“”添加,也能实现对课程记录的追加。加入记录的时候,能通过一个输出函数。屏幕会主动提示。用户可以根据提示通过一个输入函数,输入要添加的课程记录的数目来定量的对课程记录进行添加。然后对照屏幕上的格式,依次对每一条记录进行录入。每一条记录录入完了后,用回车键结束本条记录的输入工作。接着对下一条记录进行输入。直到输入的记录和定量输入的课程记录数相同。程序自动跳出。模块3:添加成绩信息本模块主要是负责对学生成绩信息文件“”进行添加,也能实现对学生成绩记录的追加。加入记录

6、的时候,能通过一个输出函数。屏幕会主动提示。用户可以根据提示通过一个输入函数,输入要添加的学生成绩记录的数目来定量的对学生成绩记录进行添加。然后对照屏幕上的格式,依次对每一条记录进行录入。每一条记录录入完了后,用回车键结束本条记录的输入工作。接着对下一条记录进行输入。直到输入的记录和定量输入的学生成绩记录数相同。程序自动跳出。模块4:查询成绩信息因为对一个比较大的学生成绩进行管理,如果没有查找功能,那就不能方便的对学生成绩进行各种处理。查找功能能够对学生成绩高速定位。能对有相同属性的学生进行查看。很快速定位和对相同属性的学生进行分类能查看更好的满足用户对程序要求。同样。用户只要根据提示,输入学

7、生的姓名就能定位到要查找的学生的成绩。程序再通过一输出函数,把要查找的信息显示到屏幕上。模块5:统计学生成绩按照提示,通过输入学生的学号、班级、课程,实现对学生个人平均成绩,对班级某门课程的平均分及排名的统计功能。模块6:修改学生成绩本模块实现对已有的学生成绩的修改,因为学生的信息中学号和课程一般是不会变的,在修改的过程中,出于对事实的考虑,以学生的学号和课程对学生成绩进行定点查询修改和模块2添加记录一样,在修改之前,程序会主动提示要进行修改的内容。用户可以根据程序的提示。通过输入学生的学号、课程名,再按程序提示的格式依次对学生的成绩进行修改。修改完闭以后程序会自动跳出。以便进行其它工作。模块

8、7:删除学生成绩本模块可以实现对已有学生成绩的删除,程序会主动提示要进行删除的-7内容。用户可以根据程序的提示。通过输入学生的学号,再按程序提示进行删除操作。以便进行其它工作。模块8:恢复删除成绩本模块可以实现对已删除的学生的成绩进行恢复工作。程序会主动提示要进行恢复的内容。用户可以根据程序的提示。通过输入学生的学号,再按程序提示进行恢复操作。以便进行其它工作。模块0:退出在需要进行的操作都完成后,调用模块0退出本程序。三、算法设计1.主函数的算法A.用system用cls);实现清屏;B.用printf(请输入对应操作的数字进行您要进行的操作:n);提示要进行的操作;C.printf(1、p

9、rintf(“2、printf(“3、printf(4、添加学生信息n)添加课程信息n)添加成绩信息n)查询成绩信息n)printf(5、统计学生成绩信息n);printf(6、printf(“7、printf(“8、printf(0、修改学生成绩n);删除学生成绩n);恢复删除成绩n);退出n);printf(请选择:);函数提供选项,提示用户进行下一步的操作D.定义变量ch;E.输入一个ch的值;F.用switch。进行条件跳转;实行相映的操作;即调用从函数;2.添加记录函数A:添加学生信息函数:百度文库好好学习,天天向上开始FILE*fp;Inti;if(fp=fopen(MH;abH)

10、=NULL)printf(cannotopenfilen);用for循环追加记录Fclose(fp);结束2、添加课程信息函数:开始FILE*fp;Inti;if(fp=fopen(MH;abH)=NULL)printf(cannotopenfilen);用for循环追加记录Fclose(fp);结束3、添加学生成绩的函数:开始FILE*fp;Inti;Jf(fp=fopenT是abH)=NULL)printf(cannotopenfilen);用for循环追加记录Fclose(fp);结束9百度文库好好学习,天天向上4.查询成绩函数A:个人成绩函数开始FILE*fpl*fp2;SCOSt2;

11、CORstl;Longnum;shortfg=l,fgl;是否printf(cannotopenfilen);输入num的值fgl=0;While(!feof(fpl)fread(&stu2,sizeof(STU)1,fp);Jif=number)是Fgl=l;printf(姓名:%srT,;Break;While(!feof(fp2)fread(&st2,sizeof(SCO),1,fp2);if=num&=*)是printf(,z%s:%.2fn,st2.course,;Break;_if(getch()!=是-y)一一否Fclose(fpl);Fclose(fp2);fg=0;Fg=O;

12、if(fpl=fopm(H,0rb)=NULL)if(fp2=fop:n(”TTb)=NULL)结束B:班级成绩函数百度文库好好学习,天天向上-15开始FILE*fpl*fp2;SCOst2;CORstl;Longnum;charclasflO;结束5、统计学生成绩A、个人平均分函数开始FILE*fpl*fp2;SCOst2;CORstl;Longnum;Floatave;shortfg=l,fgl,i;=fopen(,M,Hrbu)=NULL)=fopen(,M,Hrbu)=否printf(z,cannotopenfilen);输入num的值;fgl=0;i=l;ave=0;While(!f

13、eof(fpl)fread(&stul,sizeof(STU)1,fp);if=num)是Xfgl=l;printf(%d%s的平均分为:“、num,;continueWhile(!feof(fp2)fread(&stu2,sizeof(SCO),1,fp);jf=num)ave+=;i+;Continue;printf(飞.2fn,ave/i);break;J!(Fclose(fpl);Fclose(fp2);fg=o;iFg=0;结束B:班级某一门课程的平均分及排名开始百度文库好好学习,天天向上平均分为:%.2fn,clas,course,ave/i);Rewind(fp2);for(k=

14、O;ki-l;k+)t=sk;sk=sj;sj=t;b=ak;ak=aj;aj=b;for(j=k+l;ji;j+if(s(ksUD是否t=sk;sk=sj;sj=t;b=ak;ak=aj;aj=b;Continuefor(k=0;ki;k+)while(!feof(fp2)fread(&st2,sizeof(SCO),1,fp2)J_if(sk=&ak=是printf(,z%d%s:%.2fn,;Continueif(getch()!=y)/Fclose(fpl);Fclose(fp2);fg=o;ContinueFg=O;结束6根据学号修改学生成绩开始FILE*fp;SCOst;longn

15、um;floats;shortfg=l,fgl;charcourse10;if(iplifW=fopen”Jrb)=NULL)=fopen(“Jrb)=NULL)_printf(cannotopenfilen,/);i=0;iSIZE;i;i.num=stu_num是ber)否strcpy(studli.addr,stu_addr);studlil.age=stu_age;strcpy(,name);if直到iSIZEFclose(fp);结束7.删除记录开始FILE *fp;-19请输入删除的学号numfread(&st,sizeof(SCO),1,fp);if=&=n

16、ui是n)1gl=l;printf(飞dn”,;prirrtf(飞sn”,;printf(*%.2fn”,;pnntf(是删除该成绩吗?(y/n)是seek(fp,-(long)(sizeof(SCO),SEEK_CUR);fputc(,*,fp);忝忝W流彦删配33303334万口1、4A.个人成绩:B:班级成绩:E:Ebook程序ll.exe查询学生成蒲请辙人查询学号:1001接K期冬:yi输入一名课堂:shuxueyi的shuxue成绩为:1601shuxuo:99.001002shuxue:87.001003shuxue:98.00继续查询吗?)5、统计学生成绩信息:除学生成绩复删除成

17、绩亘皆言息二25彩晶舞信息本加学生,11;缠鹳课程的平均分及排名123456780_A、个人平均B:班级内一门课程的平均分及排名:,E:Ebook程序ll.exe学生成绩统计请输入珊级各请输入一名,“一初擞久谟程为shu1001shuxue:90.001002shuxuo:88.00继续统计吗?(必)=yi:shuxucxue的平均分为:89.006、修改学生成绩:序号:1001:shuxuc:98.00维续修改呜?“n)7、删除学生成绩:百度文库好好学习,天天向上-33CD 回I8、恢复学生成绩:E:Ebookll.exe恒复删除养生座落请输入已删除学生学号:10011001shuxue99

18、.00息恢复邃成绩吗?y/n继续恢复呜?y/n六.用户使用说明可以用windowsXP、win7等操作系统,可以在DEVCPP等软件运行。启动程序按照提示进行操作即可。七.总结与体会通过这次课程设计,才知道我们存在的问题有很多。起初以为自己的C语言学的挺不错的,而且平常在C语言这门课程上下了很多功夫。书看了很多次,可当正式去编写课程设计的时候,才知道理论和实践是存在很大差距的。像老师所说的一样,学一门语言没有别的捷径可走,唯一能提高自己编程能力的只有去多看算法,最重要的是要自己多动手去实现一些源代码。主动去编一些程序,从实践中学到东西.在编程的过程中,流程图的编写困难很大,在编写程序的过程中,

19、出现了很多问题,经过老师的帮助以及同学之间的讨论,多次修改后才能够顺利运行。通过这次课程设计,我们学到了很多,至少让我们明白要学好一名语言,一定要多多练习,仅仅去看书是没有多大作用的.只有靠多做,多练才可能有所收获。这次的课程设计,我们的组员和组长同心协力,分工合作,受益匪浅。八.分工情况封辉玲:设计源代码,参与报告的编写。许晓艳:参与报告的编写。刘文泽:参与报告的编写。刘兴斌:输入代码工作九.程序附录#include#include#include#include#includetypedefstructcharnumber10;charcourse10;COU;typedefstruct(

20、intnumber;charname11;charsex;charmajor12;charclas12;charxi12;STU;typedefstructcharflag;intnumber;charcourse10;floatscore;SCO;intmain(intargc,char*argv)(charch;voidAddstuden();voidAddcours();voidAddscor();voidQuerystuden();voidQuerycount();voidDeletestudent();voidUpdatestudent();voidRestorestudent();

21、dosystem(HclsM);printf(l添加学生信息n”);printf(2添加课程信息n”);printf(3添加成绩信息n”);printf(4、查询成绩信息n”);printf(5统计学生成绩信息n);printf(6修改学生成绩nn);printf(7.删除学生成绩n”);printf(8恢复删除成绩n”);printf(O、退出n”);pnntf(=ii);printf(请选择:);ch=getch();printf(H%ciich);switch(ch)case*1*:Addstuden();break;case2:Addcours();break;case3*:Addsc

22、or();break;case4:Querystuden();break;case5:Querycount();break;case6:Updatestudent();break;case171:Deletestudent();break;百度文库好好学习,天天向上case8:Restorestudent();break;caseVxxiO);)while(l);return0;)voidAddstuden().2f.2f.2f.2fnn);printf(继续查询吗?(y/n);if(getch()!=y)(fclose(fpl);fclose(fp2);fg=o;)1)voidQueryco

23、unt()统计成绩charch;voidc();个人平均分voidd();/排名printfCK个人平均分n);printf(2班级内一名课程的平均分及排名n”);printf(HO退出n);printf(=n);printf(请选择:);ch=getch();printf(M%cn,ch);switch(ch)caseT:c();break;case2:d();break;case0:exit(0);)voidc()个人平均分STUstl;SCOst2;longnum;FILE*fpl,*fp2;shortfg=l,fgl;floatave;inti;if(fpl=fopen(,rb)=NU

24、LL)printf(文件不存在!)getch();return;)if(fp2=fopen(HH;,rbn)=NULL)printf(文件不存在!”);getch();return;)while(fg)(system(HclsH);ave=0;printf(学生成绩统计n”);printf(请输入查询学号:”);scanf(%d”,&iwm);rewind(fp1);rewind(fp2);fg=1;while(!feof(fpl)i=0;ave=0;fread(&stl,sizeof(STU),1,fp1);if=num)fgl=hprintf(H%d-%s的平均分为:,num,;while

25、(!feof(fp2)fread(&st2,sizeof(SCO),1,fp2);if=num)(ave+=;i+;)1printf(M%.2fn,ave/i);break;)if(fgl=O)printf(“该学号的学生不存在。n)printf(是否继续(yn)”);if(getch()!=y)fclose(fpl);fclose(fp2);fg=o;1)voidd()排名(STUstl;SCOst2;FILE*fpl,*fp2;shortfg=l,fgl;floatave,s100=0,t;charclasl0,coursefl0;inti,k,j,b,a100=0|;if(fpl=fop

26、en(,rb)=NULL)(printf(文件不存在!n);getch();return;)if(fp2=fopen(,H,/rbn)=NULL)(printf(文件不存在!H);getch();return;)while(fg)system(HclsH);printf(学生成绩统计n”);printf(”请输入班级名称:);scanf(n%sH,clas);printf(”请输入一名课程名:”);scanf(,%s,course);rewind(fpl);rewind(fp2);fgl=O;ave=0;i=0;while(!feof(fpl)if(fread(&stl,sizeof(STU)

27、,1,fp1)=O)break;if(strcmp(clas,=O)while(!feof(fp2)fgl=l;if(fread(&st2,sizeof(SCO),1,fp2)=0)break;if(strcmp,course)=0)(ave+=;si=;ai=;i+;)printf(班级$课程s的平均分为:%.2fn,clas,course,ave/i);rewind(fp2);for(k=0;ki-1;k+)for(j=k+l;ji;j+)if(sksj)(t=sk;sk=sU;sj=t;b=ak;ak=aj;aj=b;)for(k=0;ki;k+)(while(!feof(fp2)if(fread(&st2,sizeof(SCO),1,fp2)=0)break;if(sk=&ak=printf(%d-%s:%.2fn,;)rewind(fp2);)if(fgl=O)printf(班级不存在0nH);printf(继续统计吗?(y/n);if(getch()!=y)(fclose(fpl);

温馨提示

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

评论

0/150

提交评论