commit
1b69c8b27b
@ -0,0 +1,137 @@
|
|||||||
|
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
struct singer
|
||||||
|
{
|
||||||
|
char id[10];
|
||||||
|
int rank;
|
||||||
|
char name[10];
|
||||||
|
int score[10];
|
||||||
|
float mark;
|
||||||
|
};
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
int i,b,j,s,n,t;
|
||||||
|
FILE *fp;
|
||||||
|
int sum,max,min;
|
||||||
|
struct singer a[5];
|
||||||
|
|
||||||
|
printf(" 歌手比赛系统 \n");
|
||||||
|
printf(" 菜单 \n");
|
||||||
|
printf("1:输入选手编号和姓名\n");
|
||||||
|
printf("2:评委打分\n");
|
||||||
|
printf("3:计算平均分\n");
|
||||||
|
printf("4:成绩排序\n");
|
||||||
|
printf("5:写入数据文件\n");
|
||||||
|
printf("6:查看文件数据\n");
|
||||||
|
printf("7:退出系统\n");
|
||||||
|
printf(" ");
|
||||||
|
for( ; ;)
|
||||||
|
{
|
||||||
|
printf("输入序号选择功能");
|
||||||
|
scanf("%d",&n);
|
||||||
|
switch(n)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
printf("输入选手编号和姓名\n");
|
||||||
|
for(i=0;i<5;i++)
|
||||||
|
{
|
||||||
|
printf("输入%d号选手的编号和名字:",i);
|
||||||
|
scanf("%s %s",a[i].id,a[i].name);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
printf("评委打分\n");
|
||||||
|
printf("最高分为100分\n");
|
||||||
|
for(i=0;i<5;i++)
|
||||||
|
{
|
||||||
|
printf("评委给%d号歌手打分:\n",i);
|
||||||
|
for(j=0;j<5;j++)
|
||||||
|
{
|
||||||
|
printf("%d号评委给歌手打分:",j);
|
||||||
|
scanf("%d",&a[i].score[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
for(i=0;i<5;i++)
|
||||||
|
{
|
||||||
|
max=a[i].score[0];
|
||||||
|
min=a[i].score[0];
|
||||||
|
sum=0;
|
||||||
|
for(j=0;j<5;j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
sum=sum+a[i].score[j];
|
||||||
|
|
||||||
|
if(a[i].score[j]>max)
|
||||||
|
{
|
||||||
|
max=a[i].score[j];
|
||||||
|
}
|
||||||
|
if(a[i].score[j]<min)
|
||||||
|
{
|
||||||
|
min=a[i].score[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("%d号歌手的平均分",i);
|
||||||
|
a[i].mark=(sum-min-max)/3.0;
|
||||||
|
printf("%f\n",a[i].mark);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
for(i=0;i<=n;i++)
|
||||||
|
{
|
||||||
|
s=0;
|
||||||
|
for(j=0;j<=n;j++)
|
||||||
|
{
|
||||||
|
if(a[i].mark<a[j].mark)
|
||||||
|
s++;
|
||||||
|
}
|
||||||
|
a[i].rank=s;
|
||||||
|
}
|
||||||
|
for(i=0;i<=n;i++)
|
||||||
|
{
|
||||||
|
for(j=0;j<=n;j++)
|
||||||
|
{
|
||||||
|
if(i==a[j].rank)
|
||||||
|
printf("%s是第%d 得分为%.2f\n",a[j].name,i,a[j].mark);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
if((fp=fopen("singer.txt","w"))==NULL)
|
||||||
|
{
|
||||||
|
printf("cann't open file");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for(i=0;i<5;i++)
|
||||||
|
{
|
||||||
|
fwrite(&a[i],sizeof(struct singer),1,fp);
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
printf("保存成功\n");
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
if((fp=fopen("singer.txt","rb"))==NULL)
|
||||||
|
{
|
||||||
|
printf("cann't open file");
|
||||||
|
}
|
||||||
|
for(i=0;i<5;i++)
|
||||||
|
{
|
||||||
|
fscanf(fp,"%s %s %f",a[i].id,a[i].name,&a[i].mark);
|
||||||
|
printf("%s %s %f\n",a[i].id,a[i].name,&a[i].mark);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in new issue