#include<stdio.h>#include<process.h> #define N 2 //学校个数#define bm 3//男团体个数#define gm 4 //女团体个数void xuanze();void xunhuan();struct match //项目{ int matchnum; int rank[3];}mat[bm+gm];struct school //学校{ int schoolnum; struct match mat[bm+gm]; int total; int boytotal; int girltotal;}sch[N];void huanyingni() /开始界面,欢迎使用/{ printf("\n\n 大学 xxx \n\n\n\n\n");printf("\t^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^\n\n");printf(" 欢迎使用运动会分数统计系统\n\n"); printf("\t^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^\n\n ");}void input() //输入成绩{ int i,j,k; for(i=0;i<N;i++) //初始化分数 { sch[i].total=0; sch[i].boytotal=0; sch[i].girltotal=0; for(k=0;k<bm+gm;k++) { sch[i].mat[k].rank[0]=0; sch[i].mat[k].rank[1]=0; sch[i].mat[k].rank[2]=0; sch[i].mat[k].matchnum=k+1; } } printf(" *********输入成绩**********\n"); printf("###输入说明:\n"); printf(" 1.学校编号为1--%d; 项目编号为1--%d (1-%d为男子项目,%d-%d为女子项目).\n",N,bm+gm,bm,bm+1,bm+gm); printf(" 2. 成绩只能是'0'或'1'\n('0'表示没获得该项目的该名次,'1'表示获得了该项目的该名次.以'Tab'键前进。)\n",N); for(i=0;i<N;i++) { printf("******请输入学校编号: ");loop3:scanf("%d",&sch[i].schoolnum); if(sch[i].schoolnum<0||sch[i].schoolnum>N) { printf("输入错误(只能是1-%d)请重新输入:",N); goto loop3; } printf("项目编号 "); for(k=0;k<bm+gm;k++) printf("%d ",sch[i].mat[k].matchnum); printf("\n"); for(j=0;j<3;j++) { loop: printf("第(%d)名:",j+1); for(k=0;k<bm+gm;k++) scanf(" %d",&sch[i].mat[k].rank[j]); for(k=0;k<bm+gm;k++) if(sch[i].mat[k].rank[j]!=0&&sch[i].mat[k].rank[j]!=1) { printf("输入错误,请重新输入,成绩只能是'0'或'1'\n"); goto loop; } } } } void totaljisuan(){ int i,k,b; for(i=0;i<N;i++) for(k=0,b=0;k<bm+gm;k++) { b=sch[i].mat[k].rank[0]*5+sch[i].mat[k].rank[1]*3+sch[i].mat[k].rank[2]*2; sch[i].total=sch[i].total+b; if(k<bm) sch[i].boytotal=sch[i].boytotal+b; if(k>=bm) sch[i].girltotal=sch[i].girltotal+b; }}void mulu(){printf("\n\n 系统目录\n"); //目录printf("\t\t ***********************************\n"); printf("\t\t 1.统计各学校总分 \t \n");printf("\t\t 2.按学校编号排序输出 \t \n");printf("\t\t 3.按学校总分排序输出 \t \n");printf("\t\t 4.按男团体总分排序输出 \t \n");printf("\t\t 5.按女团体总分排序输出 \t \n");printf("\t\t 6.按学校编号查询学校某个项目情况 \t \n");printf("\t\t 7.按项目编号查询取得名次的学校 \t \n");printf("\t\t 0.退出 *\t \n");printf("\t\t *****************************\n");}void funct0() //退出系统{printf("\n\t\t 谢谢使用! \n");printf("\n\t\t 谢谢使用! ****\n");exit(0);} void funct1() //统计各学校总分{ int i,q; printf(" 统计各学校总分\n"); printf(" 学校编号\t\t\t\t**总分*\n"); for(i=0;i<N;i++) printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].total); printf("\n");printf("\n"); printf("########## 0:退出;1:返回目录。\n"); printf("****请选择: ");loop2:scanf("%d",&q); if(q==0) funct0(); if(q==1) xunhuan(); else { printf("输入错误(只能是0或1),请重新输入:"); goto loop2; }}void funct2() //按学校编号排序{ struct school sch1; int i,j,q; for(j=0;j<N-1;j++) for(i=0;i<N-j-1;i++) if(sch[i].schoolnum>sch[i+1].schoolnum) { sch1=sch[i]; sch[i]=sch[i+1]; sch[i+1]=sch1; } printf(" 按学校编号排序\n"); printf(" 学校编号\t\t\t\t总分**\n"); for(i=0;i<N;i++) printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].total); printf("\n");printf("\n"); printf("########## 0:退出;1:返回目录。\n"); printf("***请选择: ");loop2: scanf("%d",&q); if(q==0) funct0(); if(q==1) xunhuan(); else { printf("输入错误(只能是0或1),请重新输入:"); goto loop2; } }void funct3() //按学校总分排序{ struct school sch1; int i,j,q; for(j=0;j<N-1;j++) for(i=0;i<N-j-1;i++) if(sch[i].total<sch[i+1].total) { sch1=sch[i]; sch[i]=sch[i+1]; sch[i+1]=sch1; } printf(" 按学校总分排序\n"); printf(" 学校编号\t\t\t\t**总分*\n"); for(i=0;i<N;i++) printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].total); printf("\n");printf("\n"); printf("########## 0:退出;1:返回目录。\n"); printf("***请选择: ");loop2: scanf("%d",&q); if(q==0) funct0(); if(q==1) xunhuan(); else { printf("输入错误(只能是0或1),请重新输入:"); goto loop2; }}void funct4() //按男团体总分排序{ struct school sch1; int i,j,q; for(j=0;j<N-1;j++) for(i=0;i<N-j-1;i++) if(sch[i].boytotal<sch[i+1].boytotal) { sch1=sch[i]; sch[i]=sch[i+1]; sch[i+1]=sch1; } printf(" 按男团体总分排序\n"); printf(" 学校编号\t\t**总分*\n"); for(i=0;i<N;i++) printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].boytotal); printf("\n");printf("\n"); printf("########## 0:退出;1:返回目录。\n"); printf("***请选择: ");loop2: scanf("%d",&q); if(q==0) funct0(); if(q==1) xunhuan(); else { printf("输入错误(只能是0或1),请重新输入:"); goto loop2; }}void funct5() //按女团体总分排序{ struct school sch1; int i,j,q; for(j=0;j<N-1;j++) for(i=0;i<N-j-1;i++) if(sch[i].girltotal<sch[i+1].girltotal) { sch1=sch[i]; sch[i]=sch[i+1]; sch[i+1]=sch1; } printf(" 按女团体总分排序\n"); printf(" 学校编号\t\t**总分*\n"); for(i=0;i<N;i++) printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].girltotal); printf("\n");printf("\n"); printf("########## 0:退出;1:返回目录。\n"); printf("****请选择: ");loop2:scanf("%d",&q); if(q==0) funct0(); if(q==1) xunhuan(); else { printf("输入错误(只能是0或1),请重新输入:"); goto loop2; }}void funct6() //按学校编号查询学校某个项目情况{ int i,n,m,q; printf(" 按学校编号查询学校某个项目情况\n");loop1: printf("*******请输入所要查询的学校编号: "); scanf("%d",&n); if(n!=1&&n!=2) { printf("!!!!输入错误,学校编号只能是'0'或'1',请重新输入!!!!n"); goto loop1; } printf("*******请输入所要查询的项目编号: "); scanf("%d",&m); for(i=0;i<N;i++) if(n==sch[i].schoolnum) { printf("学校编号: %d 项目编号: %d\n",n,m); if(sch[i].mat[m].rank[0]==1) printf("第一名(获得) "); if(sch[i].mat[m].rank[1]==1) printf("第二名(获得) "); if(sch[i].mat[m].rank[2]==1) printf("第三名(获得) "); else printf("本校该项目未进入前三名"); } printf("\n");printf("\n"); printf("########## 0:退出;1:返回目录;2:返回上一级。\n"); printf("****请选择: ");loop2: scanf("%d",&q); if(q==1) xunhuan(); if(q==0) funct0(); if(q==2) goto loop1; else { printf("输入错误(只能是0或1或2),请重新输入:"); goto loop2; }}void funct7() //按项目编号查询取得名次的学校{ int i,t,q; printf(" 按项目编号查询取得名次的学校\n");loop1: printf("*****请输入所要查询的项目编号: ") ; scanf("%d",&t); printf("项目编号:%d\n",t) ; for(i=0;i<N;i++) { if(sch[i].mat[t-1].rank[0]==1) printf("获得第一名的学校编号是:%d \n",sch[i].schoolnum); if(sch[i].mat[t-1].rank[1]==1) printf("获得第二名的学校编号是:%d \n",sch[i].schoolnum); if(sch[i].mat[t-1].rank[2]==1) printf("获得第三名的学校编号是:%d \n",sch[i].schoolnum); } printf("\n");printf("\n"); printf("########## 0:退出;1:返回目录;2:返回上一级。\n"); printf("****请选择: ");loop2: scanf("%d",&q); if(q==1) xunhuan(); if(q==0) funct0(); if(q==2) goto loop1; else { printf("输入错误(只能是0或1或2),请重新输入:"); goto loop2; }}void xunhuan() //返回目录{ int t; mulu(); printf("\t\t请选择(输入0--7)序号:\t"); scanf("%d",&t); while(t!=0&&t!=1&&t!=2&&t!=3&&t!=4&&t!=5&&t!=6&&t!=7) { printf("输入有误,请重新选择:"); scanf("%d",&t); }switch(t){case 0:funct0();break;case 1:funct1();break;case 2:funct2();break;case 3:funct3();break;case 4:funct4();break;case
5:funct5();break;case 6:funct6();break;case 7:funct7();break; }}void main(){ system("Color 1e"); //改变背景,前景色 huanyingni(); input(); totaljisuan(); xunhuan(); }我想能够增加一个功能 可以增加修改删除分数 谢谢大家 有偿