#include #include void menu(char*a) { printf("\t\t\t*********************************************\n"); printf("\t\t\t\t\t\n"); printf("\t\t\t\t\t\t欢\n"); printf("\t\t\t\t\t\t迎\n"); printf("\t\t\t\t\t\t使\n"); printf("\t\t\t\t\t\t用\n"); printf("\t\t\t\t\t\n"); printf("\t\t\t*********************************************\n"); printf("\n\n\n\n\n请输入回车键进入程序"); scanf("%c",a); } int main(void) { char a; menu(&a); if(a=='\n') {system("cls");//清屏换页 printf("\t\t\t\t\t歌手比赛管理系统\n"); printf("\t\t\t*********************************************\n"); printf("\t\t\t\t\t1.输入选手数据\n"); printf("\t\t\t\t\t2.评委打分\n"); printf("\t\t\t\t\t3.计算平均分和总分\n"); printf("\t\t\t\t\t4.歌手成绩排序\n"); printf("\t\t\t\t\t5.写入数据文件\n"); printf("\t\t\t\t\t6.查询数据\n"); printf("\t\t\t\t\t7.退出系统\n"); printf("\t\t\t*********************************************\n"); for(;;) { printf(" 请输入以上数字进行操作(1、2、3、4、5、6、7)\r"); int n,i=1,j,t; char a; FILE *fp; struct singer//歌手结构体 { int mingci; char name[100]; }player[100]; scanf("%c",&a); switch(a) { case '1': printf("请输入选手的个数(少于100)"); scanf("%d",&n); int sum[100],max[100],min[100]; float c[100]; for(i=1;i<=n;i++) { sum[i]=0; max[i]=0; min[i]=900000; } printf("请输入选手的姓名\n "); for(i=1;i<=n;i++) { scanf(" %s",&player[i].name); } break; case '2': struct assess//选手成绩 { int num1; int num2; int num3; int num4; int num5; }ass[100]; for(j=1;j<=n;j++)//每个评委对选手依次评分 { printf("\n请输入评委1对歌手%d的打分",j); scanf("%d",&ass[j].num1); printf("请输入评委2对歌手%d的打分",j); scanf("%d",&ass[j].num2); printf("请输入评委3对歌手%d的打分",j); scanf("%d",&ass[j].num3); printf("请输入评委4对歌手%d的打分",j); scanf("%d",&ass[j].num4); printf("请输入评委5对歌手%d的打分",j); scanf("%d",&ass[j].num5); sum[j]=ass[j].num1+ass[j].num2+ass[j].num3+ass[j].num4+ass[j].num5; } printf("\n\n\n"); break; case '3': for(j=1;j<=n;j++)//选出最大值 { if(max[j]<=ass[j].num1) max[j]=ass[j].num1; if(max[j]<=ass[j].num2) max[j]=ass[j].num2; if(max[j]<=ass[j].num3) max[j]=ass[j].num3; if(max[j]<=ass[j].num4) max[j]=ass[j].num4; if(max[j]<=ass[j].num5) max[j]=ass[j].num5; } for(j=1;j<=n;j++)//选出最小值 { if(min[j]>=ass[j].num1) min[j]=ass[j].num1; if(min[j]>=ass[j].num2) min[j]=ass[j].num2; if(min[j]>=ass[j].num3) min[j]=ass[j].num3; if(min[j]>=ass[j].num4) min[j]=ass[j].num4; if(min[j]>=ass[j].num5) min[j]=ass[j].num5; } for(j=1;j<=n;j++) { c[j]=(sum[j]-max[j]-min[j])/3.0; printf("第%d个选手的平均的分是%15.2f\n总分是%d\n",j,c[j],sum[j]); } printf("\n\n\n"); break; case '4'://进行排名 for(i=1;i<=n;i++) { for(j=1,t=1;j<=n;j++) { if(c[i]