C語言課程設(shè)計(jì) 歌手比賽系統(tǒng)

上傳人:仙*** 文檔編號:30146740 上傳時間:2021-10-09 格式:DOC 頁數(shù):13 大小:373.56KB
收藏 版權(quán)申訴 舉報(bào) 下載
C語言課程設(shè)計(jì) 歌手比賽系統(tǒng)_第1頁
第1頁 / 共13頁
C語言課程設(shè)計(jì) 歌手比賽系統(tǒng)_第2頁
第2頁 / 共13頁
C語言課程設(shè)計(jì) 歌手比賽系統(tǒng)_第3頁
第3頁 / 共13頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C語言課程設(shè)計(jì) 歌手比賽系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《C語言課程設(shè)計(jì) 歌手比賽系統(tǒng)(13頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、 XXXXXXXXXXXX 本 科 課 程 設(shè) 計(jì) 課程:C語言程序設(shè)計(jì) 題目:歌手比賽系統(tǒng) 學(xué)院:XXXXXXXXXXXXXXXXXX 專業(yè)班級:XXXXXXX 學(xué)號:XXXXXXXX 學(xué)生姓名:XXXXXXX 合作人:XXXXXXXXXXXX 指導(dǎo)教師:XXXXXX

2、 2011年10月15日 目錄 1、引言 2、系統(tǒng)設(shè)計(jì) 2.1、設(shè)計(jì)分析 2.1.1、項(xiàng)目描述 2.2、程序結(jié)構(gòu) 2.2.1、程序劃分 2.2.2、程序結(jié)構(gòu)流程圖 3、系統(tǒng)實(shí)現(xiàn) 3.1、各模塊的功能及程序說明 3.2、系統(tǒng)各模塊的運(yùn)行效果圖 4、設(shè)計(jì)體會 5、參考文獻(xiàn) 6、系統(tǒng)完整源程序 引言 C語言是一門計(jì)算機(jī)高級語言,它在Microsoft開發(fā)的

3、軟件Visual C++ 6.0中執(zhí)行,C語言具有很多優(yōu)點(diǎn): 1.C語言具有豐富的數(shù)據(jù)類型,眾多的運(yùn)算符,體現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)的優(yōu)良控制結(jié)構(gòu),具有抽象功能及體現(xiàn)信息隱蔽思想的函數(shù)。 2.C語言的應(yīng)用幾乎遍及了程序的各個領(lǐng)域,如科學(xué)家,系統(tǒng)程序設(shè)計(jì),字處理軟件和電子表格軟件的開發(fā),信息管理,計(jì)算機(jī)輔助設(shè)計(jì),等方面。 3.C語言簡潔,為完成某一功能所寫的源程序代碼往往比其他語言寫得短,便利程序輸入工作量減少。 4.若程序員在書寫過程時嚴(yán)格遵循ANSI C標(biāo)準(zhǔn),則其源代碼可不作修改,即可用于各種型號的計(jì)算機(jī)和各種操作系統(tǒng),因此,C語言具有良好的可移植性。 本次實(shí)踐我們選擇了使用

4、C語言編寫基于鏈表的程序,不僅使大家對程序設(shè)計(jì)、編程方法有了進(jìn)一步提高,而且掌握了使用C語言動態(tài)內(nèi)存分配及數(shù)據(jù)結(jié)構(gòu)等方面的知識。 一、系統(tǒng)設(shè)計(jì) 2.1設(shè)計(jì)分析 2.1.1 項(xiàng)目描述 1.項(xiàng)目名稱:歌手打分系統(tǒng) 2.功能描述: (1)生成字符界面的功能菜單 ************************************** * 1.輸入歌手成績 * * 2.插入新歌手 * * 3.刪除退賽歌手

5、 * * 4.歌手成績排名 * * 5.輸出歌手分?jǐn)?shù) * * 6.輸出歌手排名 * * 7.退出系統(tǒng) * ************************************** (2)通過輸入菜單項(xiàng)的序號啟動相應(yīng)模塊的功能 ① 能夠根據(jù)輸入的選手人數(shù)創(chuàng)建鏈表; ② 錄入9名評委給選手的打分,并存儲到文件singerOriginal.dat中; ③ 按照去掉一個最高分和去掉一個最低分的原則求每名選手

