《C语言运动会计分程序编写.docx》由会员分享,可在线阅读,更多相关《C语言运动会计分程序编写.docx(11页珍藏版)》请在第壹文秘上搜索。
1、任务:参加运动会有n个学校,学校编号为1n,比赛分成m个男子工程,和W个女子工程。工程编号为男子1m,女子m+1m+w。不同的工程取前五名或前三名枳分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2:哪些取前五名或前三名由学生自己设定.(m=20,n20)功能要求:1).可以输入各个工程的前三名或前五名的成绩;2).能统计各学校总分,3),可以按学校编号、学校总分、男女团体总分排序输出:4).可以按学校编号查询学校某个工程的情况:可以按工程编号查询取得前:或前五名的学校。规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动工程的名称)输出形式
2、:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生臼己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在C语言程序设计的书上,谙自学解决)请在圾后的上交资料中指明你用到的存储结构:测试数据:耍求使用1、全部合法数据;2、整体非法数据:3、局部非法数据.进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明:8inc1.udetiinc1.udeSinc1.udeSincIudeusingnamespacestd:intn1.m,w;structpro
3、表示工程的结构体(stringname;工程名称inisnum6;前5名学校的编号)p21:structSChOo1.表示学校的结构体(intnum;stringname;学校名称intscore;学校总分intInaIe:男子总分intfema1.e:女子总分*sch21:intintegra1.1.5=7,5,3,2,1;前五名得分intintegra1.23=5,3,2;/前三名得分voidinputO(inti,j,y,x:Drintf(输入学校数目:);y=0;scanf(*d*.4n):if(n=1.ftn=20)if(y)break:e1.sePrinifC输入数据有说,谛重新输
4、入:。;for(i1.ji-1.4w=1.)y-1.;if(y)break;e1.sePrin1.fe1输入数据有误,请盅新输入)for(i=1.zi=m*wj)(Primfr输入第M个工程的名称:n,i);scanf(*%s*,4pi.nae):Printf(输入第d个工程的前5名的学校编号八t.i):for(j=1J=1.=20)y=1.:if(y)break:e1.sePrintfe输入数据有误,请曳新输入:D:)pi.Snuinj=X:schx.SCOre=integra1.j-1:if(i=m)schx.ma1.e+=integra1.j-1.:e1.seschxj.fema1.e+
5、=integra1.j-1.;voidprint(inti)printf(*-%d%ds1.ddd%d,M*.schi.11ub,SetW(10).schi.name,SetW(8),schi.score,SetW(9),schi.ma1.e,setu(10),schi.fema1.e);voidbianhao()按编号排序(i11ti,j;schoo1.t:for(i=1.;in;i+)(for(j=idschj.num)t=schi:schi=schj;schj=t;)printf(n按编号排列:n);Printfe编号学校名称总分男子总分女子总分n):for(i=1.:i=n;i+)pr
6、int(i):)voidzongfen()/按学校总分排序(inti,j;schoo1.I:for(i=1.;in;iw)(for(j=i;jif(schi.scoreschj.score)(t=schischi=schj:schj=t;)printfn按学校总分排列:n);PriMfc1编号学校名称总分更子总分女子总分n):for(i=1.;i=n:i+0print(i):ofstreafont;fou1.OPCn(运动会分数统计.Ix1.);fout”编号学校名称总分男子总分女子总分“end1.;for(i=1.:i=n;i+)foutschij.tumsetr(13)schij.name
7、setw(8)schi.scoresetw(9)schi.三a1.csetu(10)schi.fna1.ccnd1.:fout.c1.oseO:voida1.ezf()按学校男总分排序i11ti,j;schoo1.t:for(i=kin:i+)for(j=ij=nj)if(schi.ma1.eschj.BaIe)(t=schi;schi=schj:schj=t;)printfn按学校男子总分排列:n);Printf编号学校名称总分男子总分女子总分n):for(i=1.;i=n:i+)print(i):)voidfea1.ezf()按学校女总分排序(i11ti,j:schoo1.t:for(i=
8、1.;in:i+)(for(j=i:j=n:j+)if(sch(i.fema1.eschj.fema1.e)t=schijschi=schjschj=t;)printfn按学校女子总分排列:n):Drintfc编号学校名称总分男子总分女子总分n):for(i=1.;iprint(i):printf(n*):)voidcxsch查闻学校信息(i11ti,y,s:Drintfr输入需要St询的学校编写:):y=0;whi1.e(1.)(scanf(*%d,s):if(s=1.Sis=n)y=1.;if(y)break:e1.sePrintfe输入数据有误,请曳新输入:D:)PrinIfe1该学校相
9、关信息:n);Printf(编号学校名称总分男子总分女子总分n):fori=kium-=s)(print(i):break;printf(*n*);voidCxxmO查询_E程信息(i11ti,y,s;Printf(输入需要查询的工程漏号:“):y=0:WhiIescanf(*%d,.4s):if(s=1.Ss=n)y=1.;if(y)break:e1.sePrin1.f(输入数据有误,请重新输入)printf(*s前5名学校编号及名称为n”,ps.name);Printfr名次编号学校名称n”);for(i=1.:i=5:i+1-)printf(*%d%ddsn.i.ps.snumi,set
10、w(12),schps.s11umi.name):printf(*n*):voidso1.ve0菜单函数(intz;WhiIe(printfn选择您需要的操作(选择序号):n);PrintfC1.按学校编号排序输出n):printf(,2,按学校总分排序输出t);printf3,按学校男总分排序给出n):Printf(-4.按学校女总分排序蝌出);printf5.杳询某个学校成绩n):printfC6.交询某个工程成绩n.);printf(7.结束nn):scanf(*%d,4z):if(Z=DbianhaoO:if(z=2)zofcn0:if(z-3)ma1.ezf0:if(z=4)fema
11、IezfO;if(z=5)cxschO:if(z=6)cxxm:if(z-7)break:so1.ve();return0;inc1.uJetJinc1.udeSinc1.udeITinc1.udeusingnamespacestd:i111.11;/n个学校i11tm:个男子工程i11tw;个女子工程structpro表示工程的结构体(stringnaae;/工程名称i11tsnu三6;/前5名学校的编号)p1.21:structsch1.表示学校的结构体(intnum;stringnae;学校名称intscore;学校总分intInaI*Z/男子总分intfema1.e;/女子总分)sch
12、21;intintegra1.5=(7,5,3,2,1):前五名得分voidinput0inti,j,y,x;Prirnfr输入学校数目:);y二0;WhiIescanf(*%d*,4n):if(n1.SAn-20)y1.:if(y)break;e1.sePrintfC输入数据有误,靖亘新输入for(i=1.i-1.4w=1.)y-1.;if(y)break;e1.sePrin1.fe1输入数据有误,请盅新输入)for(i=1.zi=m*wj)(Primfr输入第M个工程的名称:n,i);scanf(*%s*,4pi.nae):Printf(输入第d个工程的前5名的学校编号八t.i):for(j=1J=5J+)y=0;whi1.e(1.)(scanff%d