#include #include #include #include #define MAX 100 #define MAX_1 100 typedef struct singer{ int num; // 序号 char name[10]; // 姓名 char xb[10]; // 性别 float aver; // 平均分 int score[MAX_1]; // 原始成绩 }SING; void inarray(SING sing[MAX], int *pnum){ // 输入歌手信息:序号、姓名、性别 int n=0; printf("输入歌手人数:"); scanf("%d", &n); printf("请输入%d个歌手的信息:\n",n); printf("序号\t姓名\t性别\n"); for(int i=0;idata[j+1]){ // 交换元素 temp=data[j]; data[j]=data[j+1]; data[j+1]=temp; } } } // 计算平均分 temp=0; for(int j=1;jsing[j+1].num){ // 交换 temp=sing[j]; sing[j]=sing[j+1]; sing[j+1]=temp; } } else{ if(sing[j].numsing[j+1].aver){ // 交换 temp=sing[j]; sing[j]=sing[j+1]; sing[j+1]=temp; } } } } void sort(SING sing[MAX], int num, int num_){ int x,n; printf("请选择排序方式\n"); printf("\t1.按序号排序\n"); printf("\t2.按成绩排序\n"); printf("\t0.退出\n"); scanf("%d",&x); printf("请选择升/降序方式\n"); printf("\t1.升序\n"); printf("\t2.降序\n"); printf("\t0.退出\n"); scanf("%d",&n); switch(x){ case 1: sort_xuhao(sing, num, n); break; case 2: sort_aver(sing, num, n); break; default: return; } printf("\n排序后排名如下:\n"); outarrry(sing,num,num_); } int main(){ SING sing[MAX]; // num 为歌手数,num_ 为评委数 int num=0,num_=0; int choice; while(1){ // 1.菜单 system("color fc"); // 额外 printf(" o8o . oooo \n"); printf(" `'' .o8 `888 \n"); printf(" .oooo.o oooo ooo. .oo. .oooooooo .ooooo. oooo d8b .o888oo .ooooo. .ooooo. 888 \n"); printf("d88( '8 `888 `888P'Y88b 888' `88b d88' `88b `888""8P 888 d88' `88b d88' `88b 888 \n"); printf("`'Y88b. 888 888 888 888 888 888ooo888 888 888 888 888 888 888 888 \n"); printf("o. )88b 888 888 888 `88bod8P' 888 .o 888 888 . 888 888 888 888 888 \n"); printf("8''888P' o888o o888o o888o `8oooooo. `Y8bod8P' d888b '888' `Y8bod8P' `Y8bod8P' o888o \n"); printf(" d' YD \n"); printf(" 'Y88888P' \n"); printf("\n"); printf("\t\t\t *************** 歌词比赛评分系统 ***************\n\n"); printf("\t\t\t\t1.输入歌手信息\t\t2.输出歌手信息\n"); // 已完成 printf("\t\t\t\t3.新增一个歌手\t\t4.查找歌手信息\n"); // 已完成 printf("\t\t\t\t5.修改歌手信息\t\t6.删除歌手信息\n"); // 已完成 printf("\t\t\t\t7.排序歌手\t\t8.评委评分\n"); // 已完成 printf("\t\t\t\t9.保存歌手信息\t\t10.加载歌手信息\n"); // 已完成 printf("\t\t\t\t\t\t0.退出\n"); // 已完成 printf("\n"); printf("请选择(0-10):"); // 2.输入 scanf("%d", &choice); // 3.退出 if(choice==0) break; // 4.调用子函数功能 switch (choice) { case 1: inarray(sing,&num); break; case 2: outarrry(sing,num,num_); break; case 3: insert(sing,&num); break; case 4: find(sing,num,num_); break; case 5: edit(sing,num); break; case 6: Delete(sing,&num); break; case 7: sort(sing,num,num_); break; case 8: mark(sing,num,&num_); break; case 9: save(sing,num,num_); break; case 10: load(sing,&num,&num_); break; default: printf("调用输入错误函数\n"); break; } // 5.清屏 printf("按任意键继续...\n"); getch(); system("cls"); } printf("感谢使用,再见!\n"); return 0; }