6、的平均分; ④ 按平均分由高到低的順序?qū)x手進(jìn)行排序; ⑤ 把排名后的數(shù)據(jù)存儲到文件singerFianl.dat中; ⑥ 把原始數(shù)據(jù)和最終的結(jié)果輸出到屏幕; ⑦ 在第②步中保存singerOriginal.dat文件之前,可根據(jù)情況修改數(shù)據(jù),例如:插入或刪除歌手。 2.2 程序結(jié)構(gòu) 2.2.1程序劃分 將歌手打分系統(tǒng)程序進(jìn)行系統(tǒng)模塊劃分,共分為九部分,分別是: 1.定義結(jié)構(gòu)體 2.創(chuàng)建鏈表函數(shù) 3.輸入數(shù)據(jù)函數(shù) 4.計(jì)算函數(shù) 5.排序函數(shù) 6.輸出數(shù)據(jù)函數(shù) 7.輸出最終數(shù)據(jù) 8.刪除函數(shù) 9.插入函數(shù) 10.主函數(shù) 2.2.2 程序結(jié)構(gòu)流程圖 mai

7、n 輸出數(shù)據(jù) 存儲數(shù)據(jù) 排序 求平均分 得分維護(hù) 得分錄入 創(chuàng)建鏈表 輸入成績 三、系統(tǒng)實(shí)現(xiàn) 3.1 各模塊的功能及程序說明 創(chuàng)建鏈表:使用尾插法插入數(shù)據(jù); 輸入選手信息:包括選手信息的輸入,選手成績的輸入,去掉一個最高分和最低分,并將其余評委的評分求出平均值。 輸出選手排名:包括選手成績排名。 刪除和插入選手信息:將退賽選手和新參加的比賽的選手進(jìn)行刪除和插入。 主函數(shù):將所有函數(shù)實(shí)現(xiàn)。 3.2 系統(tǒng)主要功能模塊的運(yùn)行效果圖 程序的運(yùn)行效果圖:

8、 四、設(shè)計(jì)體會 在本次的C語言實(shí)踐中,讓我們受益匪淺,通過本次的實(shí)踐,讓我們更深入的了解了C語言這門計(jì)算機(jī)語言,也明白了軟件開發(fā)的相關(guān)流程和基本步驟,也明白了團(tuán)隊(duì)精神的重要性,一項(xiàng)工作如果是靠一個人的力量是遠(yuǎn)遠(yuǎn)不夠的。雖然在設(shè)計(jì)軟件中遇到了很多問題,我們所有組員通力合作,積極討論,翻閱資料,最終完成了這次實(shí)踐,也許我們的程序還存在些許問題,也許還不完美,但是我相信在以后的學(xué)習(xí)中我們會繼續(xù)改進(jìn)的。也希望老師可以給我們提出您的寶貴意見。 五、參考文獻(xiàn) 編程入門網(wǎng): 六、源程序代碼 #include #include

9、> #include #include #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[8]; int score[M]; }; void Inistplayer(struct player a[],int n) {int i; for(i=0;i

10、; } void Inputscore(int score[],int n) {int i; for(i=0;ib[j]) k=j; if(k!=i) {temp=b[i]; b[i]=b[k];

11、 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("**********1.輸入選手?jǐn)?shù)據(jù)***********\n"); printf("****

12、******2.評委打分***************\n"); printf("**********3.成績排序***************\n"); printf("**********4.數(shù)據(jù)查詢***************\n"); printf("**********5.追加學(xué)生數(shù)據(jù)***********\n"); printf("**********6.寫入數(shù)據(jù)文件***********\n"); printf("**********7.退出系統(tǒng)***************\n"); while(flag) {printf("你想進(jìn)行的操作:"); scanf

13、("%d",&n); switch(n) { case 1:Inistplayer(a,N);break; case 2:srand((unsigned)time(NULL)); for(i=0;i

14、 break; case 3:for(i=0;ia[i].score[j]) Min[i]=a[i].score[j]; }

15、 aver[i]=(float)(sum[i]-Max[i]-Min[i])/(M-2); } sort(a,aver,N); for(i=0;i

16、 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("請輸入要追加的選手?jǐn)?shù)據(jù):\n"); add += 1; scanf("%d %s",&a[add].num,&a[add].name); break; case 6:printf("將數(shù)據(jù)寫入文件中:\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: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!