C语言如何实现歌手比赛系统
短信预约 -IT技能 免费直播动态提醒
这篇文章主要讲解了“C语言如何实现歌手比赛系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言如何实现歌手比赛系统”吧!
一、项目简介
对一次歌手比赛的成绩进行管理
输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。
二、任务概述
要求歌手比赛系统实现对学生基本信息(如编号、姓名、性别等)及十个评委的成绩的管理(增加、删除、修改或更新、查询、统计、保存到文件、从文件装载等操作)。
三、功能展示
四、思维导图
五、程序源码
#include<stdio.h>#include<stdlib.h>struct singer { int num; char name[10]; float score[20]; float aver; float sum; int ord;}singer[100]; void singer_information(int b) { int i; for(i=1;i<=b;i++) { printf("请输入选手编号:"); scanf("%d",&singer[i].num); printf("请输入选手姓名:"); scanf("%s",&singer[i].name); } }int singer_score(int b) { int j,c; float a[50]; for(j=1;j<=b;j++) { printf("\n请输入评委1对歌手%d的打分",j); scanf("%f",&singer[j].score[1]); printf("请输入评委2对歌手%d的打分",j); scanf("%f",&singer[j].score[2]); printf("请输入评委3对歌手%d的打分",j); scanf("%f",&singer[j].score[3]); printf("请输入评委4对歌手%d的打分",j); scanf("%f",&singer[j].score[4]); printf("请输入评委5对歌手%d的打分",j); scanf("%f",&singer[j].score[5]); printf("请输入评委6对歌手%d的打分",j); scanf("%f",&singer[j].score[6]); printf("请输入评委7对歌手%d的打分",j); scanf("%f",&singer[j].score[7]); printf("请输入评委8对歌手%d的打分",j); scanf("%f",&singer[j].score[8]); printf("请输入评委9对歌手%d的打分",j); scanf("%f",&singer[j].score[9]); printf("请输入评委10对歌手%d的打分",j); scanf("%f",&singer[j].score[10]); a[j]=singer[j].score[1]+singer[j].score[2]+singer[j].score[3]+singer[j].score[4]+singer[j].score[5]+singer[j].score[6]+singer[j].score[7]+singer[j].score[8]+singer[j].score[9]+singer[j].score[10]; singer[j].sum=a[j]; } }int singer_grade(int b){ int a,c; float n[50],max,min; for(a=1;a<=b;a++) { max=singer[a].score[1]; min=singer[a].score[1]; for(c=1;c<=10;c++) { if(max<singer[a].score[c]) max=singer[a].score[c]; if(min>singer[a].score[c]) min=singer[a].score[c]; } n[a]=(singer[a].sum-max-min)/8.0; singer[a].aver=n[a]; } }int order(int b) { int j,t,i; for(i=1;i<=b;i++) { for(j=1,t=1;j<=b;j++) { if(singer[i].aver<singer[j].aver) { t=t+1; } } singer[i].ord=t; } for(i=1;i<=b;i++) { for(j=1;j<=b;j++) { if(i==singer[j].ord) printf("%s是第%d 得分为%15.2f\n",singer[j].name,i,singer[j].aver); } printf("\n\n\n"); } }int search(int c) { printf("所查选手的数据:编号%d 姓名%s 平均成绩%f 总成绩%f\n",singer[c].num,singer[c].name,singer[c].aver,singer[c].score[c]); } int addition(int i) { printf("请输入选手编号及姓名:"); scanf("%d,%s/n",&singer[i+1].num,&singer[i+1].name); printf("请输入评委1对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[1]); printf("请输入评委2对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[2]); printf("请输入评委3对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[3]); printf("请输入评委4对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[4]); printf("请输入评委5对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[5]); printf("请输入评委6对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[6]); printf("请输入评委7对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[7]); printf("请输入评委8对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[8]); printf("请输入评委9对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[9]); printf("请输入评委10对歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[10]); }main(){ int a,b,c,i,n=1; FILE *fp; fp = fopen("歌手.txt","wt+"); printf(" 歌手比赛系统 \n"); printf("*********************\n"); printf("* 1)输入选手数据 *\n"); printf("* 2)评委打分 *\n"); printf("* 3)成绩排序 *\n"); printf("* 4)数据查询 *\n"); printf("* 5)追加学生数据 *\n"); printf("* 6)写入数据文件 *\n"); printf("* 7)退出系统 *\n"); printf("*********************\n"); while(n) { printf("你想进行的操作: "); scanf("%d",&a); printf("\n\n"); switch(a) { case 1: printf("你想进行的操作:输入选手数据\n "); printf("请输入选手个数"); scanf("%d",&b); singer_information(b); printf("----------------------\n"); break; case 2: printf("你想进行的操作:评委打分\n "); singer_score(b); printf("-----------------------\n"); break; case 3: printf("你想进行的操作:成绩排序(按平均分)\n "); singer_grade(b); order(b); printf("-------------------------\n"); break; case 4: printf("你想进行的操作:数据查询\n "); printf("请输入要查询选手编号:"); scanf("%d",&c); printf("所查选手的数据:编号%d 姓名%s 平均成绩%f 总成绩%f\n",singer[c].num,singer[c].name,singer[c].aver,singer[c].sum); printf("--------------------------\n"); break; case 5: printf("你想进行的操作:追加学生数据\n "); addition(b); printf("---------------------------\n"); break; case 6: printf("你想进行的操作:写入数据文件\n "); printf("将数据写入文件中:\n"); for (i = 0 ; i <=b ; i++) { fprintf(fp,"%d ",singer[i].num); fprintf(fp,"%s ",singer[i].name); fprintf(fp,"%d\n",singer[i].aver); } break; case 7: exit(0); default :printf("输入错误请重新输入!\n"); } }}
感谢各位的阅读,以上就是“C语言如何实现歌手比赛系统”的内容了,经过本文的学习后,相信大家对C语言如何实现歌手比赛系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341