学生运动会成绩管理系统_第1页
学生运动会成绩管理系统_第2页
学生运动会成绩管理系统_第3页
学生运动会成绩管理系统_第4页
学生运动会成绩管理系统_第5页
免费预览已结束,剩余26页可下载查看

下载本文档

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

文档简介

1、目录一、系统开发的背景1二、系统分析与设计1(1) 系统功能要求1(2) 系统模块结构设计1(1) 统计各系别总分:VOIDFUNCT()4(2) 按系别编号排序:VOIDFUNCT()5(3) 按系别总分排序:VOIDFUNCT()6(4) 按男团体总分排序:VOIDFUNCT()7(5) 按女团体总分排序:VOIDFUNCT()8(6) 按系别编号查询某个项目情况:VOIDFUNCT()10(7) 按项目编号查询取得名次的系别:VOIDFUNCT()11(8) 退出系统:VOIDFUNCT()13四、系统测试13(1) 测试VOIDHUANYINGN)函数,VOIDINPUR)函数13(2

2、) 测试VOIDMULQ函数14(3) 测试VOIDFUNC1()函数14(4) 测试VOIDFUNC2()函数15(5) 测试VOIDFUNCT3()函数15(6) 测试VOIDFUNC4()函数15(7) 测试VOIDFUNC5()函数16(8) 测试VOIDFUNC6()函数16(9) 测试VOIDFUNC7()函数16(十)测试VOIDFUNC0()函数16五、总结17六、附件(代码)181/27学生运动会成绩管理系统一、系统开发的背景为了学校方便管理学生运动会成绩,查询各系总分、各项目排名、以及各系获奖情况,因此我们用所学的知识设计了一个学生运动会管理系统,以此方便学校对运动会情况的

