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