您好,登錄后才能下訂單哦!
這篇文章主要講解了“C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)”吧!
對(duì)一次歌手比賽的成績(jī)進(jìn)行管理
輸入每個(gè)選手的數(shù)據(jù)包括編號(hào)、姓名、十個(gè)評(píng)委的成績(jī),根據(jù)輸入計(jì)算出總成績(jī)和平均成績(jī)(去掉最高分,去掉最低分)。
要求歌手比賽系統(tǒng)實(shí)現(xiàn)對(duì)學(xué)生基本信息(如編號(hào)、姓名、性別等)及十個(gè)評(píng)委的成績(jī)的管理(增加、刪除、修改或更新、查詢、統(tǒng)計(jì)、保存到文件、從文件裝載等操作)。
#include<stdio.h> #include<stdlib.h> struct singer/*定義結(jié)構(gòu)體*/ { 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("請(qǐng)輸入選手編號(hào):"); scanf("%d",&singer[i].num); printf("請(qǐng)輸入選手姓名:"); scanf("%s",&singer[i].name); } } int singer_score(int b) { int j,c; float a[50]; for(j=1;j<=b;j++) { printf("\n請(qǐng)輸入評(píng)委1對(duì)歌手%d的打分",j); scanf("%f",&singer[j].score[1]); printf("請(qǐng)輸入評(píng)委2對(duì)歌手%d的打分",j); scanf("%f",&singer[j].score[2]); printf("請(qǐng)輸入評(píng)委3對(duì)歌手%d的打分",j); scanf("%f",&singer[j].score[3]); printf("請(qǐng)輸入評(píng)委4對(duì)歌手%d的打分",j); scanf("%f",&singer[j].score[4]); printf("請(qǐng)輸入評(píng)委5對(duì)歌手%d的打分",j); scanf("%f",&singer[j].score[5]); printf("請(qǐng)輸入評(píng)委6對(duì)歌手%d的打分",j); scanf("%f",&singer[j].score[6]); printf("請(qǐng)輸入評(píng)委7對(duì)歌手%d的打分",j); scanf("%f",&singer[j].score[7]); printf("請(qǐng)輸入評(píng)委8對(duì)歌手%d的打分",j); scanf("%f",&singer[j].score[8]); printf("請(qǐng)輸入評(píng)委9對(duì)歌手%d的打分",j); scanf("%f",&singer[j].score[9]); printf("請(qǐng)輸入評(píng)委10對(duì)歌手%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)/* 歌手總成績(jī) */ { 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)/*成績(jī)排序*/ { 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)/*數(shù)據(jù)查詢*/ { printf("所查選手的數(shù)據(jù):編號(hào)%d 姓名%s 平均成績(jī)%f 總成績(jī)%f\n",singer[c].num,singer[c].name,singer[c].aver,singer[c].score[c]); } int addition(int i)/*數(shù)據(jù)追加*/ { printf("請(qǐng)輸入選手編號(hào)及姓名:"); scanf("%d,%s/n",&singer[i+1].num,&singer[i+1].name); printf("請(qǐng)輸入評(píng)委1對(duì)歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[1]); printf("請(qǐng)輸入評(píng)委2對(duì)歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[2]); printf("請(qǐng)輸入評(píng)委3對(duì)歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[3]); printf("請(qǐng)輸入評(píng)委4對(duì)歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[4]); printf("請(qǐng)輸入評(píng)委5對(duì)歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[5]); printf("請(qǐng)輸入評(píng)委6對(duì)歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[6]); printf("請(qǐng)輸入評(píng)委7對(duì)歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[7]); printf("請(qǐng)輸入評(píng)委8對(duì)歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[8]); printf("請(qǐng)輸入評(píng)委9對(duì)歌手%d的打分",i+1); scanf("%d",&singer[i+1].score[9]); printf("請(qǐng)輸入評(píng)委10對(duì)歌手%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(" 歌手比賽系統(tǒng) \n"); printf("*********************\n"); printf("* 1)輸入選手?jǐn)?shù)據(jù) *\n"); printf("* 2)評(píng)委打分 *\n"); printf("* 3)成績(jī)排序 *\n"); printf("* 4)數(shù)據(jù)查詢 *\n"); printf("* 5)追加學(xué)生數(shù)據(jù) *\n"); printf("* 6)寫入數(shù)據(jù)文件 *\n"); printf("* 7)退出系統(tǒng) *\n"); printf("*********************\n"); while(n) { printf("你想進(jìn)行的操作: "); scanf("%d",&a); printf("\n\n"); switch(a) { case 1: printf("你想進(jìn)行的操作:輸入選手?jǐn)?shù)據(jù)\n "); printf("請(qǐng)輸入選手個(gè)數(shù)"); scanf("%d",&b); singer_information(b); printf("----------------------\n"); break; case 2: printf("你想進(jìn)行的操作:評(píng)委打分\n "); singer_score(b); printf("-----------------------\n"); break; case 3: printf("你想進(jìn)行的操作:成績(jī)排序(按平均分)\n "); singer_grade(b); order(b); printf("-------------------------\n"); break; case 4: printf("你想進(jìn)行的操作:數(shù)據(jù)查詢\n "); printf("請(qǐng)輸入要查詢選手編號(hào):"); scanf("%d",&c); printf("所查選手的數(shù)據(jù):編號(hào)%d 姓名%s 平均成績(jī)%f 總成績(jī)%f\n",singer[c].num,singer[c].name,singer[c].aver,singer[c].sum); printf("--------------------------\n"); break; case 5: printf("你想進(jìn)行的操作:追加學(xué)生數(shù)據(jù)\n "); addition(b); printf("---------------------------\n"); break; case 6: printf("你想進(jìn)行的操作:寫入數(shù)據(jù)文件\n "); printf("將數(shù)據(jù)寫入文件中:\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("輸入錯(cuò)誤請(qǐng)重新輸入!\n"); } } }
感謝各位的閱讀,以上就是“C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。