3、了解及查询。二、系统分析与设计(1) 系统功能要求该系统可以实现:1)可以输入各个项目的前三名的成绩;2)能统计各系别总分;3)可以按系别编号、系别总分、男女团体总分排序输出;4)可以按系别编号查询某系某个项目的情况;5)可以按项目编号查询取得前三名的系别。(2) 系统模块结构设计概要设计:1结构体运动项目(项目编号;名次;;系别(系别编号;项目;团体总分;男团体总分;女团体总分;;2主程序(main)包括登陆欢迎程序,分数录入程序,查询程序,退出程序通过对系统功能的分析,学生运动会成绩管理系统功能如图1所示。1/27图1学生运动会成绩管理系统功能图通过上图的功能分析,把整个系统划分为8个模块

4、:1、统计各系别总分,该模块主要实现:统计各系别运动会成绩总分,借助函数voidfunct1()来实现;2、按系别编号排序,该模块主要实现:按照各系别编号从小到大进行排序,借助函数voidfunct2()来实现;3、按系别总分排序,该模块主要实现:按照各个系别运动会成绩总分从大到小进行排序,借助函数voidfunct3()来实现;4、按男团体总分排序,该模块主要实现:按照各系别男团体获得的总分从大到小进行排序,借助函数voidfunct4()来实现;5、按女团体总分排序,该模块主要实现:按照各系别女团体获得的总分从大到小进行排序,借助函数voidfunct5()来实现;2/276、按系别编号查

5、询某个项目情况,该模块主要实现:根据系别编号查询该系别在某个项目中所获得的成绩,借助函数voidfunct6()来实现;7、按项目编号查询取得名次的系别,该模块主要实现:根据项目编号查询取得该项目前三名的系别,借助函数voidfunct7()来实现;8、退出系统,该模块主要实现:学生运动会成绩管理系统的安全退出,借助函数voidfunct0()来实现;3/27三、系统的设计与实现(一)统计各系别总分:voidfunct1()分析:根据各系所获奖项的级别,按照每个一等奖加5分,每个二等奖加3分,每个三等奖加2分,统计出各系所获得的总分。流程图如图2所示。图2:voidfunct1()流程图该模块

6、的具体代码如下所示voidfunct1()/统计各系别总分inti,q;printf(*统计各系别总分*n");printf("*系别编号*tt*总分*n");for(i=0;i<N;i+)printf("t%dttt%dn",depi.departmentnum,depi.total);printf("n");printf("n");printf("*0:退出;1:返回目录。n");printf("*请选择:");scanf("%d",&

7、amp;q);while(q=0|q=1)if(q=0)funct0();if(q=1)xunhuan();elseprintf("输入错误(只能是。或1),请重新输入:");4/27(二)按系别编号排序:voidfunct2()分析:为了使用户更好的查询各系之间的比赛成绩情况,将其按照系别编号进行排序。流程图如图3所示。开始depi.departmentnum>depi+1.departmentnumdep1=depi;depi=depi+1;图3:voidfunct2()流程图该模块的具体代码如下所示。voidfunct2()/按系别编号排序structdepar

8、tmentdep1;inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.departmentnum>depi+1.departmentnum)dep1=depi;depi=depi+1;depi+1=dep1;)printf("*按系别编号排序*n");printf("*系别编号*tt*总分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.total);printf("n

9、");printf("n");printf("*0:退出;1:返回目录。n");printf("*请选择:");5/27scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("输入错误(只能是0或1),请重新输入:");(三)按系别总分排序:voidfunct3()4所示。分析:为了使用户更好的查询各系之间的比赛成绩排名情况,将其按照所获成绩总分进行排序。流程图如图(开始)depi.

10、total<depi+1.totaldep1=depi;depi=depi+1;depi+1=dep1;/输出按总分排7/序后的系别/(结束)图4:voidfunct3()流程图该模块的具体代码如下所示voidfunct3()/按系别总分排序(structdepartmentdep1;inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.total<depi+1.total)(dep1=depi;depi=depi+1;depi+1=dep1;6/27printf(*按系别总分排序*n");printf(&q

11、uot;*系别编号*tt*总分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.total);printf("n");printf("n");printf("*0:退出;1:返回目录。n");printf("*请选择:");scanf("%d",&q);while(q=0|q=1)if(q=0)funct0();if(q=1)xunhuan();elseprintf(&quo

12、t;输入错误(只能是0或1),请重新输入:");(四)按男团体总分排序:voidfunct4()分析:根据各系男团体项目所获得的总分进行排序并按所获得的图5:voidfunct4()流程图该模块的具体代码如下所示按男团体总分排序voidfunct4()/structdepartmentdep1;inti,j,q;7/27for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.boytotal<depi+1.boytotal)(dep1=depi;depi=depi+1;depi+1=dep1;printf("*printf(

13、"*系别编号*tt按男团体总分排序*n");*总分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.boytotal);printf("n");printf("n");printf("*0:退出;1:返回目录。n");printf("*请选择:");scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)x

14、unhuan();else(printf("输入错误(只能是0或1),请重新输入:");(五)按女团体总分排序:voidfunct5()分析:根据各系女团体项目所获得的总分进行排序并按所获得的总分从大到小输出。流程图如图6所示。8/27开始图6:voidfunct5()流程图该模块的具体代码如下所示。voidfunct5()/(structdepartmentdepl;inti,j,q;按女团体总分排序for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.girltotal<depi+1.girltotal)(dep1=d

15、epi;depi=depi+1;depi+1=dep1;printf("printf("*系别编号*tt按女团体总分排序*n");*总分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.girltotal);printf("n");printf("n");printf("*0:退出;1:返回目录。n");printf("*请选择:");scanf("%d"

16、;,&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("输入错误(只能是。或1),请重新输入:");9/27(6) 按系别编号查询某个项目情况:voidfunct6()分析:首先输入所要查询的系别编号以及项目编号,最后输出该系别在该项目中所获得的名次。流程图如图7所示。输入所要查询的系别编号输入所要查询的项目编号利用循环查找该系在该项目中获得的名次输入该系在该项目中所获得的名次voidfunct6()/按系别编号查询系别某个项目情况inti,n,m,q;printf("*按系别编

17、号查询系别某个项目情况图7:voidfunct6()流程图该模块的具体代码如下所示printf("*请输入所要查询的系别编号:");scanf("%d",&n);while(n!=1&&n!=2)if(n!=1&&n!=2)printf("输入错误,系别编号只能是0或1,请重新输入");)printf("*请输入所要查询的项目编号:");scanf("%d",&m);for(i=0;i<N;i+)if(n=depi.departmentnum

18、)10/27%dn",n,m);printf("系别编号:%d项目编号if(depi.matm.rank0=1)printf("第一名(获得)");if(depi.matm.rank1=1)printf("第二名(获得)");if(depi.matm.rank2=1)printf("第三名(获得)");elseprintf("本系该项目未进入前三名");printf("n");printf("n");printf("*0:退出;1:返回目录;2:

19、返回上一级。n");printf("*请选择:");scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("输入错误(只能是0或1),请重新输入:");(7) 按项目编号查询取得名次的系别:voidfunct7()分析:首先输入所要查询的项目编号,通过查找后,输出获得该项目前三名的系别。流程图如图8所示。11/27利用循环查找在该项目中所获得前三名的系别该模块的具体代码如下所示。voidfunct7()/按项目编号查询取得

20、名次的系别(inti,t,q;printf("*按项目编号查询取得名次的系别*n”);printf("*请输入所要查询的项目编号:");scanf("%d",&t);printf("项目编号:%dn",t);for(i=0;i<N;i+)(if(depi.matt-1.rank0=1)printf("获得第一名的系别编号是:%dn",depi.departmentnum);if(depi.matt-1.rank1=1)printf("获得第二名的系别编号是:%dn",de

21、pi.departmentnum);if(depi.matt-1.rank2=1)printf("获得第三名的系别编号是:%dn",depi.departmentnum);printf("n");printf("n");printf("*0:退出;1:返回目录;2:返回上一级。n");printf("*请选择:");scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();12/27else(prin

22、tf("输入错误(只能是0或1),请重新输入:");)(八)退出系统:voidfunct0()分析:当用户输入退出指令时,则输出结束语。流程图如图9所示图9:voidfunct0()流程图该模块的具体代码如下所示。voidfunct0()/退出系统printf("ntt*谢谢使用!*n");exit(0);)四、系统测试(一)测试voidhuanyingni()函数,voidinput()函数13/27图10:测试voidhuanyingni()函数,voidinput()函数(二)测试voidmulu()函数况情别项的出出善H询KM息查MM别匚存总总号

23、号一,系瑞后编各团0目一2£系男京a二一一Ni234Ln白70请选择输入a一"序号;图11:测试voidmulu()函数(三)测试voidfunct1()函数14/27择别选系少号统别*总分*X1(MM0:退出;1:退回目录,*请选挂一:图12:测试voidfunct1()函数(四)测试voidfunct2()函数图13:测试voidfunct2()函数(五)测试voidfunct3()函数图14:测试voidfunct3()函数a:退出孑i=返回目录-i青选j拳(六)测试voidfunct4()函数色一7)序号-4YrMMMM-MMMXMXI总分f*43MG25图15:测

24、试voidfunct4()函数15/27(七)测试voidfunct5()函数请选择C崛入值一?星号5寅M4ItX44亶宜团件1总飞分出*系别编号*总分*Z*0;退出1;返回目录中*请选择:图16:测试voidfunct5()函数(八)测试voidfunct6()函数图17:测试voidfunct6()函数(九)测试voidfunct7()函数二.X*7J另系-7得:0-取号人询编4编的112233日事暮g;号号号w号号.扁扁瑞扁扁系系系系一酸:名名名膏名一一驾覃编第第第第第弟-f*0:退出;is返回目录?图18:测试voidfunct7()函数(十)测试voidfunct0()函数请选择f辆

25、人3序号:0谢谢便用!X苒Pressarivkeytocontinue图19:测试voidfunct0()函数16/27五、总结学生运动会成绩管理系统完成了:1)可以输入各个项目的前三名的成绩;2)能统计各系别总分;3)可以按系别编号、系别总分、男女团体总分排序输出;4)可以按系别编号查询某系某个项目的情况;5)可以按项目编号查询取得前三名的系别。系统有以下不足:1、设计程序时为了使程序简单化,问题考虑的有些不全面;2、由于结构体使用不太熟,所以结构体不能初始化不知道,导致运动会管理系统设计耗费不必要的时间;3、在编写程序时,有的函数调用功能太片面化,使得一些功能都不能实现;4、在程序运行阶段

