版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> XXXXXXXXXXXX</p><p> 本 科 課 程 設(shè) 計(jì)</p><p> 課程:C語言程序設(shè)計(jì)</p><p><b> 題目:歌手比賽系統(tǒng)</b></p><p> 學(xué)院:XXXXXXXXXXXXXXXXXX</p><p> 專業(yè)班級(jí):XXXXXXX
2、</p><p> 學(xué)號(hào):XXXXXXXX</p><p> 學(xué)生姓名:XXXXXXX</p><p> 合作人:XXXXXXXXXXXX</p><p> 指導(dǎo)教師:XXXXXX</p><p> 2011年10月15日</p><p><b> 目錄</b>
3、</p><p> 1、引言································&
4、#183;····································
5、;</p><p> 2、系統(tǒng)設(shè)計(jì)·······························
6、3;································· </p><p
7、> 2.1、設(shè)計(jì)分析··································
8、183;··························</p><p> 2.1.1、項(xiàng)目描述····
9、83;····································&
10、#183;·············</p><p> 2.2、程序結(jié)構(gòu)·················
11、3;····································
12、183;······</p><p> 2.2.1、程序劃分························
13、83;······························</p><p> 2.2.2、程序結(jié)構(gòu)流程圖&
14、#183;····································
15、;············</p><p> 3、系統(tǒng)實(shí)現(xiàn)···················
16、3;····································
17、183;········</p><p> 3.1、各模塊的功能及程序說明·····················
18、3;·························</p><p> 3.2、系統(tǒng)各模塊的運(yùn)行效果圖·····
19、····································
20、3;·····</p><p> 4、設(shè)計(jì)體會(huì)··························
21、83;····································&
22、#183;·</p><p> 5、參考文獻(xiàn)······························
23、···········</p><p> 6、系統(tǒng)完整源程序····················
24、183;····································
25、··</p><p><b> 引言</b></p><p> C語言是一門計(jì)算機(jī)高級(jí)語言,它在Microsoft開發(fā)的軟件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)用幾乎遍及了程序的各個(gè)領(lǐng)域,如科
26、學(xué)家,系統(tǒng)程序設(shè)計(jì),字處理軟件和電子表格軟件的開發(fā),信息管理,計(jì)算機(jī)輔助設(shè)計(jì),等方面。3.C語言簡(jiǎn)潔,為完成某一功能所寫的源程序代碼往往比其他語言寫得短,便利程序輸入工作量減少。4.若程序員在書寫過程時(shí)嚴(yán)格遵循ANSI C標(biāo)準(zhǔn),則其源代碼可不作修改,即可用于各種型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng),因此,C語言具有良好的可移植性。 本次實(shí)踐我們選擇了使用C語言編寫基于鏈表的程序,不僅使大家對(duì)程序設(shè)計(jì)、編程方法有了進(jìn)一步提高,而且
27、掌握了使用C語言動(dòng)態(tài)內(nèi)存分配及數(shù)據(jù)結(jié)構(gòu)等方面的知識(shí)。</p><p><b> 一、系統(tǒng)設(shè)計(jì)</b></p><p><b> 2.1設(shè)計(jì)分析</b></p><p> 2.1.1 項(xiàng)目描述</p><p> 1.項(xiàng)目名稱:歌手打分系統(tǒng)</p><p><b&
28、gt; 2.功能描述:</b></p><p> ?。?)生成字符界面的功能菜單</p><p> **************************************</p><p> * 1.輸入歌手成績(jī) *</p><p> * 2.插入新歌手
29、 *</p><p> * 3.刪除退賽歌手 *</p><p> * 4.歌手成績(jī)排名 *</p><p> * 5.輸出歌手分?jǐn)?shù) *</p><p> * 6.輸出歌手排名
30、 *</p><p> * 7.退出系統(tǒng) *</p><p> **************************************</p><p> (2)通過輸入菜單項(xiàng)的序號(hào)啟動(dòng)相應(yīng)模塊的功能</p><p> 能夠根據(jù)輸入的選手人數(shù)創(chuàng)建鏈表;
31、</p><p> 錄入9名評(píng)委給選手的打分,并存儲(chǔ)到文件singerOriginal.dat中;</p><p> 按照去掉一個(gè)最高分和去掉一個(gè)最低分的原則求每名選手的平均分;</p><p> 按平均分由高到低的順序?qū)x手進(jìn)行排序;</p><p> 把排名后的數(shù)據(jù)存儲(chǔ)到文件singerFianl.dat中;</p>
32、<p> 把原始數(shù)據(jù)和最終的結(jié)果輸出到屏幕;</p><p> 在第②步中保存singerOriginal.dat文件之前,可根據(jù)情況修改數(shù)據(jù),例如:插入或刪除歌手。</p><p><b> 2.2 程序結(jié)構(gòu)</b></p><p><b> 2.2.1程序劃分</b></p><
33、p> 將歌手打分系統(tǒng)程序進(jìn)行系統(tǒng)模塊劃分,共分為九部分,分別是:</p><p><b> 1.定義結(jié)構(gòu)體</b></p><p><b> 2.創(chuàng)建鏈表函數(shù)</b></p><p><b> 3.輸入數(shù)據(jù)函數(shù)</b></p><p><b> 4.計(jì)
34、算函數(shù)</b></p><p><b> 5.排序函數(shù)</b></p><p><b> 6.輸出數(shù)據(jù)函數(shù)</b></p><p><b> 7.輸出最終數(shù)據(jù)</b></p><p><b> 8.刪除函數(shù)</b></p>
35、<p><b> 9.插入函數(shù)</b></p><p><b> 10.主函數(shù)</b></p><p> 2.2.2 程序結(jié)構(gòu)流程圖</p><p><b> 三、系統(tǒng)實(shí)現(xiàn)</b></p><p> 3.1 各模塊的功能及程序說明</p>&
36、lt;p> 創(chuàng)建鏈表:使用尾插法插入數(shù)據(jù);</p><p> 輸入選手信息:包括選手信息的輸入,選手成績(jī)的輸入,去掉一個(gè)最高分和最低分,并將其余評(píng)委的評(píng)分求出平均值。</p><p> 輸出選手排名:包括選手成績(jī)排名。</p><p> 刪除和插入選手信息:將退賽選手和新參加的比賽的選手進(jìn)行刪除和插入。</p><p> 主函
37、數(shù):將所有函數(shù)實(shí)現(xiàn)。</p><p> 系統(tǒng)主要功能模塊的運(yùn)行效果圖</p><p><b> 程序的運(yùn)行效果圖:</b></p><p><b> 四、設(shè)計(jì)體會(huì)</b></p><p> 在本次的C語言實(shí)踐中,讓我們受益匪淺,通過本次的實(shí)踐,讓我們更深入的了解了C語言這門計(jì)算機(jī)語言,也明白
38、了軟件開發(fā)的相關(guān)流程和基本步驟,也明白了團(tuán)隊(duì)精神的重要性,一項(xiàng)工作如果是靠一個(gè)人的力量是遠(yuǎn)遠(yuǎn)不夠的。雖然在設(shè)計(jì)軟件中遇到了很多問題,我們所有組員通力合作,積極討論,翻閱資料,最終完成了這次實(shí)踐,也許我們的程序還存在些許問題,也許還不完美,但是我相信在以后的學(xué)習(xí)中我們會(huì)繼續(xù)改進(jìn)的。也希望老師可以給我們提出您的寶貴意見。</p><p><b> 五、參考文獻(xiàn)</b></p>&
39、lt;p> 編程入門網(wǎng):http://www.bianc.cn/</p><p> http://www.bianceng.cn/Programming/</p><p><b> 六、源程序代碼</b></p><p> #include<stdio.h></p><p> #include
40、<stdlib.h></p><p> #include<time.h></p><p> #include<string.h></p><p> #define N 3</p><p> #define M 10</p><p> int add = N-1;</p
41、><p> int sum[N]={0},Max[N],Min[N];</p><p> float aver[N]={0};</p><p> struct player</p><p><b> {int num;</b></p><p> char name[8];</p>
42、<p> int score[M];</p><p><b> };</b></p><p> void Inistplayer(struct player a[],int n)</p><p><b> {int i;</b></p><p> for(i=0;i<n
43、;i++)</p><p> scanf("%d %s",&a[i].num,&a[i].name);</p><p><b> }</b></p><p> void Inputscore(int score[],int n)</p><p><b> {int i
44、;</b></p><p> for(i=0;i<n;i++)</p><p> score[i]=1+(int)10*rand()/(RAND_MAX+1);</p><p><b> }</b></p><p> void sort(struct player a[],float b[],i
45、nt n)</p><p> {int i,k,j,t;</p><p> float temp;</p><p> char str[8];</p><p> for(i=0;i<n;i++)</p><p><b> {k=i;</b></p><p>
46、 for(j=i+1;j<n;j++)</p><p> if(b[k]>b[j]) k=j;</p><p><b> if(k!=i)</b></p><p> {temp=b[i];</p><p> b[i]=b[k];</p><p> b[k]=temp;<
47、;/p><p> strcpy(str,a[i].name);</p><p> strcpy(a[i].name,a[k].name);</p><p> strcpy(a[k].name,str);</p><p> t=a[i].num;</p><p> a[i].num=a[k].num;</p&
48、gt;<p> a[k].num=t;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p> {int fl
49、ag=1,n,i,m,j;</p><p><b> FILE *fp;</b></p><p> fp = fopen("data.txt","w+");</p><p> struct player a[20];</p><p> printf("******
50、****1.輸入選手?jǐn)?shù)據(jù)***********\n");</p><p> printf("**********2.評(píng)委打分***************\n");</p><p> printf("**********3.成績(jī)排序***************\n");</p><p> printf(&qu
51、ot;**********4.數(shù)據(jù)查詢***************\n");</p><p> printf("**********5.追加學(xué)生數(shù)據(jù)***********\n");</p><p> printf("**********6.寫入數(shù)據(jù)文件***********\n");</p><p> pri
52、ntf("**********7.退出系統(tǒng)***************\n");</p><p> while(flag)</p><p> {printf("你想進(jìn)行的操作:");</p><p> scanf("%d",&n);</p><p><b>
53、 switch(n)</b></p><p><b> {</b></p><p> case 1:Inistplayer(a,N);break;</p><p> case 2:srand((unsigned)time(NULL));</p><p> for(i=0;i<N;i++)<
54、;/p><p><b> {</b></p><p> printf("%d位選手的成績(jī):",i+1);</p><p> Inputscore(a[i].score,M);</p><p> for(j=0;j<M;j++)</p><p> printf(&qu
55、ot;%d ",a[i].score[j]);</p><p> printf("\n");</p><p><b> }</b></p><p><b> break;</b></p><p> case 3:for(i=0;i<N;i++)</p
56、><p> {Max[i]=a[i].score[0];</p><p> Min[i]=a[i].score[0];</p><p> for(j=0;j<M;j++)</p><p><b> {</b></p><p> sum[i]+=a[i].score[j];</p&
57、gt;<p> if(Max[i]<a[i].score[j]) Max[i]=a[i].score[j];</p><p> if(Min[i]>a[i].score[j]) Min[i]=a[i].score[j];</p><p><b> }</b></p><p> aver[i]=(float)(s
58、um[i]-Max[i]-Min[i])/(M-2);</p><p><b> }</b></p><p> sort(a,aver,N);</p><p> for(i=0;i<N;i++)</p><p> printf("%s %5.2f\n",a[i].name,aver[i]
59、);</p><p><b> break;</b></p><p> case 4:printf("你想查詢選手的數(shù)據(jù):");</p><p> scanf("%d",&m);</p><p> for(i=0;i<N;i++)</p><
60、;p> if(a[i].num==m)</p><p><b> {</b></p><p> printf("%d號(hào)選手%s總分:%d,最高分%d,最低分%d,平均分%5.2f",a[i].num,a[i].name,sum[i],Max[i],Min[i],aver[i]);</p><p> printf
61、("\n");</p><p><b> }</b></p><p><b> break;</b></p><p> case 5:printf("請(qǐng)輸入要追加的選手?jǐn)?shù)據(jù):\n");</p><p><b> add += 1;</b
62、></p><p> scanf("%d %s",&a[add].num,&a[add].name); </p><p><b> break;</b></p><p> case 6:printf("將數(shù)據(jù)寫入文件中:\n");</p><p>
63、 for (i = 0 ; i < add+1 ; i++)</p><p><b> {</b></p><p> fprintf(fp,"%d ",a[i].num);</p><p> fprintf(fp,"%s ",a[i].name);</p><p>
64、 fprintf(fp,"%d\n",a[i].score);</p><p><b> }</b></p><p><b> break;</b></p><p> case 7:exit(0);</p><p><b> break;</b>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言程序課程設(shè)計(jì)—歌手比賽系統(tǒng)
- c語言程序課程設(shè)計(jì)—歌手比賽系統(tǒng)
- 歌手比賽系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)--比賽評(píng)分系統(tǒng)的設(shè)計(jì)
- 歌手比賽系統(tǒng)課程設(shè)計(jì)說明書
- c語言程序設(shè)計(jì)課程設(shè)計(jì)---設(shè)計(jì)比賽評(píng)分系統(tǒng)
- c語言課程設(shè)計(jì)—圍甲比賽信息管理系統(tǒng)
- 【課程設(shè)計(jì)】c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c++課程設(shè)計(jì)--比賽報(bào)名系統(tǒng)
- c語言課程設(shè)計(jì)招生查詢系統(tǒng)
- c語言課程設(shè)計(jì)---飛機(jī)訂票系統(tǒng)
- c語言校園導(dǎo)游系統(tǒng)課程設(shè)計(jì)
- c語言課程設(shè)計(jì)-賓館管理系統(tǒng)
- c語言課程設(shè)計(jì)-成績(jī)管理系統(tǒng)
- c語言課程設(shè)計(jì)--宿舍管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)籍管理系統(tǒng)
- c語言課程設(shè)計(jì)車票管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論