|
|
#include<stdio.h>
|
|
|
#include<stdlib.h>
|
|
|
int main()
|
|
|
{
|
|
|
|
|
|
printf("***************************歌手比赛管理系统************************************\n");
|
|
|
printf(" G**********************G \n");
|
|
|
printf("***********************************G*******************************************\n");
|
|
|
printf(" 1.输入选手数据 2. 评委打分 3.成绩排序 \n 4.数据查询");
|
|
|
printf(" 5.追加学生数据 6.写入数据文件\n 7.退出系统\n");
|
|
|
printf("*******************************************************************************\n");
|
|
|
for(;;)
|
|
|
{
|
|
|
printf(" 请输入操作名\r");
|
|
|
int n,i=1,j,t;
|
|
|
char a;
|
|
|
FILE *fp;
|
|
|
struct singer
|
|
|
{int mingci;
|
|
|
char name[20];
|
|
|
}player[100];
|
|
|
scanf("%c",&a);
|
|
|
switch(a)
|
|
|
{
|
|
|
case '1':
|
|
|
printf("请输入选手的个数(少于100)");
|
|
|
scanf("%d",&n);
|
|
|
int sum[100],max[100],min[100];
|
|
|
float c[100];
|
|
|
for(i=1;i<=n;i++)
|
|
|
{sum[i]=0;
|
|
|
max[i]=0;
|
|
|
min[i]=900000;
|
|
|
}
|
|
|
|
|
|
printf("请输入选手的姓名\n ");
|
|
|
for(i=1;i<=n;i++)
|
|
|
{
|
|
|
scanf(" %s",&player[i].name);
|
|
|
}
|
|
|
break;
|
|
|
case '2':
|
|
|
struct assess
|
|
|
{int num1;
|
|
|
int num2;
|
|
|
int num3;
|
|
|
int num4;
|
|
|
int num5;
|
|
|
int num6;
|
|
|
int num7;
|
|
|
int num8;
|
|
|
int num9;
|
|
|
int num10;
|
|
|
}ass[100];
|
|
|
for(j=1;j<=n;j++)
|
|
|
{printf("\n请输入评委1对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num1);
|
|
|
printf("请输入评委2对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num2);
|
|
|
printf("请输入评委3对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num3);
|
|
|
printf("请输入评委4对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num4);
|
|
|
printf("请输入评委5对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num5);
|
|
|
printf("请输入评委6对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num6);
|
|
|
printf("请输入评委7对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num7);
|
|
|
printf("请输入评委8对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num8);
|
|
|
printf("请输入评委9对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num9);
|
|
|
printf("请输入评委10对歌手%d的打分",j);
|
|
|
scanf("%d",&ass[j].num10);
|
|
|
sum[j]=sum[j]+ass[j].num1+ass[j].num2+ass[j].num3+ass[j].num4+ass[j].num5;
|
|
|
sum[j]=sum[j]+ass[j].num6+ass[j].num7+ass[j].num8+ass[j].num9+ass[j].num10;
|
|
|
}
|
|
|
printf("\n\n\n");
|
|
|
break;
|
|
|
case '3':
|
|
|
for(j=1;j<=n;j++)
|
|
|
{max[j]=(max[j]>ass[j].num1) ? max[j]:ass[j].num1;
|
|
|
max[j]=(max[j]>ass[j].num2) ? max[j]:ass[j].num2;
|
|
|
max[j]=(max[j]>ass[j].num3) ? max[j]:ass[j].num3;
|
|
|
max[j]=(max[j]>ass[j].num4) ? max[j]:ass[j].num4;
|
|
|
max[j]=(max[j]>ass[j].num5) ? max[j]:ass[j].num5;
|
|
|
max[j]=(max[j]>ass[j].num6) ? max[j]:ass[j].num6;
|
|
|
max[j]=(max[j]>ass[j].num7) ? max[j]:ass[j].num7;
|
|
|
max[j]=(max[j]>ass[j].num8) ? max[j]:ass[j].num8;
|
|
|
max[j]=(max[j]>ass[j].num9) ? max[j]:ass[j].num9;
|
|
|
max[j]=(max[j]>ass[j].num10) ? max[j]:ass[j].num10;
|
|
|
}
|
|
|
for(j=1;j<=n;j++)
|
|
|
{min[j]=(min[j]<ass[i].num1) ? min[j]:ass[i].num1;
|
|
|
min[j]=(min[j]<ass[i].num2) ? min[j]:ass[i].num2;
|
|
|
min[j]=(min[j]<ass[i].num3) ? min[j]:ass[i].num3;
|
|
|
min[j]=(min[j]<ass[i].num4) ? min[j]:ass[i].num4;
|
|
|
min[j]=(min[j]<ass[i].num5) ? min[j]:ass[i].num5;
|
|
|
min[j]=(min[j]<ass[i].num6) ? min[j]:ass[i].num6;
|
|
|
min[j]=(min[j]<ass[i].num7) ? min[j]:ass[i].num7;
|
|
|
min[j]=(min[j]<ass[i].num8) ? min[j]:ass[i].num8;
|
|
|
min[j]=(min[j]<ass[i].num9) ? min[j]:ass[i].num9;
|
|
|
min[j]=(min[j]<ass[i].num10) ? min[j]:ass[i].num10;
|
|
|
}
|
|
|
for(j=1;j<=n;j++)
|
|
|
{c[j]=(sum[j]-max[j]-min[j])/8.0;
|
|
|
printf("第%d个选手的平均的分是%15.2f\n",j,c[j]);
|
|
|
}
|
|
|
printf("\n\n\n");
|
|
|
for(i=1;i<=n;i++)
|
|
|
{for(j=1,t=1;j<=n;j++)
|
|
|
{if(c[i]<c[j])
|
|
|
t=t+1;
|
|
|
}
|
|
|
player[i].mingci=t;
|
|
|
}
|
|
|
for(i=1;i<=n;i++)
|
|
|
{
|
|
|
for(j=1;j<=n;j++)
|
|
|
{
|
|
|
if(i==player[j].mingci)
|
|
|
printf("%s是第%d 得分为%15.2f\n",player[j].name,i,c[j]);
|
|
|
}
|
|
|
printf("\n\n\n");
|
|
|
}
|
|
|
break;
|
|
|
case '6':
|
|
|
if((fp=fopen("C:\\singer.dat","wb"))==NULL)
|
|
|
{printf("不能打开文件\n");
|
|
|
}
|
|
|
for(i=1;i<=n;i++)
|
|
|
fwrite(&player[i],sizeof(struct singer),1,fp);
|
|
|
fclose(fp);
|
|
|
printf(" 保存成功\n\n\n");
|
|
|
break;
|
|
|
case '7':exit(0);
|
|
|
}
|
|
|
}
|
|
|
return 0;
|
|
|
}
|