commit
0a9be3892f
@ -0,0 +1,133 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<string.h>
|
||||
#define M 10
|
||||
#define N 3
|
||||
int add = N-1;
|
||||
int sum[N]={0},Max[N],Min[N];
|
||||
float aver[N]={0};
|
||||
struct player
|
||||
{
|
||||
int num;//选手编号//
|
||||
char name[10];//选手姓名//
|
||||
int score[10];//十个评委的成绩//
|
||||
float aver[10];//平均成绩//
|
||||
};
|
||||
void inplayerinfo(struct player a[],int n) //结构体进行学生信息输入//
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<n;i++)
|
||||
scanf("%d %s",&a[i].num,&a[i].name);
|
||||
}
|
||||
void Inputscore(int score[],int n) //随机生成成绩//
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<n;i++)
|
||||
scanf("%d",&score[i]); //评委对每位选手进行评分//
|
||||
}
|
||||
void main()
|
||||
{
|
||||
int end=1,n,i,m,j;
|
||||
FILE *fp;
|
||||
fp=fopen("date.text","w+");
|
||||
struct player a[20];
|
||||
printf(" +----------欢迎使用歌唱比赛2.0系统--------+ \n");
|
||||
printf(" |**************1.输入选手数据*************| \n");
|
||||
printf(" |**************2.评委打分*****************| \n");
|
||||
printf(" |**************3.成绩排序*****************| \n");
|
||||
printf(" |**************4.数据查询*****************| \n");
|
||||
printf(" |**************5.追加学生数据*************| \n");
|
||||
printf(" |**************6.写入数据文件*************| \n");
|
||||
printf(" |**************7.退出系统*****************| \n");
|
||||
printf(" |---------------湖南工业大学--------------| \n");
|
||||
printf(" +*****************李超逸******************+ \n");
|
||||
while(end)
|
||||
{
|
||||
printf("你想要进行的操作:");
|
||||
scanf("%d",&n);
|
||||
switch(n)
|
||||
{
|
||||
case 1:
|
||||
printf("请输入选手的参赛号码 姓名:\n");
|
||||
inplayerinfo(a,N);
|
||||
break;
|
||||
case 2:
|
||||
for(i=0;i<N;i++)
|
||||
{
|
||||
printf("第%d位选手的成绩:",i+1);
|
||||
Inputscore(a[i].score,M);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for(i=0;i<N;i++)
|
||||
{
|
||||
Max[i]=a[i].score[0];
|
||||
Min[i]=a[i].score[0]; //定义输入的同学的最高最低分初始值//
|
||||
for(j=0;j<M;j++)
|
||||
{
|
||||
sum[i]+=a[i].score[j];
|
||||
if(Max[i]<a[i].score[j]) Max[i]=a[i].score[j];
|
||||
if(Min[i]>a[i].score[j]) Min[i]=a[i].score[j]; //找到每个同学得到评分的最高分和最低分//
|
||||
}
|
||||
a[i].aver[10]=(float)(sum[i]-Max[i]-Min[i])/(M-2); //求得去掉最高分和最低分后的平均分//
|
||||
}
|
||||
|
||||
for(i=0;i<N-1;i++)
|
||||
{
|
||||
for(j=0;j<N-i-1;j++)
|
||||
{
|
||||
if(a[j].aver[10]<a[j+1].aver[10])
|
||||
{
|
||||
int temp;
|
||||
temp=a[j].aver[10];
|
||||
a[j].aver[10]=a[j+1].aver[10];
|
||||
a[j+1].aver[10]=temp;
|
||||
char t[10];
|
||||
t[10]=*a[j].name;
|
||||
*a[j].name=*a[j+1].name;
|
||||
*a[j+1].name=t[10];
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
for(i=0;i<N;i++)
|
||||
printf("%s %5.2f\n",a[i].name,a[i].aver[10]);
|
||||
break;
|
||||
case 4:
|
||||
printf("你想查询选手的数据:");
|
||||
scanf("%d",&m);
|
||||
for(i=0;i<N;i++)
|
||||
if(a[i].num==m)
|
||||
{
|
||||
printf("%d号选手%s总分:%d,最高分%d,最低分%d,平均分%5.2f",a[i].num,a[i].name,sum[i],Max[i],Min[i],a[i].aver[10]);
|
||||
printf("\n");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
printf("请输入要追加的选手数据:\n");
|
||||
add += 1;
|
||||
scanf("%d %s",&a[add].num,&a[add].name);
|
||||
break;
|
||||
case 6:
|
||||
printf("将数据写入文件中:\n");
|
||||
for (i = 0 ; i < add+1 ; i++)
|
||||
{
|
||||
fprintf(fp,"%d ",a[i].num);
|
||||
fprintf(fp,"%s ",a[i].name);
|
||||
fprintf(fp,"%d\n",a[i].score);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
exit(0);
|
||||
break;
|
||||
default:end=0;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
Loading…
Reference in new issue