运动会
来源:互联网 发布:php string length 编辑:程序博客网 时间:2024/04/23 20:19
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<time.h>
#include<math.h>
#include<stdlib.h>
struct xiangmu
{
int bisai[5];
int chengji[5];
}xiangmus;
struct team
{
char name[30];
int num,zc; //队伍编号,是否注册
struct xiangmu xiangmus;
int jin,yin,tong;
int zongfen;
}teams[20];
void freadteam()
{
FILE *fp;
int i=0;
fp=fopen("team.txt","r");
if(fp==NULL)
{
printf("文件打开失败/n");
exit(0);
}
else
{
while(!feof(fp))
{
fscanf(fp,"%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d/n",teams[i].name,&teams[i].num,&teams[i].zc,&teams[i].xiangmus.bisai[0],&teams[i].xiangmus.bisai[1],&teams[i].xiangmus.bisai[2],&teams[i].xiangmus.bisai[3],&teams[i].xiangmus.bisai[4],&teams[i].xiangmus.chengji[0],&teams[i].xiangmus.chengji[1],&teams[i].xiangmus.chengji[2],&teams[i].xiangmus.chengji[3],&teams[i].xiangmus.chengji[4],&teams[i].jin,&teams[i].yin,&teams[i].tong,&teams[i].zongfen);
teams[i].xiangmus.chengji[0]=0;teams[i].xiangmus.chengji[1]=0;teams[i].xiangmus.chengji[2]=0;teams[i].xiangmus.chengji[3]=0;teams[i].xiangmus.chengji[4]=0;teams[i].jin=0;teams[i].yin=0;teams[i].tong=0;teams[i].zongfen=0;
i++;
}
}
fclose(fp);
}
void fwriteteams()
{
FILE *fp;
int i=0;
fp=fopen("team.txt","w");
if(fp==NULL)
{
printf("文件打开失败/n");
exit(0);
}
else
{
while(i<20)
{
fprintf(fp,"%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d/n",teams[i].name,teams[i].num,teams[i].zc,teams[i].xiangmus.bisai[0],teams[i].xiangmus.bisai[1],teams[i].xiangmus.bisai[2],teams[i].xiangmus.bisai[3],teams[i].xiangmus.bisai[4],teams[i].xiangmus.chengji[0],teams[i].xiangmus.chengji[1],teams[i].xiangmus.chengji[2],teams[i].xiangmus.chengji[3],teams[i].xiangmus.chengji[4],teams[i].jin,teams[i].yin,teams[i].tong,teams[i].zongfen);
i++;
}
}
fclose(fp);
}
void zhuce()
{
char name[30];
int same,i,d,count=0,tf=1;
system("cls");
for(d=0;d<20;d++)
{
if(teams[d].num!=0)
count=count+1;
}
while(tf)
{
printf("请输入要注册的队伍的名称: /n");
scanf("%s",name);
for(i=0;i<count;i++)
{
if(!strcmp(name,teams[i].name))
same=1;
else same=0;
}
if(same==1)
printf("该队伍已经注册!");
else
{
strcpy(teams[count].name,name);
teams[count].num=count+1;
teams[count].zc=1;
count=count+1;
}
printf("是否继续注册?(是:1/否:0)");
scanf("%d",&tf);
}
}
void grade()
{
int i,k,g,m,n,d,num,count=0,sign=0;
for(d=0;d<20;d++)
{
if(teams[d].num!=0)
count=count+1;//puts("ok");
}//printf("%d",count);
srand(time(NULL));
for(k=0;k<5;k++)
{//puts("ok");
if(teams[0].xiangmus.bisai[k]==1)
teams[0].xiangmus.chengji[k]=rand()%8+1;
else
teams[0].xiangmus.chengji[k]=0;
if(teams[0].xiangmus.chengji[k]==1)
teams[0].jin++;
if(teams[0].xiangmus.chengji[k]==2)
teams[0].yin++;
if(teams[0].xiangmus.chengji[k]==3)
teams[0].tong++;//puts("ok");
for(num=1;num<count;num++)
{
//sign=0;
m=num;//puts("ok");
// g=rand()%8+1;puts("ok");
while(sign!=num)
{sign=0;
g=rand()%8+1;
for(i=num;i>0;i--)
{//puts("ok");
if(teams[i-1].xiangmus.chengji[k]!=g)
sign=sign+1;
//else sign=sign+1;
}
/*if(sign==num)
break;*/
}
if(teams[m].xiangmus.bisai[k]==1)
teams[m].xiangmus.chengji[k]=g;
else
teams[m].xiangmus.chengji[k]=0;
if(teams[m].xiangmus.chengji[k]==1)
teams[m].jin++;
if(teams[m].xiangmus.chengji[k]==2)
teams[m].yin++;
if(teams[m].xiangmus.chengji[k]==3)
teams[m].tong++;
}
}
/*for(i=0;i<count;i++)
printf("%d ",teams[i].xiangmus.chengji[0]);*/
}
void baoming()
{
char name[30];
int i,j,m=1,d,count=5,sum=1;
system("cls");
for(d=0;d<20;d++)
{
if(teams[d].num!=0)
count=count+1;
}//puts("ok");
while(m)
{
printf("请输入报名的团队名称 /n");
scanf("%s",name);
for(i=0;i<count;i++)
{
if(!strcmp(name,teams[i].name))
{
sum=0;
printf("----------------------------/n");
printf(" 比赛项目如下 /n");
printf(" 1.跑步 /n");
printf(" 2.跳远 /n");
printf(" 3.跳高 /n");
printf(" 4.游泳 /n");
printf(" 5.接力 /n");
printf("----------------------------/n");
scanf("%d%d%d%d%d",&teams[i].xiangmus.bisai[0],&teams[i].xiangmus.bisai[1],&teams[i].xiangmus.bisai[2],&teams[i].xiangmus.bisai[3],&teams[i].xiangmus.bisai[4]);
}
}
if(sum) printf("该队伍还未注册/n");
printf("是否继续报名(是:1/否:0)");
scanf("%d",&m);
}
}
/*void grade()
{
int i,k,g,m=1,n,d,num,count=0,sum=0;
for(d=0;d<20;d++)
{
if(teams[d].num!=0)
count=count+1;
}//puts("ok");
srand(time(NULL));
for(k=0;k<5;k++)
{
if(teams[0].xiangmus.bisai[k]==1)
teams[0].xiangmus.chengji[k]=rand()%8+1;
else
teams[0].xiangmus.chengji[k]=0;
if(teams[0].xiangmus.chengji[k]==1)
teams[0].jin++;
if(teams[0].xiangmus.chengji[k]==2)
teams[0].yin++;
if(teams[0].xiangmus.chengji[k]==3)
teams[0].tong++;//puts("ok");
for(num=1;num<count;num++)
{
m=1;
while(m)
{
for(i=num;i>0;i--)
{
g=rand()%8+1;
if(teams[i-1].xiangmus.chengji[k]==g)
{//puts("ok");
m=1;
}
}
m=0;
/*if(sum==num)
n=1;//puts("ok");//puts("ok");
if(n)
m=0;*/
/* }
if(teams[num].xiangmus.bisai[k]==1)
teams[num].xiangmus.chengji[k]=g;
else
teams[num].xiangmus.chengji[k]=0;
if(teams[num].xiangmus.chengji[k]==1)
teams[num].jin++;
if(teams[num].xiangmus.chengji[k]==2)
teams[num].yin++;
if(teams[num].xiangmus.chengji[k]==3)
teams[num].tong++;
}
}
/*for(i=0;i<count;i++)
printf("%d ",teams[i].xiangmus.chengji[0]);*/
//}*/
void zchengji()
{
int i,j,d,count=0;
for(d=0;d<20;d++)
{
if(teams[d].num!=0)
count=count+1;
}
for(i=0;i<count;i++)
for(j=0;j<5;j++)
teams[i].zongfen=teams[i].zongfen+teams[i].xiangmus.chengji[j];
}
void danxiang()
{
int m,i,j,d,count=0;
struct team temp;
for(d=0;d<20;d++)
{
if(teams[d].num!=0)
count=count+1;
}
system("cls");
printf("----------------------------/n");
printf(" 1.跑步 /n");
printf(" 2.跳远 /n");
printf(" 3.跳高 /n");
printf(" 4.游泳 /n");
printf(" 5.接力 /n");
printf("----------------------------/n");
printf("请输入要查看的单项成绩:/n");
scanf("%d",&m);
switch(m)
{
case 1:
printf("-----------------------------------------------/n");
for(i=0;i<count;i++)
for(j=0;j<count-i;j++)
{
if(teams[j].xiangmus.chengji[m-1]<teams[j+1].xiangmus.chengji[m-1])
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
}
for(i=0;i<count;i++)
printf("%10s%d/n",teams[i].name,teams[i].xiangmus.chengji[m-1]);
break;
case 2:
printf("-----------------------------------------------/n");
for(i=0;i<count;i++)
for(j=0;j<count-i;j++)
{
if(teams[j].xiangmus.chengji[m-1]<teams[j+1].xiangmus.chengji[m-1])
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
}
for(i=0;i<count;i++)
printf("%10s%d/n",teams[i].name,teams[i].xiangmus.chengji[m-1]);
break;
case 3:
printf("-----------------------------------------------/n");
for(i=0;i<count;i++)
for(j=0;j<count-i;j++)
{
if(teams[j].xiangmus.chengji[m-1]<teams[j+1].xiangmus.chengji[m-1])
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
}
for(i=0;i<count;i++)
printf("%10s%d/n",teams[i].name,teams[i].xiangmus.chengji[m-1]);
break;
case 4:
printf("-----------------------------------------------/n");
for(i=0;i<count;i++)
for(j=0;j<count-i;j++)
{
if(teams[j].xiangmus.chengji[m-1]<teams[j+1].xiangmus.chengji[m-1])
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
}
for(i=0;i<count;i++)
printf("%10s%d/n",teams[i].name,teams[i].xiangmus.chengji[m-1]);
break;
case 5:
printf("-----------------------------------------------/n");
for(i=0;i<count;i++)
for(j=0;j<count-i;j++)
{
if(teams[j].xiangmus.chengji[m-1]<teams[j+1].xiangmus.chengji[m-1])
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
}
for(i=0;i<count;i++)
printf("%10s%d/n",teams[i].name,teams[i].xiangmus.chengji[m-1]);
break;
}
}
void jiangpai()
{
int i,j,d,count=0;
struct team temp;
for(d=0;d<20;d++)
{
if(teams[d].num!=0)
count=count+1;//printf("%d",count);
}
system("cls");
printf("-----------------------------------------------/n");
printf(" 队名 | 金牌 | 银牌 | 铜牌 |/n");
for(i=0;i<count;i++)
for(j=0;j<count-i;j++)
{
if(teams[j].jin<teams[j+1].jin)
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
/*if(teams[j].yin<teams[j+1].yin)
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
if(teams[j].jin<teams[j+1].jin)
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}*/
}
for(i=0;i<count;i++)
for(j=0;j<count-i;j++)
{
if(teams[j].yin<teams[j+1].yin && teams[j].jin==teams[j+1].jin)
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
}
for(i=0;i<count;i++)
for(j=0;j<count-i;j++)
{
if(teams[j].tong<teams[j+1].tong && teams[j].jin==teams[j+1].jin && teams[j].yin==teams[j+1].yin)
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
}
for(i=0;i<count;i++)
printf(" %10s | %d | %d | %d |/n",teams[i].name,teams[i].jin,teams[i].yin,teams[i].tong);
}
void tuanzong()
{
int i,j,d,count=0;
struct team temp;
zchengji();
for(d=0;d<20;d++)
{
if(teams[d].num!=0)
count=count+1;
}
system("cls");
printf("----------------------------------------/n");
for(i=0;i<count;i++)
for(j=0;j<count-i;j++)
if(teams[j].zongfen<teams[j+1].zongfen)
{
temp=teams[j];
teams[j]=teams[j+1];
teams[j+1]=temp;
}
for(i=0;i<count;i++)
printf(" %10s | %d /n",teams[i].name,teams[i].zongfen);
}
main()
{
int m,n;
freadteam();
while(1)
{
system("cls");
printf("请输入要查看的选项: /n");
printf("----------------------------------------/n");
printf(" 1.队伍注册 /n");
printf(" 2.项目报名 /n");
printf(" 3.退出程序 /n");
//printf(" 4.退出程序 /n");
/*printf(" 5.团队总分 /n");*/
printf(" 0.开始比赛 /n");
printf("----------------------------------------/n");
scanf("%d",&m);
switch(m)
{
case 1:zhuce();break;
case 2:baoming();break;
case 3:fwriteteams();exit(0);
/*case 4:jiangpai();break;
case 5:tuanzong();break;*/
case 0:fwriteteams();
}
//getch();
freadteam();
grade();
while(1)
{
system("cls");
printf("请输入要查看的选项:/n");
printf(" 1.单项成绩 /n");
printf(" 2.奖 牌 榜 /n");
printf(" 3.团队总分 /n");
printf(" 0.退出程序 /n");
scanf("%d",&n);
switch(n)
{
case 1:danxiang();break;
case 2:jiangpai();break;
case 3:tuanzong();break;
case 0:fwriteteams();exit(0);
}
getch();
}
}
}
- void grade()
- {
- int i,k,g,m,n,d,num,count=0,sign=0;
- for(d=0;d<20;d++)
- {
- if(teams[d].num!=0)
- count=count+1;//puts("ok");
- }//printf("%d",count);
- srand(time(NULL));
- for(k=0;k<5;k++)
- {//puts("ok");
- if(teams[0].xiangmus.bisai[k]==1)
- teams[0].xiangmus.chengji[k]=rand()%8+1;
- else
- teams[0].xiangmus.chengji[k]=0;
- if(teams[0].xiangmus.chengji[k]==1)
- teams[0].jin++;
- if(teams[0].xiangmus.chengji[k]==2)
- teams[0].yin++;
- if(teams[0].xiangmus.chengji[k]==3)
- teams[0].tong++;//puts("ok");
- for(num=1;num<count;num++)
- {
- //sign=0;
- m=num;//puts("ok");
- // g=rand()%8+1;puts("ok");
- while(sign!=num)
- {sign=0;
- g=rand()%8+1;
- for(i=num;i>0;i--)
- {//puts("ok");
- if(teams[i-1].xiangmus.chengji[k]!=g)
- sign=sign+1;
- //else sign=sign+1;
- }
- /*if(sign==num)
- break;*/
- }
- if(teams[m].xiangmus.bisai[k]==1)
- teams[m].xiangmus.chengji[k]=g;
- else
- teams[m].xiangmus.chengji[k]=0;
- if(teams[m].xiangmus.chengji[k]==1)
- teams[m].jin++;
- if(teams[m].xiangmus.chengji[k]==2)
- teams[m].yin++;
- if(teams[m].xiangmus.chengji[k]==3)
- teams[m].tong++;
- }
- }
- /*for(i=0;i<count;i++)
- printf("%d ",teams[i].xiangmus.chengji[0]);*/
- }
这段让我弄了很久啊。。我的逻辑不行啊。。。。加强加强,还有一段就是奖牌榜那个,记住记住~~~