C语言 歌手比赛系统 对一次歌手比赛的成绩进行管理,功能要求: 1输入每个选手的数据包括编

C语言歌手比赛系统对一次歌手比赛的成绩进行管理,功能要求:1输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。2... C语言 歌手比赛系统

对一次歌手比赛的成绩进行管理,功能要求:

1输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。

2、显示主菜单如下:1)输入选手数据 2)评委打分 3)成绩排序(按平均分)4)数据查询 5)追加学生数据 6)写入数据文件7)退出系统。
展开
 我来答
夜独行孤单
2016-03-09 · TA获得超过3460个赞
知道大有可为答主
回答量:2803
采纳率:82%
帮助的人:627万
展开全部
#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");
break;
case '4':
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 '5':
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 '6':printf("请输入选手的个数");
printf("(为了准确显示,您输入的人数不应该超过已保存信息的人数)");
scanf("%d",&n);
if((fp=fopen("C:\\singer.dat","rb"))==NULL)
{printf("不能打开文件\n");
}
for(i=1;i<=n;i++)
{
fread(&player[i],sizeof(struct singer),1,fp);
printf("   %s的名次为%10d \n",player[i].name,player[i].mingci);
}
fclose(fp);
break;
case '7':exit(0);
}
}
return 0;
}
追问
那如何追加歌手呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式