运动会分数统计程序实验报告.docx
《运动会分数统计程序实验报告.docx》由会员分享,可在线阅读,更多相关《运动会分数统计程序实验报告.docx(25页珍藏版)》请在冰点文库上搜索。
运动会分数统计程序实验报告
1设计目的
1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
2设计内容
参加运动会有n个学校,学校名对应的编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:
7、5、3、2、1,前三名的积分分别为:
5、3、2;哪些取前五名或前三名自己设定(数据可以存储在一个数据文件中,数据结构、具体数据自定)。
具体功能有:
1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分;3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
5)数据存入文件并能随时查询。
3设计要求
(1)符合课题要求,实现相应功能;
(2)要求界面友好美观,操作方便易行;
(3)注意程序的实用性、安全性;
4.本设计所采用的数据结构
数组:
是一组具有相同数据类型的数据的有序集合。
5.功能模块详细设计
5.1详细设计思想
建立一个文件夹,在文件夹中利用数组指针将需要的数据输入文件夹中,按照需求将数据归类、排序。
对用户的错误输入进行提示与纠正。
根据用户选择的类型将数据输出从而实现程序的实用性。
5.2核心代码
#include
inta,b,c,d,i,j,z;
structnode
{
intnum;
};
structnode*f[22];
voidexit0()//建立文件存储数据和退出程序运行
FILE*fp;
intk;
alp:
if((fp=fopen("sore.txt","w"))==NULL)
printf("创建文件失败\n");
printf("1*****重试\n");
printf("2*****强制退出(数据将不会保存到文件)\n");
printf("3*****回到主菜单\n");
alj:
scanf("%d",&k);
if(k==1)
gotoalp;
elseif(k==2)
exit(0);
elseif(k==3)
return;
else
printf("输入错误,请重新输入:
");
gotoalj;
}
fprintf(fp,"\n\n");
fprintf(fp,"运动会分数统计表\n\n\n");
fprintf(fp,"项目代号");
for(i=1;i<=c+d;i++)
fprintf(fp,"%5d",i);
fprintf(fp,"");
fprintf(fp,"\n学校代号\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,"注:
本次运动会有%d个学校参赛\n\n",a);
fprintf(fp,"其中1~~~%d组是男子组,%d~~~%d组是女子组\n",c,c+1,c+d);
printf("\n比赛成绩已保存到当前路径下的“sore.txt”文件中\n\n");
fclose(fp);
exit
(1);
intchoose()//选择菜单
intchoo;
printf("\n\n1******输入成绩\n");
printf("2******统计各学校的总分\n");
printf("3******按学校编号排序输出\n");
printf("4******按学校总分排序输出\n");
printf("5******按男团体总分排序输出\n");
printf("6******按女团体总分排序输出\n");
printf("7******按学校编号查询学校某个项目的成绩\n");
printf("8******按项目编号查询取得前三或前五名的学校\n");
printf("9******退出\n\n");
printf("请选择:
scanf("%d",&choo);
return(choo-1);
voidinput()//输入成绩
intab,ac,ae,af,g=1,get[5]={0,0,0,0,0};
printf("\n请输入项目代号:
ale:
scanf("%d",&ab);
if(ab>c+d||ab<1)//ab表示输入的项目代号,输入的项目代号应大于1且小于男女项目数之和
printf("\n此项目代号不存在,重新输入\n");
gotoale;
ae=0;//ae=0表示成绩以前没有被录入过
for(i=0;i<=a;i++)
if(f[i][ab].num!
=0)
ae=1;//ae=1表示成绩以前被录入过
break;
}//endif()
}//endfor()
if(ae==1)
al2:
printf("\n此项目成绩曾经已被录入过,是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入):
\n");
printf("1++++重新录入(若重新录入,以前的该项目成绩将被删除)\n");
printf("2++++不要,待查证后再录入\n\n");
scanf("%d",&af);
if(af==2)//不重新输入成绩
printf("您已取消录入!
!
elseif(af==1)//重新录入成绩
f[i][0].num=f[i][0].num-f[i][ab].num;
if(ab<=c)//ab<=c表示此时是男生的项目
f[i][c+d+1].num=f[i][c+d+1].num-f[i][ab].num;
f[i][c+d+2].num=f[i][c+d+2].num-f[i][ab].num;
f[i][ab].num=0;
}//endelseif()
gotoal2;//返回到al2重新选择
al:
printf("\n此项目是以前几名为胜出者:
\n\n");//选择取前几名为胜出者
printf("3-------前三名\n");
printf("5-------以前五名\n\n");
scanf("%d",&ac);
if(ac==3)
printf("\n请依次输入获胜学校代号:
af=5;
for(i=0;i<3;i++)
alq:
scanf("%d",&ae);//ae表示学校的代号
if(ae>a||ae<1)//学校的代号不可以大于a和小于1
printf("%d学校代号不存在,重新输入第%d名的学校代号\n",ae,g);
gotoalq;
for(b=0;b<5;b++)
if(ae==get[b])//再次输入时,不能输入相同的学校代号
printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号!
\n",g);
get[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;
f[ae][c+d+2].num=f[ae][c+d+2].num+af;
if(af>3)
af=af-2;
af--;
g++;
elseif(ac==5)
printf("请依次输入获胜学校代号:
af=7;
for(i=0;i<5;i++)
alw:
scanf("%d",&ae);
if(ae>a||ae<1)
gotoalw;
if(ae==get[b])
printf("你的输入错误,请输入“3”或“5”");
gotoal;
printf("\n\n输入完成!
!
}//endvoidinput()
voideach()//按团体总成绩排序输出
printf("\n对应的格式为:
\n学校代号:
团体总成绩\n\n");
printf("%2d:
%3d\n",i,f[i][0].num);
//if(i%3==0)
//printf("\n");
}//endvoideach()
voidbiaohao()//按学校编号排序输出
printf("\n项目代号");
if(i>9)
printf("%4d",i);
printf("%5d",i);
printf("\n");
printf("学校代号\n");
printf("%d",i);
if(f[i][b].num>9)
printf("%4d",f[i][b].num);
printf("%5d",f[i][b].num);
}//endvoidbiaohao()
voidzongfen()//按学校总分排序
structnod
intke;
intha;
structnod*de;
de=(structnod*)malloc(sizeof(structnod)*a+1);
printf("\n按学校编号排序输出\n\n");
printf("\n名次学校号总分\n\n");
de[i].ke=i;
de[i].num=f[i][0].num;
for(b=i;b{if(de[b].num>de[i].num){ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b].num;de[b].num=de[i].num;de[i].num=ha;}//endif()}//endfor()}//endfor()for(i=1;i<=a;i++){printf("%d",i);printf("%13d%8d\n",de[i].ke,de[i].num);}}//endvoidzongfen()voidnanzong()//按男子团体总分排序{structnod{intke;intnum;};intha;structnod*de;de=(structnod*)malloc(sizeof(structnod)*a+1);printf("\n按男子团体总分排序输出\n\n");printf("名次学校代号男子团体总分\n\n");for(i=1;i<=a;i++){de[i].ke=i;de[i].num=f[i][c+d+1].num;}for(i=1;i<=a;i++){for(b=i;b{if(de[b].num>de[i].num){ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b].num;de[b].num=de[i].num;de[i].num=ha;}}}for(i=1;i<=a;i++){printf("%d",i);printf("%13d%12d\n",de[i].ke,de[i].num);}}//endvoidnanzong()voidnvzong()//按女子团体总分排序{structnod{intke;intnum;};intha;structnod*de;de=(structnod*)malloc(sizeof(structnod)*a+1);printf("按女子团体总分排序输出\n\n");printf("名次学校代号女子团体总分\n\n");for(i=1;i<=a;i++){de[i].ke=i;de[i].num=f[i][c+d+2].num;}for(i=1;i<=a;i++){for(b=i;b{if(de[b].num>de[i].num){ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b].num;de[b].num=de[i].num;de[i].num=ha;}}}for(i=1;i<=a;i++){printf("%d",i);printf("%15d%13d\n",de[i].ke,de[i].num);}}//endvoidnvzong()voidxuexiao()//按学校编号查询学校某个项目的情况{intdr,dt;printf("\n请输入您要查询的学校代号:");aly:scanf("%d",&dr);if(dr>a||dr<1){printf("学校代号不存在,重新输入\n");gotoaly;}printf("请输入您要查询的项目代号:");alo:scanf("%d",&dt);if(dt>c+d||dt<1){printf("项目代号不存在,重新输入\n");gotoalo;}printf("\n\n%3d学校的%3d项目成绩为%3d\n",dr,dt,f[dr][dt].num);}//endvoidxuexiao()voidxiangmu()//按项目编号查询取得前三或前五名的学校排序{intge,sedy=0;printf("\n请输入您要查询的项目代号:");all:scanf("%d",&ge);cout<if(ge>c+d||ge<1){printf("没有此项目代号,重新输入\n");gotoall;}for(i=1;i<=a;i++){if(f[b][ge].num==2)sedy=1;}if(sedy==0)for(i=1;i<=a;i++){if(f[i][ge].num==7){printf("此项目取前5名获奖者\n");break;}}if(i==a+1)printf("此项目取前3名获奖者\n");printf("\n获胜名单由成绩高到低依次为:\n\n");for(i=7;i>0;i--){for(b=1;b<=a;b++){if(f[b][ge].num==i)printf("%5d",b);}}}//endvoidxiangmu()void(*g[])()={input,each,biaohao,zongfen,nanzong,nvzong,xuexiao,xiangmu,exit0};voidmain()//运动会分数统计主函数{intchoos;printf("\n\n***运动会分数统计***\n\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);//a表示参赛的学校数while(a<=0||a>20)//输入学校是数应该在1--20之间{if(a<=0){printf("\n参赛学校个数不能是负数或零\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);}//endif()if(a>20){printf("\n参赛学校个数不能大于20\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);}//endif()}//endwhile()printf("有几个男子组:");//男子组数目为cscanf("%d",&c);printf("有几个女子组:");//女子组数目为dscanf("%d",&d);for(i=0;i<=a;i++)//存储数据初始化{f[i]=(structnode*)malloc(sizeof(structnode)*(c+d+3));for(j=0;j<=c+d+2;j++)f[i][j].num=0;}choos=choose();while(1){while(choos<0||choos>8)choos=choose();(*g[choos])();cout<choos=choose();}}//endvoidmain() 1),输入参赛学校及参赛的男子女子组个数2)选择胜出方式输入成绩若要重新录入成绩重新输入项目编号3)统计各学校总分4)按学校编号排序输出5)按学校总分排序6)男团体总分排序输出7)按女团体总分排序输出8)按学校编号查询学校某个项目成绩9)按项目编号查询得前三名或前五名的学校10)退出6.课程设计心得及存在问题通过这次课程设计我掌握了如何利用数组对数据进行排序,如何在文件中进行数据的写入和输出。上机让我了解到如何调试程序,并对程序中的问题进行修改使程序更加完美。
if(de[b].num>de[i].num)
ha=de[b].ke;
de[b].ke=de[i].ke;
de[i].ke=ha;
ha=de[b].num;
de[b].num=de[i].num;
de[i].num=ha;
printf("%13d%8d\n",de[i].ke,de[i].num);
}//endvoidzongfen()
voidnanzong()//按男子团体总分排序
printf("\n按男子团体总分排序输出\n\n");
printf("名次学校代号男子团体总分\n\n");
de[i].num=f[i][c+d+1].num;
for(b=i;b{if(de[b].num>de[i].num){ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b].num;de[b].num=de[i].num;de[i].num=ha;}}}for(i=1;i<=a;i++){printf("%d",i);printf("%13d%12d\n",de[i].ke,de[i].num);}}//endvoidnanzong()voidnvzong()//按女子团体总分排序{structnod{intke;intnum;};intha;structnod*de;de=(structnod*)malloc(sizeof(structnod)*a+1);printf("按女子团体总分排序输出\n\n");printf("名次学校代号女子团体总分\n\n");for(i=1;i<=a;i++){de[i].ke=i;de[i].num=f[i][c+d+2].num;}for(i=1;i<=a;i++){for(b=i;b{if(de[b].num>de[i].num){ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b].num;de[b].num=de[i].num;de[i].num=ha;}}}for(i=1;i<=a;i++){printf("%d",i);printf("%15d%13d\n",de[i].ke,de[i].num);}}//endvoidnvzong()voidxuexiao()//按学校编号查询学校某个项目的情况{intdr,dt;printf("\n请输入您要查询的学校代号:");aly:scanf("%d",&dr);if(dr>a||dr<1){printf("学校代号不存在,重新输入\n");gotoaly;}printf("请输入您要查询的项目代号:");alo:scanf("%d",&dt);if(dt>c+d||dt<1){printf("项目代号不存在,重新输入\n");gotoalo;}printf("\n\n%3d学校的%3d项目成绩为%3d\n",dr,dt,f[dr][dt].num);}//endvoidxuexiao()voidxiangmu()//按项目编号查询取得前三或前五名的学校排序{intge,sedy=0;printf("\n请输入您要查询的项目代号:");all:scanf("%d",&ge);cout<if(ge>c+d||ge<1){printf("没有此项目代号,重新输入\n");gotoall;}for(i=1;i<=a;i++){if(f[b][ge].num==2)sedy=1;}if(sedy==0)for(i=1;i<=a;i++){if(f[i][ge].num==7){printf("此项目取前5名获奖者\n");break;}}if(i==a+1)printf("此项目取前3名获奖者\n");printf("\n获胜名单由成绩高到低依次为:\n\n");for(i=7;i>0;i--){for(b=1;b<=a;b++){if(f[b][ge].num==i)printf("%5d",b);}}}//endvoidxiangmu()void(*g[])()={input,each,biaohao,zongfen,nanzong,nvzong,xuexiao,xiangmu,exit0};voidmain()//运动会分数统计主函数{intchoos;printf("\n\n***运动会分数统计***\n\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);//a表示参赛的学校数while(a<=0||a>20)//输入学校是数应该在1--20之间{if(a<=0){printf("\n参赛学校个数不能是负数或零\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);}//endif()if(a>20){printf("\n参赛学校个数不能大于20\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);}//endif()}//endwhile()printf("有几个男子组:");//男子组数目为cscanf("%d",&c);printf("有几个女子组:");//女子组数目为dscanf("%d",&d);for(i=0;i<=a;i++)//存储数据初始化{f[i]=(structnode*)malloc(sizeof(structnode)*(c+d+3));for(j=0;j<=c+d+2;j++)f[i][j].num=0;}choos=choose();while(1){while(choos<0||choos>8)choos=choose();(*g[choos])();cout<choos=choose();}}//endvoidmain() 1),输入参赛学校及参赛的男子女子组个数2)选择胜出方式输入成绩若要重新录入成绩重新输入项目编号3)统计各学校总分4)按学校编号排序输出5)按学校总分排序6)男团体总分排序输出7)按女团体总分排序输出8)按学校编号查询学校某个项目成绩9)按项目编号查询得前三名或前五名的学校10)退出6.课程设计心得及存在问题通过这次课程设计我掌握了如何利用数组对数据进行排序,如何在文件中进行数据的写入和输出。上机让我了解到如何调试程序,并对程序中的问题进行修改使程序更加完美。
printf("%13d%12d\n",de[i].ke,de[i].num);
}//endvoidnanzong()
voidnvzong()//按女子团体总分排序
printf("按女子团体总分排序输出\n\n");
printf("名次学校代号女子团体总分\n\n");
de[i].num=f[i][c+d+2].num;
for(b=i;b{if(de[b].num>de[i].num){ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b].num;de[b].num=de[i].num;de[i].num=ha;}}}for(i=1;i<=a;i++){printf("%d",i);printf("%15d%13d\n",de[i].ke,de[i].num);}}//endvoidnvzong()voidxuexiao()//按学校编号查询学校某个项目的情况{intdr,dt;printf("\n请输入您要查询的学校代号:");aly:scanf("%d",&dr);if(dr>a||dr<1){printf("学校代号不存在,重新输入\n");gotoaly;}printf("请输入您要查询的项目代号:");alo:scanf("%d",&dt);if(dt>c+d||dt<1){printf("项目代号不存在,重新输入\n");gotoalo;}printf("\n\n%3d学校的%3d项目成绩为%3d\n",dr,dt,f[dr][dt].num);}//endvoidxuexiao()voidxiangmu()//按项目编号查询取得前三或前五名的学校排序{intge,sedy=0;printf("\n请输入您要查询的项目代号:");all:scanf("%d",&ge);cout<if(ge>c+d||ge<1){printf("没有此项目代号,重新输入\n");gotoall;}for(i=1;i<=a;i++){if(f[b][ge].num==2)sedy=1;}if(sedy==0)for(i=1;i<=a;i++){if(f[i][ge].num==7){printf("此项目取前5名获奖者\n");break;}}if(i==a+1)printf("此项目取前3名获奖者\n");printf("\n获胜名单由成绩高到低依次为:\n\n");for(i=7;i>0;i--){for(b=1;b<=a;b++){if(f[b][ge].num==i)printf("%5d",b);}}}//endvoidxiangmu()void(*g[])()={input,each,biaohao,zongfen,nanzong,nvzong,xuexiao,xiangmu,exit0};voidmain()//运动会分数统计主函数{intchoos;printf("\n\n***运动会分数统计***\n\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);//a表示参赛的学校数while(a<=0||a>20)//输入学校是数应该在1--20之间{if(a<=0){printf("\n参赛学校个数不能是负数或零\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);}//endif()if(a>20){printf("\n参赛学校个数不能大于20\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);}//endif()}//endwhile()printf("有几个男子组:");//男子组数目为cscanf("%d",&c);printf("有几个女子组:");//女子组数目为dscanf("%d",&d);for(i=0;i<=a;i++)//存储数据初始化{f[i]=(structnode*)malloc(sizeof(structnode)*(c+d+3));for(j=0;j<=c+d+2;j++)f[i][j].num=0;}choos=choose();while(1){while(choos<0||choos>8)choos=choose();(*g[choos])();cout<choos=choose();}}//endvoidmain() 1),输入参赛学校及参赛的男子女子组个数2)选择胜出方式输入成绩若要重新录入成绩重新输入项目编号3)统计各学校总分4)按学校编号排序输出5)按学校总分排序6)男团体总分排序输出7)按女团体总分排序输出8)按学校编号查询学校某个项目成绩9)按项目编号查询得前三名或前五名的学校10)退出6.课程设计心得及存在问题通过这次课程设计我掌握了如何利用数组对数据进行排序,如何在文件中进行数据的写入和输出。上机让我了解到如何调试程序,并对程序中的问题进行修改使程序更加完美。
printf("%15d%13d\n",de[i].ke,de[i].num);
}//endvoidnvzong()
voidxuexiao()//按学校编号查询学校某个项目的情况
intdr,dt;
printf("\n请输入您要查询的学校代号:
aly:
scanf("%d",&dr);
if(dr>a||dr<1)
printf("学校代号不存在,重新输入\n");
gotoaly;
printf("请输入您要查询的项目代号:
alo:
scanf("%d",&dt);
if(dt>c+d||dt<1)
printf("项目代号不存在,重新输入\n");
gotoalo;
printf("\n\n%3d学校的%3d项目成绩为%3d\n",dr,dt,f[dr][dt].num);
}//endvoidxuexiao()
voidxiangmu()//按项目编号查询取得前三或前五名的学校排序
intge,sedy=0;
printf("\n请输入您要查询的项目代号:
all:
scanf("%d",&ge);
cout<if(ge>c+d||ge<1){printf("没有此项目代号,重新输入\n");gotoall;}for(i=1;i<=a;i++){if(f[b][ge].num==2)sedy=1;}if(sedy==0)for(i=1;i<=a;i++){if(f[i][ge].num==7){printf("此项目取前5名获奖者\n");break;}}if(i==a+1)printf("此项目取前3名获奖者\n");printf("\n获胜名单由成绩高到低依次为:\n\n");for(i=7;i>0;i--){for(b=1;b<=a;b++){if(f[b][ge].num==i)printf("%5d",b);}}}//endvoidxiangmu()void(*g[])()={input,each,biaohao,zongfen,nanzong,nvzong,xuexiao,xiangmu,exit0};voidmain()//运动会分数统计主函数{intchoos;printf("\n\n***运动会分数统计***\n\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);//a表示参赛的学校数while(a<=0||a>20)//输入学校是数应该在1--20之间{if(a<=0){printf("\n参赛学校个数不能是负数或零\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);}//endif()if(a>20){printf("\n参赛学校个数不能大于20\n\n");printf("共有多少个学校参赛:");scanf("%d",&a);}//endif()}//endwhile()printf("有几个男子组:");//男子组数目为cscanf("%d",&c);printf("有几个女子组:");//女子组数目为dscanf("%d",&d);for(i=0;i<=a;i++)//存储数据初始化{f[i]=(structnode*)malloc(sizeof(structnode)*(c+d+3));for(j=0;j<=c+d+2;j++)f[i][j].num=0;}choos=choose();while(1){while(choos<0||choos>8)choos=choose();(*g[choos])();cout<choos=choose();}}//endvoidmain() 1),输入参赛学校及参赛的男子女子组个数2)选择胜出方式输入成绩若要重新录入成绩重新输入项目编号3)统计各学校总分4)按学校编号排序输出5)按学校总分排序6)男团体总分排序输出7)按女团体总分排序输出8)按学校编号查询学校某个项目成绩9)按项目编号查询得前三名或前五名的学校10)退出6.课程设计心得及存在问题通过这次课程设计我掌握了如何利用数组对数据进行排序,如何在文件中进行数据的写入和输出。上机让我了解到如何调试程序,并对程序中的问题进行修改使程序更加完美。
if(ge>c+d||ge<1)
printf("没有此项目代号,重新输入\n");
gotoall;
if(f[b][ge].num==2)
sedy=1;
if(sedy==0)
if(f[i][ge].num==7)
printf("此项目取前5名获奖者\n");
if(i==a+1)
printf("此项目取前3名获奖者\n");
printf("\n获胜名单由成绩高到低依次为:
\n\n");
for(i=7;i>0;i--)
for(b=1;b<=a;b++)
if(f[b][ge].num==i)
printf("%5d",b);
}//endvoidxiangmu()
void(*g[])()={input,each,biaohao,zongfen,nanzong,nvzong,xuexiao,xiangmu,exit0};
voidmain()//运动会分数统计主函数
intchoos;
printf("\n\n***运动会分数统计***\n\n\n");
printf("共有多少个学校参赛:
scanf("%d",&a);//a表示参赛的学校数
while(a<=0||a>20)//输入学校是数应该在1--20之间
if(a<=0)
printf("\n参赛学校个数不能是负数或零\n\n");
scanf("%d",&a);
if(a>20)
printf("\n参赛学校个数不能大于20\n\n");
}//endwhile()
printf("有几个男子组:
");//男子组数目为c
scanf("%d",&c);
printf("有几个女子组:
");//女子组数目为d
scanf("%d",&d);
for(i=0;i<=a;i++)//存储数据初始化
f[i]=(structnode*)malloc(sizeof(structnode)*(c+d+3));
for(j=0;j<=c+d+2;j++)
f[i][j].num=0;
choos=choose();
while
(1)
while(choos<0||choos>8)
(*g[choos])();
cout<choos=choose();}}//endvoidmain() 1),输入参赛学校及参赛的男子女子组个数2)选择胜出方式输入成绩若要重新录入成绩重新输入项目编号3)统计各学校总分4)按学校编号排序输出5)按学校总分排序6)男团体总分排序输出7)按女团体总分排序输出8)按学校编号查询学校某个项目成绩9)按项目编号查询得前三名或前五名的学校10)退出6.课程设计心得及存在问题通过这次课程设计我掌握了如何利用数组对数据进行排序,如何在文件中进行数据的写入和输出。上机让我了解到如何调试程序,并对程序中的问题进行修改使程序更加完美。
}//endvoidmain()
1),输入参赛学校及参赛的男子女子组个数
2)选择胜出方式输入成绩
若要重新录入成绩重新输入项目编号
3)统计各学校总分
4)按学校编号排序输出
5)按学校总分排序
6)男团体总分排序输出
7)按女团体总分排序输出
8)按学校编号查询学校某个项目成绩
9)按项目编号查询得前三名或前五名的学校
10)退出
6.课程设计心得及存在问题
通过这次课程设计我掌握了如何利用数组对数据进行排序,如何在文件中进行数据的写入和输出。
上机让我了解到如何调试程序,并对程序中的问题进行修改使程序更加完美。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2