26、,没有突出具体运算方法等而是只是显示结果。通过本次课程设计,我掌握了程序设计的模块化思路,并真正理解了函数调用的可使用性,也了解了结构体的使用方法及范围;对C语言的看法有了一定的改观,也消除了惧怕心理,也学会了设计程序时应该使其功能一个一个的逐步实现并测试正确性,而不是无条理的胡写尤其是大程序更应该有清晰的条理;同时也理解了流程图的重要意义。17/27六、附件(代码)#include<stdio.h>#include<process.h># defineN3/系别个数# definebm5/男团体个数# definegm3/女团体个数voidxuanze();voidx

27、unhuan();structmatch/项目intmatchnum;intrank3;matbm+gm;structdepartment/系另1Jintdepartmentnum;structmatchmatbm+gm;inttotal;intboytotal;intgirltotal;depN;voidhuanyingni()/*开始界面,欢迎使用*/韩历英printf("nn工学系2012级计算机科学与技术(网络工程方向)班nnn");AaA*nn");printf(欢迎使用运动会分数统计系统nn");printf("t*AA人人AaaA

28、*nn");printf("t*Aaaaavoidinput()/输入成绩inti,j,k;for(i=0;i<N;i+)/初始化分数depi.total=0;depi.boytotal=0;depi.girltotal=0;for(k=0;k<bm+gm;k+)18/27depi.matk.rank0=0;depi.matk.rank1=0;depi.matk.rank2=0;depi.matk.matchnum=k+1;)printf("-输入成绩-n");printf("n");printf(|n");pr

29、intf("|1.系别编号为1-%d;项目编号为1-%d(1-%d为男子项目,%d-%d为女子项目).|n",N,bm+gm,bm,bm+1,bm+gm);printf("|2.成绩只能是0'或'1'('0'表示没获得该项目的该名次,|n|'1'表示获得了该项目的该名次.以Tab'键前进。)|n",N);printf(n");for(i=0;i<N;i+)printf("#请输入系别编号:");scanf("%d",&depi.

30、departmentnum);while(depi.departmentnum<0|depi.departmentnum>N)if(depi.departmentnum<0|depi.departmentnum>N)printf("输入错误(只能是1-%d)请重新输入:",N);)printf("项目编号");for(k=0;k<bm+gm;k+)printf("%d",depi.matk.matchnum);printf("n");for(j=0;j<3;j+)printf(&

31、quot;第()名二j+1);for(k=0;k<bm+gm;k+)scanf("%d",&depi.matk.rankj);for(k=0;k<bm+gm;k+)dowhile(depi.matk.rankj!=0&&depi.matk.rankj!=1)if(depi.matk.rankj!=0&&depi.matk.rankj!=1)19/27=2);printf("输入错误,请重新输入,成绩只能是'0'或1'n");)while(depi.matk.rankj!=0&am

32、p;&depi.matk.rankj!=1&&depi.matk.rankj!)voidtotaljisuan()inti,k,b;for(i=0;i<N;i+)for(k=0,b=0;k<bm+gm;k+)b=depi.matk.rank0*5+depi.matk.rank1*3+depi.matk.rank2*2;depi.total=depi.total+b;if(k<bm)depi.boytotal=depi.boytotal+b;if(k>=bm)depi.girltotal=depi.girltotal+b;voidmulu()pri

