first commit

master
m40283156 6 years ago
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…
Cancel
Save