版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 說(shuō) 明 書</p><p> 課程名稱 數(shù)據(jù)結(jié)構(gòu)—用C語(yǔ)言描述 </p><p> 設(shè)計(jì)課題 統(tǒng)計(jì)成績(jī) </p><p> 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 班
2、級(jí) </p><p> 學(xué) 號(hào) </p><p> 姓 名 </p><p> 完成日期 2013年6月13號(hào) </p><p&
3、gt;<b> 【問(wèn)題描述】</b></p><p> 給出n個(gè)學(xué)生的m門考試的成績(jī)表,每個(gè)學(xué)生的信息由學(xué)號(hào)、姓名以及各科成績(jī)組成。對(duì)學(xué)生的考試成績(jī)進(jìn)行有關(guān)統(tǒng)計(jì),并打印統(tǒng)計(jì)表。</p><p><b> 【基本要求】</b></p><p> (1) 按總數(shù)高低次序,打印出名次表,分?jǐn)?shù)相同的為同一名次;</p
4、><p> ?。?) 按名次打印出每個(gè)學(xué)生的學(xué)號(hào)、姓名、總分以及各科成績(jī)。</p><p><b> 【測(cè)試數(shù)據(jù)】</b></p><p> 輸入5(n)個(gè)學(xué)生的學(xué)號(hào),姓名基本信息以及3(m)課考試成績(jī);</p><p> 對(duì)每個(gè)學(xué)生的各科考試成績(jī)進(jìn)行求和,求出總成績(jī);</p><p> ?。?
5、) 對(duì)5(n)個(gè)學(xué)生的總成績(jī)按成績(jī)降序打印出來(lái)。</p><p><b> 【算法思想】</b></p><p> ?。?) 首先定義一個(gè)struct student類型的結(jié)構(gòu)體,包含學(xué)生的學(xué)號(hào),姓名,名次,各科成績(jī)等基本信息;</p><p> (2) 從鍵盤輸入學(xué)生的基本信息,輸入完畢打印所輸入的基本信息,檢查是否有錯(cuò);</p&g
6、t;<p> ?。?) 總分統(tǒng)計(jì):計(jì)算出每個(gè)學(xué)生的三科成績(jī)的總分并打印出來(lái)學(xué)號(hào),姓名,總分;</p><p> ?。?) 排序:調(diào)用直插排序算法,對(duì)學(xué)生的總成績(jī)進(jìn)行從低到高的排序,最后按從高分到低分的順序打印出來(lái),并列出名次,若有總分相同的為同一個(gè)名次。</p><p><b> 【模塊劃分】</b></p><p> ?。?)
7、 學(xué)生信息輸入模塊,包括學(xué)號(hào)姓名,成績(jī)進(jìn)本信息;</p><p> ?。?) 總分計(jì)算模塊,計(jì)算出學(xué)生各科成績(jī)總和;</p><p> (3) 成績(jī)排序模塊,總成績(jī)從高到低排列出來(lái)。</p><p><b> 【數(shù)據(jù)結(jié)構(gòu)】</b></p><p> struct project</p><p&g
8、t;<b> {</b></p><p> float yuwen;</p><p> float shuxue;</p><p> float yingyu;</p><p><b> };</b></p><p> struct student</p&g
9、t;<p><b> { </b></p><p><b> int num;</b></p><p> char name[30];</p><p> struct project score;</p><p> float zong;</p><p
10、> int mingci;</p><p><b> }stu[5];</b></p><p><b> 【測(cè)試情況】</b></p><p> ?。?) 輸入學(xué)生基本信息及各科考試成績(jī)并打印;</p><p> ?。?) 求出每個(gè)學(xué)生的各科成績(jī)之和并打??;</p><
11、;p> ?。?) 按總成績(jī)從低到高進(jìn)行排序打印出各科成績(jī)及總分,總成績(jī)相同的為同一個(gè)名次。</p><p><b> 【心得】</b></p><p> 通過(guò)一個(gè)周的課程設(shè)計(jì),我對(duì)數(shù)據(jù)結(jié)構(gòu)有了更深的認(rèn)識(shí),加深了對(duì)結(jié)構(gòu)體定義的掌握,了解了系統(tǒng)的設(shè)計(jì)的一些知識(shí),對(duì)于簡(jiǎn)單系統(tǒng)的設(shè)計(jì)有了進(jìn)一步的認(rèn)識(shí)和了解。</p><p> 課程設(shè)計(jì)的過(guò)程
12、中也遇到了很多問(wèn)題,例如:在對(duì)學(xué)生成績(jī)進(jìn)行排序時(shí),由于剛開(kāi)始寫函數(shù)時(shí),只是一味的照搬課本上的算法,忽視了實(shí)際問(wèn)題,導(dǎo)致排序時(shí)出現(xiàn)了重復(fù)排序的現(xiàn)象,后來(lái)在自己上網(wǎng)搜索以及同學(xué)的幫助下解決了問(wèn)題,最終能正確的運(yùn)行出程序。</p><p> 課程設(shè)計(jì)是對(duì)我們一學(xué)期學(xué)習(xí)知識(shí)的一次檢驗(yàn),設(shè)計(jì)的過(guò)程中會(huì)遇到很多問(wèn)題,我們應(yīng)該積極地與老師同學(xué)進(jìn)行交流,認(rèn)真的思考,才能解決問(wèn)題,提高我們發(fā)現(xiàn)問(wèn)題解決問(wèn)題的能力,引導(dǎo)我們把課本上
13、所學(xué)習(xí)到的知識(shí)運(yùn)用到生活中去。</p><p> 這次課程設(shè)計(jì)我要感謝王偉靜老師以及幫助我的同學(xué),在他們的幫助下,我才能順利的完成此次課程設(shè)計(jì)。</p><p><b> 【源程序】</b></p><p> #include <stdio.h></p><p> struct project<
14、/p><p><b> {</b></p><p> float yuwen;</p><p> float shuxue;</p><p> float yingyu;</p><p><b> };</b></p><p> struct
15、student</p><p><b> { </b></p><p><b> int num;</b></p><p> char name[30];</p><p> struct project score;</p><p> float zong;&l
16、t;/p><p> int mingci;</p><p><b> }stu[5];</b></p><p> void input(struct student stu[5]) //信息輸入</p><p><b> {</b></p><p> print
17、f("學(xué)號(hào) 姓名 yuwen shuxue yingyu \n");</p><p> for (int i=0;i<5;i++)</p><p><b> {</b></p><p> scanf("%d",&stu[i].num);</p><p>
18、scanf("%s",stu[i].name);</p><p> scanf("%f",&stu[i].score.yuwen);</p><p> scanf("%f",&stu[i].score.shuxue);</p><p> scanf("%f",&am
19、p;stu[i].score.yingyu);</p><p><b> }</b></p><p><b> }</b></p><p> void count(struct student stu[5]) //總分計(jì)算</p><p><b> {</b>
20、;</p><p> printf("學(xué)號(hào) 姓名 總分\n");</p><p> for (int i=0;i<5;i++)</p><p><b> {</b></p><p> stu[i].zong=stu[i].score.yuwen+stu[i].score.shuxu
21、e+stu[i].score.yingyu;</p><p> printf("%d %s %f\n",stu[i].num,stu[i].name,stu[i].zong);</p><p><b> }</b></p><p><b> }</b></p>&l
22、t;p> void sort(struct student stu[5]) //直插排序法降序排列</p><p><b> {</b></p><p> struct student temp; //定義一個(gè)struct student類型的變量</p><p><b> int i,j;</b
23、></p><p><b> int k=1;</b></p><p> for (i=2;i<=5;i++)</p><p><b> {</b></p><p> temp=stu[i]; //將要排序的元素賦給temp</p><p&
24、gt; j=i-1; //j表示已經(jīng)排好序的元素中的最后一個(gè)元素stu[j]</p><p> while( temp.zong<stu[j].zong)</p><p><b> {</b></p><p> stu[j+1]=stu[j]; //如果要排序的元素temp的關(guān)鍵字小于stu[j]
25、的關(guān)鍵字,則把temp與stu[j]的前一個(gè)元素比較</p><p><b> j--;</b></p><p><b> }</b></p><p> stu[j+1]=temp; </p><p><b> }</b></p><p
26、> printf("名次 學(xué)號(hào) 姓名 yuwen shuxue yingyu 總分\n"); //按成績(jī)從高到低打印</p><p> for(int p=5;p>0;p--)</p><p><b> {</b></p><p> if(p!=5)
27、 //此程序只定義了5個(gè)學(xué)生的成績(jī),p=5時(shí),就沒(méi)有上一個(gè)元素</p><p> if(stu[p].zong==stu[p+1].zong)</p><p><b> k--;</b></p><p> stu[p].mingci=k;</p><p> printf(" %d
28、 %d %s %f %f %f %f\n",stu[p].mingci,stu[p].num,stu[p].name,stu[p].score.yuwen,stu[p].score.shuxue,stu[p].score.yingyu,stu[p].zong); </p><p><b> k++;</b></p><
29、p><b> }</b></p><p><b> } </b></p><p> void print(struct student stu[5])</p><p><b> {</b></p><p> for (int i=0;i<5;i++)
30、</p><p><b> {</b></p><p> printf("學(xué)號(hào) 姓名 yuwen shuxue yingyu\n");</p><p> printf("%d %s %f %f %f\n",stu[i].num
31、,stu[i].name,stu[i].score.yuwen,stu[i].score.shuxue,stu[i].score.yingyu);</p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b&
32、gt; {</b></p><p> struct student stu[5];</p><p><b> int t;</b></p><p> printf("-----------------成績(jī)統(tǒng)計(jì)------------------\n");</p><p><b
33、> do</b></p><p><b> {</b></p><p> printf(" ---------------選擇操作----------------\n");</p><p> printf(" (1)信息輸入 (2)總分統(tǒng)計(jì) (3)總分排序 \n");&
34、lt;/p><p> printf("請(qǐng)做出選擇,t=");</p><p> scanf("%d",&t);</p><p><b> switch(t)</b></p><p><b> {</b></p><p>&l
35、t;b> case 1:</b></p><p> printf("請(qǐng)輸入學(xué)生的信息:\n");</p><p> input(stu);</p><p> print(stu);</p><p><b> break;</b></p><p>&l
36、t;b> case 2:</b></p><p> printf("每個(gè)學(xué)生的三科的總分為:\n");</p><p> count(stu);</p><p><b> break;</b></p><p><b> case 3:</b></
37、p><p> printf("將學(xué)生的成績(jī)按總分由高到低排序?yàn)?\n");</p><p> sort(stu);</p><p><b> break;</b></p><p><b> default:</b></p><p> printf(&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)用c語(yǔ)言描述課后習(xí)題答案
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版課程設(shè)計(jì)
- c語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---文章編輯
- c語(yǔ)言數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-文章編輯
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言課程設(shè)計(jì)報(bào)告之迷宮
- 迷宮(c語(yǔ)言版)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- c語(yǔ)言數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--用棧實(shí)現(xiàn)停車場(chǎng)管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----用c++語(yǔ)言實(shí)現(xiàn)圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--用c#語(yǔ)言解決最短路徑的問(wèn)題
- 迷宮問(wèn)題非遞歸求解--數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- c數(shù)據(jù)結(jié)構(gòu)迷宮問(wèn)題課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)c語(yǔ)言版飛機(jī) 訂票 系統(tǒng)資料
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目-c類(201206)
- 《數(shù)據(jù)結(jié)構(gòu)——c語(yǔ)言描述》習(xí)題及答案-耿國(guó)華
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論