#include <stdlib.h>
#include <time.h>
#include <string.h>
#define N 3
#define M 10
int add = N - 1
int sum[N] = {0},Max[N],Min[N]
float aver[N] = {0}
struct player {
int num
char name[12]
int score[M]
}
void Inistplayer(struct player a[],int n) {
int i
for(i = 0i <ni++) {
printf("(%d/%d)签号 姓名 : ",i + 1,n)
scanf("%d %s",&a[i].num,a[i].name)
}
}
void Inputscore(int score[],int n) {
int i
for(i = 0i <ni++)
score[i] = 1 + (int)10*rand()/(RAND_MAX + 1)
}
void sort(struct player a[],float b[],int n) {
int i,k,j,t
float temp
char str[12]
for(i = 0i <n - 1i++) {
k = i
for(j = i + 1j <nj++)
if(b[k] >b[j]) k = j
if(k != i) {
temp = b[i]
b[i] = b[k]
b[k] = temp
strcpy(str,a[i].name)
strcpy(a[i].name,a[k].name)
strcpy(a[k].name,str)
t = a[i].num
a[i].num = a[k].num
a[k].num = t
}
}
}
void main() {
int flag = 1,n,i,m,j
FILE *fp
fp = fopen("data.txt","w+")
struct player a[20]
printf("\t\t2、评委打分\n")
printf("\t\t3、成绩排序*\n")
printf("\t\t4、数据查询\n")
printf("\t\t5、追加学生数据\n")
printf("\t\t6、写入数据文件\n")
printf("\t\t7、退出系统\n")
while(flag) {
printf("你想进行的操作:")
scanf("%d",&n)
switch(n) {
case 1:Inistplayer(a,N)break
case 2:srand((unsigned)time(NULL))
for(i = 0i <Ni++) {
printf("%d位选手的成绩:",i + 1)
Inputscore(a[i].score,M)
for(j = 0j <Mj++) printf("%d ",a[i].score[j])
printf("\n")
}
break
case 3:for(i = 0i <Ni++) {
Max[i] = a[i].score[0]
Min[i] = a[i].score[0]
for(j = 0j <Mj++) {
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]
}
aver[i] = (float)(sum[i] - Max[i] - Min[i])/(M - 2)
}
sort(a,aver,N)
for(i = 0i <Ni++)
printf("%s %5.2f\n",a[i].name,aver[i])
break
case 4:printf("你想查询选手的数据:")
scanf("%d",&m)
for(i = 0i <Ni++) {
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],aver[i])
printf("\n")
}
}
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:flag = 0
}
}
}
1. 系统功能要求歌咏比赛管理系统是跟随比赛的进程,管理每一位歌手的基本信息和成绩统计,并给管理人员提供相应的管理功能,同时保存整个比赛过程所产生的所有数据信息。
根据设计任务书的要求,本系统至少要具备以下功能:
⑴、录入数据:输入每一位歌手的记录,并计算出最终成绩,将其信息写入文件中。
⑵、信息浏览:能显示每位歌手的记录。
⑶、名次统计:按名次进行排序,并写入文件中。
2. 系统数据要求
为了实现上述功能,本系统要有以下数据:
⑴、歌手的人数;
⑵、评委的人数;
⑶、每位歌手的个人基本信息。根据设计任务书的要求,歌手的个人信息应包括:歌手的编号、姓名、性别。
⑷、每位评委给歌手的评分数据;
⑸、系统应产生的数据有:
①、统计出评委给每位歌手打出的最高分、最低分;
②、求出每位歌手的最后得分;
③、通过排序,统计出歌手的名次。
提问者: jfw3209821999