成绩________2008——2009学年第二学期第一周上机实习报告学院:12专业:12班级:12姓名:12学号:12指导教师:1、运动会分数统计任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20)功能要求:1).可以输入各个项目的前三名或前五名的成绩;2).能统计各学校总分,3).可以按学校编号、学校总分、男女团体总分排序输出;4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;2、需求分析:需要能够一个能达到输入、查询、统计、输出运动会信息,以及自动进行名词排定等功能的运动会分数统计系统。需要输入时,应加一个新的结构体来直接进行输入工作。其中查询需要输出学校或项目的编号,成绩(可以自拟),排名等,需要的就是一个输出函数,和输出时用指针数组就可以解决。统计者可以先输入各项目中每个学校参赛者的成绩,用一个比较函数进行比较,按照项目排名、学校总成绩排名、男女团体排名输出,供使用者进行参考。3、概要设计在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。开始菜单输入共有多少个学校参赛输入有几个男子组参加输入有几个女子组参加主菜单123456789输入成绩统计各学校的总分按学校编号排序输出按学校总分排序输出按男团体总分排序输出按女团体总分排序输出按学校编号查询学校某个项目的成绩按项目编号查询取得前三或前五名的学校退出1.输入成绩输入成绩输入项目编码选择前5或前3依次输出获得名次的学校2.统计显示各学校总分继续y退出n3.按学校编号排序输出各学校得成绩继续y退出n4.按学校总分排序输出继续y退出n5.按男团体总分排序输出继续y退出n6.按女团体总分排序输出继续y退出n8.按项目编号查询取得前三或前五名的学校输入项目编号显示前3或前5的学校4、详细设计#includestdio.h#includestdlib.hinta,b,c,d,i,j;structnode{intnum;};structnode*f[22];voidexit0(){FILE*fp;intk;alp:if((fp=fopen(sore.txt,w))==NULL){printf(createrror\n);/*创建文件失败*/printf(1*****tryagain\n);/*重试*/printf(2*****tuichu\n);/*强制退出(数据将不会保存到文件)*/printf(3*****returnmenu\n);/*回到主菜单*/alj:scanf(%d,&k);if(k==1)gotoalp;elseif(k==2)exit(0);elseif(k==3)return;7.按学校编号查询学校某个项目的成绩输入学校编号输入项目编号显示成绩else{printf(putinerror,pleaseshuruagain:);/*输入错误,请重新输入*/gotoalj;}}fprintf(fp,\n\n);fprintf(fp,fenshutongjibiao\n\n\n);/*运动会分数统计表*/fprintf(fp,xiangmunumber);/*项目代号*/for(i=1;i=c+d;i++)fprintf(fp,%5d,i);fprintf(fp,);fprintf(fp,\nschoolnumber\n);/*学校代号*/for(i=1;i=a;i++){fprintf(fp,%10d,i);for(b=1;b=c+d;b++){fprintf(fp,%5d,f[i][b].num);}fprintf(fp,\n);}fprintf(fp,\n\n);fprintf(fp,the%dschoolnumbers\n\n,a);/*注:本次运动会有%d个学校参赛*/fprintf(fp,1~%dmansportzu,%d~%dwomansportzu\n,c,c+1,c+d);/*其中1~%d组是男子组,%d~%d组是女子组*/printf(\nchengjibaocunzai“sore.txt”wenjian\n\n);/*比赛成绩已保存到当前路径下的“sore.txt”文件中*/fclose(fp);exit(1);}intchoose(){intchoo;printf(\n\n1******shuruchengji\n);/*输入成绩*/printf(2******tongjixuexiaozhongfen\n);/*统计各学校的总分*/printf(3******anxuexiaobiaohaoshuchu\n);/*按学校编号排序输出*/printf(4******anxuexiaozhongfenshuchu\n);/*按学校总分排序输出*/printf(5******anmansportzushuchu\n);/*按男团体总分排序输出*/printf(6******anwomansportzushuchu\n);/*按女团体总分排序输出*/printf(7******anxuexiaobianhaochaxunxiangmuchengji\n);/*按学校编号查询学校某个项目的成绩*/printf(8******anxiangmubianhaochaxunqian3houqian5xuexiao\n);/*按项目编号查询取得前三或前五名的学校*/printf(9******exit\n\n);/*退出*/printf(pleaseenteryouchoise);/*请选择:*/scanf(%d,&choo);return(choo-1);}voidinput(){intab,ac,ae,af,g=1,get[5]={0,0,0,0,0};printf(\nshuruxiangmubianhao:);/*请输入项目代号:*/ale:scanf(%d,&ab);if(abc+d||ab1){printf(\nxiangmubucunzai,pleaseshuruagain\n);/*此项目代号不存在,重新输入*/gotoale;}ae=0;for(i=0;i=a;i++){if(f[i][ab].num!=0){ae=1;break;}}if(ae==1){al2:printf(\nchengjiyijingluru,chongxinluru:\n);/*此项目成绩曾经已被录入过,是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入)*/printf(1++++chongxinluru\n);/*重新录入(若重新录入,以前的该项目成绩将被删除)*/printf(2++++daichazhengzailuru\n\n);/*不要,待查证后再录入*/scanf(%d,&af);if(af==2){printf(niyiluru!!!!!\n);/*您已取消录入*/return;}elseif(af==1){for(i=1;i=a;i++){if(f[i][ab].num!=0){f[i][0].num=f[i][0].num-f[i][ab].num;if(ab=c)f[i][c+d+1].num=f[i][c+d+1].num-f[i][ab].num;elsef[i][c+d+2].num=f[i][c+d+2].num-f[i][ab].num;}f[i][ab].num=0;}}elsegotoal2;}al:printf(\nqianjimingwin:\n\n);/*此项目是以前几名为胜出者*/printf(3-------qian3\n);/*以前三名*/printf(5-------qian5\n\n);/*以前五名*/scanf(%d,&ac);if(ac==3){printf(\nwinschoolnumber:);/*请依次输入获胜学校代号*/af=5;for(i=0;i3;i++){alq:scanf(%d,&ae);if(aea||ae1){printf(%dxuexiaobucunzai,chongxinshuru%dmingxuexiaobianma\n,ae,g);/*%d学校代号不存在,重新输入第%d名的学校代号*/gotoalq;}for(b=0;b5;b++){if(ae==get[b]){printf(tongxuexiaocannotzaitongyixiangmuyoulianggemingci,chongxinshuru%dmingxuexiaobianma!!!\n,g);/*同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号*/gotoalq;}elseget[b]=ae;}f[ae][0].num=f[ae][0].num+af;f[ae][ab].num=af;if(ab=c)f[ae][c+d+1].num=f[ae][c+d+1].num+af;elsef[ae][c+d+2].num=f[ae][c+d+2].num+af;if(af3)af=af-2;elseaf--;g++;}}elseif(ac==5){printf(pleaseyicishuruwinschoolnumber:);/*请依次输入获胜学校代号*/af=7;for(i=0;i5;i++){alw:scanf(%d,&ae);if(aea||ae1){printf(%dschoolnumberbucunzai,chongxinshuru%dmingschoolnumber\n,ae,g);/*学校代号不存在,重新输入第%d名的学校代号*/gotoalw;}for(b=0;b5;b++){if(ae==get[b]){printf(tongxuexiaocannotzaitongyixiangmuyoulianggemingci,chongxinshuru%dmingxuexiaobianma!!!\n,g);/*同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号*/gotoalw;}elseget[b]=ae;}f[ae][0].num=f[ae][0].num+af;f[ae][ab].num=af;if(ab=c)f[ae][c+d+1].num=f[ae][c+d+1].num+af;elsef[ae][c+d+2].num=f[ae][c+d+2].num+af;if(af3)af=af-2;elseaf--;g++;}}elsegotoal;printf(\n\nshuruwancheng!!!!\n);/*输入完成*/}voideach(){printf(\nduiyinggeshi:\nschoolnumbers:tongtichengji\n\n);/*对应的格式为:学校代号:团体总成绩*/for(i=1;i=a;i++){printf(%2d:%3d,i,f[i][0].num);if(i%