33、ntf("nn*系统目录*n");/目录printf("tt*n");printf("tt*1.统计各系别总分*tn");printf("tt*2.按系别编号排序输出*tn");printf("tt*3.按系别总分排序输出*tn");printf("tt*4.按男团体总分排序输出*tn");printf("tt*5.按女团体总分排序输出*tn");printf("tt*6.按系别编号查询系别某个项目情况*tn");printf(&quo

34、t;tt*7.按项目编号查询取得名次的系别*tn");printf("tt*0.退出*tn");printf("tt*n");voidfunct0()/退出系统20/27谢谢使用!*printf("ntt*exit(0);)voidfunct1()/统计各系别总分inti,q;printf(*统计各系别总分*n");printf("*系别编号*tttt*总分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,dep

35、i.total);printf("n");printf("n");printf("*0:退出;1:返回目录。n");printf("*请选择:");scanf("%d",&q);while(q=0|q=1)if(q=0)funct0();if(q=1)xunhuan();else");printf("输入错误(只能是0或1),请重新输入:)voidfunct2()/按系别编号排序structdepartmentsch1;inti,j,q;for(j=0;j<N-

36、1;j+)for(i=0;i<N-j-1;i+)if(depi.departmentnum>depi+1.departmentnum)sch1=depi;depi=depi+1;depi+1=sch1;)printf("*按系别编号排序*n");printf("*系别编号*tttt*总分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.total);printf("n");printf("n");pr

37、intf("*0:退出;1:返回目录。n");printf("*请选择:");21/27scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("输入错误(只能是0或1),请重新输入:");voidfunct3()/按系别总分排序(structdepartmentsch1;inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.total<depi

38、+1.total)(sch1=depi;depi=depi+1;depi+1=sch1;printf(*按系别总分排序*n");printf("*系别编号*tttt*总分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.total);printf("n");printf("n");printf("*0:退出;1:返回目录。n");printf("*请选择:");scanf("

39、;%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("输入错误(只能是0或1),请重新输入:");voidfunct4()/按男团体总分排序(structdepartmentsch1;22/27inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.boytotal<depi+1.boytotal)(sch1=depi;depi=depi+1;depi+1=sch1;printf(*printf(&quo

40、t;*for(i=0;i<N;i+)按男团体总分排序*n");系别编号*tt*总分*n");printf("t%dtttt%dn",depi.departmentnum,depi.boytotal);printf("n");printf("n");printf("*0:退出;1:返回目录。n");printf("*请选择:");scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhu

41、an();else(printf("输入错误(只能是0或1),请重新输入:voidfunct5()/按女团体总分排序(structdepartmentsch1;");inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.girltotal<depi+1.girltotal)sch1=depi;depi=depi+1;printf("depi+1=sch1;*按女团体总分排序*n");printf("*系别编号*tt*总分*n");for(i=0;i<N;i+)

42、printf("t%dtttt%dn",depi.departmentnum,depi.girltotal);printf("n");printf("n");23/27本系该项目未进入前三名1,请重新输入");");项目编号:dn",n,m)");");");");printf("*0:退出;1:返回目录。n");printf("*请选择:");scanf("%d",&q);while(q=0|q=

43、1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("输入错误(只能是0或1),请重新输入:");voidfunct6()/按系别编号查询系别某个项目情况(inti,n,m,q;printf("*按系别编号查询系别某个项目情况*n");printf("*请输入所要查询的系别编号:");scanf("%d",&n);while(n!=1&&n!=2)(if(n!=1&&n!=2)(printf("输入错误,系别编号只能是printf("*请输入所要查询的项目编号scanf("%d",&m);for(i=0;i<N;i+)if(n=depi.departmentnum)(printf("系别编号:%dif(depi.matm.rank0=1)printf("第一名(获得)if(depi.matm.rank1=1)printf(&

温馨提示

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

评论

0/150

提交评论