




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、淮 海 工 學(xué) 院 計算機(jī)工程學(xué)院課程設(shè)計報告設(shè)計名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 選題名稱: 運(yùn)動會分?jǐn)?shù)統(tǒng)計 姓 名: 學(xué) 號: 專業(yè)班級: 系 (院): 設(shè)計時間: 設(shè)計地點(diǎn): 成績:指導(dǎo)教師評語: 簽名: 年 月 日1課程設(shè)計目的1、訓(xùn)練學(xué)生靈活應(yīng)用所學(xué)數(shù)據(jù)結(jié)構(gòu)知識,獨(dú)立完成問題分析,結(jié)合數(shù)據(jù)結(jié)構(gòu)理論知識,編寫程序求解指定問題。 2.初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能;3.提高綜合運(yùn)用所學(xué)的理論知識和方法獨(dú)立分析和解決問題的能力;4.訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),鞏固、深化學(xué)生的理論知識,提高編程水平,并在此過程中培養(yǎng)他們嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良
2、好的工作作風(fēng)。2課程設(shè)計任務(wù)與要求:課程設(shè)計題目運(yùn)動會分?jǐn)?shù)統(tǒng)計任務(wù)參加運(yùn)動會有n個學(xué)校,學(xué)校編號為1n。比賽分成m個男子項(xiàng)目,和w個女子項(xiàng)目。項(xiàng)目編號為男子1m,女子m+1m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學(xué)生自己設(shè)定。(m<=20,n<=20)要求:(1)可以輸入各個項(xiàng)目的前三名或前五名的成績;(2)能統(tǒng)計各學(xué)??偡郑唬?)可以按學(xué)校編號、學(xué)校總分、男女團(tuán)體總分排序輸出;(4)可以按學(xué)校編號查詢學(xué)校某個項(xiàng)目的情況;可以按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校; (5)各學(xué)校分?jǐn)?shù)為整型
3、,學(xué)校名稱、運(yùn)動項(xiàng)目的名稱為字符型;(6)界面友好,有中文提示。 3課程設(shè)計說明書一 需求分析生命在于運(yùn)動,為了讓我們的生活更加精彩,國家、社會、學(xué)校開辦了許多運(yùn)動會,身為學(xué)生的我們也參加了學(xué)校開辦的運(yùn)動會,然而運(yùn)動會中那么多項(xiàng)目,得分不同,參加人員也不同,只靠人統(tǒng)計分?jǐn)?shù)是很麻煩的,因此就需要設(shè)計一個程序來幫我們更好、更快、更精確的統(tǒng)計分?jǐn)?shù)。該程序主要用于統(tǒng)計運(yùn)動會中各個學(xué)校所得總分以及各校在男子和女子項(xiàng)目中所得分?jǐn)?shù),并提供查詢功能。該程序需要具備以下功能:1.創(chuàng)建信息:² 創(chuàng)建學(xué)校名稱、運(yùn)動項(xiàng)目(字符型);² 輸入運(yùn)動會中各個項(xiàng)目前三名或前五名的成績(成績?yōu)檎麛?shù)型)。2.
4、信息處理:統(tǒng)計各個學(xué)校在運(yùn)動會中取得的總分;3.信息輸出:能夠按學(xué)校編號、學(xué)??偡?、男女團(tuán)體總分排序輸出;4.信息查詢:可以按學(xué)校編號查詢學(xué)校某個項(xiàng)目的情況也可以按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校; 5.此程序要求界面友好并且有中文提示。二 概要設(shè)計1.邏輯結(jié)構(gòu):采用線性結(jié)構(gòu)結(jié)構(gòu)中的數(shù)據(jù)元素之間存在著一對一的線性關(guān)系;主要采用線性表。2.存儲結(jié)構(gòu): 主要采用線性表的順序存儲;輸入操作:輸入各個學(xué)校的名稱、運(yùn)動項(xiàng)目;輸入運(yùn)動會上前三或前五名成績。結(jié)構(gòu)體定義 查找操作:1.按學(xué)校編號 2.按運(yùn)動項(xiàng)目編號3.主要核心算法:Createinformation(),/創(chuàng)建學(xué)校、運(yùn)動會項(xiàng)目,輸入運(yùn)動會中
5、前三名或前五名的成績。OutputSchnum(),/按學(xué)校編號排序輸出總分。OutputSchscore(),/按學(xué)校總分排序輸出總分。OutputBoyscore(),/按男子團(tuán)體總分排序輸出總分。OutputGirlscore(),/按女子團(tuán)體總分排序輸出總分。SearchSchname(), /按學(xué)校編號各個學(xué)校情況。SearchPronum(),/按運(yùn)動項(xiàng)目查詢各個學(xué)校情況。輸入學(xué)校名稱、運(yùn)動項(xiàng)目4.各算法之間的關(guān)系:創(chuàng)建信息輸入前三名或前五名的成績 按學(xué)校編號排序輸出總分按學(xué)??偡峙判蜉敵隹偡诌\(yùn)動會分?jǐn)?shù)統(tǒng)計信息處理按男子團(tuán)體總分排序輸出總分按女子團(tuán)體總分排序輸出總分按學(xué)校編號各個學(xué)
6、校情況信息查詢按運(yùn)動項(xiàng)目各個學(xué)校情況三 詳細(xì)設(shè)計創(chuàng)建信息:void CreateInformation()/創(chuàng)建信息/int i,a,b;cout<<"請輸入學(xué)校個數(shù):"while(1)cin>>n;/輸入學(xué)校個數(shù)n/ if(n>=1&&n<=20) /判斷學(xué)校個數(shù)是否在120之間,不在則重新輸入/break; else cout<<"輸入數(shù)據(jù)有誤,請重新輸入:"for(i=1;i<=n;i+)cout<<"請輸入第"<<i<<&
7、quot;個學(xué)校名稱:"cin>>;/輸入學(xué)校名稱(字符型)/schi.score=0;/將學(xué)校總分、男女團(tuán)體總分初始化為0/schi.boyscore=0;schi.girlscore=0;schi.num=i;/學(xué)校的編號/cout<<"請輸入男子團(tuán)體項(xiàng)目個數(shù)和女子團(tuán)體項(xiàng)目個數(shù):"A:cin>>m>>w;/輸入男女團(tuán)體項(xiàng)目數(shù)目/if(m<=20&&m>=1&&w<=20&&w>=1)/判斷男女團(tuán)體項(xiàng)目數(shù)目是否符合標(biāo)準(zhǔn)/for
8、(i=1;i<=m+w;i+)cout<<"請輸入第"<<i<<"個項(xiàng)目的名稱:" cin>>;/輸入項(xiàng)目名稱/cout<<"請輸入第"<<i<<"個項(xiàng)目有前三名還是有前五名(輸入3或5):"while(1)cin>>c;proi.rank=c;if(c=3|c=5)break;elsecout<<"輸入有誤,請重新輸入:" cout<<"請輸
9、入第"<<i<<"個項(xiàng)目的前"<<c<<"名學(xué)校編號:"<<endl;for(a=1;a<=c;a+)B: cout<<"第"<<a<<"名學(xué)校編號:" cin>>b;/輸入第a名學(xué)校編號/ if(b>=1&&b<=n)if(c=5)/判斷項(xiàng)目有前三名還是有前五名/proi.numa=b;/第i個項(xiàng)目的第a名編號/ schb.score=schb.score+res
10、ult5a-1;/統(tǒng)計學(xué)??偡?if(i<=m)/判斷此項(xiàng)目是男團(tuán)體還是女團(tuán)體/schb.boyscore=schb.boyscore+result5a-1;/統(tǒng)計男團(tuán)體的總分/ else schb.girlscore=schb.girlscore+result5a-1;/統(tǒng)計女團(tuán)體總分/elseproi.numa=b;/第i個項(xiàng)目的第a名編號/ schb.score=schb.score+result3a-1;/統(tǒng)計學(xué)??偡?if(i<=m)/判斷此項(xiàng)目是男團(tuán)體還是女團(tuán)體/schb.boyscore=schb.boyscore+result3a-1;/統(tǒng)計男團(tuán)體的總分/ else
11、 schb.girlscore=schb.girlscore+result3a-1;/統(tǒng)計女團(tuán)體總分/elsecout<<"你輸入有誤,請重新輸入:"goto B;cout<<endl;else cout<<"你輸入有誤,請重新輸入:"goto A;信息處理:void Outputschnum()/按學(xué)校編號排序,選用簡單選擇排序/int i,j,k;school l;for(i=1;i<=n-1;+i)k=i;/在i開始的n-i+1個記錄中選關(guān)鍵碼最小的記錄/for(j=i+1;j<=n;+j)if(sc
12、hj.num<schk.num) k=j;/k中存放關(guān)鍵碼最小記錄的下標(biāo)/if(k!=i)/關(guān)鍵碼最小的記錄與第i個記錄交換/l=schi;schi=schk;schk=l;cout<<"按學(xué)校編號排列:"<<endl;cout<<"學(xué)校編號 名稱 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<<<&q
13、uot; "<<schi.score<<" "<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;void Outputschscore()/按學(xué)校總分排序,選擇直接插入排序/int i,j;for(i=2;i<=n;i+)sch0=schi; /將待插入記錄存放到監(jiān)視哨r0中/j=i-1;/從前一個數(shù)開始比較/while(sch0.score<schj.score ) /尋找插入位置/schj
14、+1=schj;j=j-1;schj+1=sch0; /將待插入記錄插入到已排序的序列中/cout<<"按學(xué)??偡峙帕校?quot;<<endl;cout<<"學(xué)校編號 名稱 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<<<" "<<schi.score<<" &
15、quot;<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;void OutputBoyscore()/按男子團(tuán)體總分排序輸出,采用冒泡排序/int change,i,j;school k;change=TRUE;for(i=1;i<=n-1&&change;+i)change=FALSE;for(j=1;j<=n-i;+j)if(schj.boyscore>schj+1.boyscore)/如果schj比前面aschj-1
16、的小,則交換向上浮/交換數(shù)組schj和schj-1/k=schj;schj=schj+1;schj+1=k;change=TRUE;cout<<"按男子團(tuán)體總分排列:"<<endl;cout<<"學(xué)校編號 名稱 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<<<" "<<sch
17、i.score<<" "<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;void OutputGirlscore()/按女子團(tuán)體總分排列輸出,簡單選擇排序/int i,j,k;school l;for(i=1;i<=n-1;+i)k=i;for(j=i+1;j<=n;+j)if(schj.girlscore<schk.girlscore) k=j;if(k!=i)l=schi;schi=schk;schk=
18、l;cout<<"按女子團(tuán)體總分排列:"<<endl;cout<<"學(xué)校編號 名稱 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<<<" "<<schi.score<<" "<<schi.boyscore<<"
19、"<<schi.girlscore<<endl;cout<<endl;信息查詢:void Searchschnum()/按學(xué)校編號查詢/int x,i;cout<<"請輸入你要查詢的學(xué)校編號:"while(1)cin>>x;/輸入要查詢的學(xué)校編號/if(x>=1 && x<=n)/判斷輸入的學(xué)校編號是否存在/break;else cout<<"你輸入有誤,請重新輸入:"cout<<"你要查詢的學(xué)校有關(guān)信息如下:"&
20、lt;<endl;cout<<"學(xué)校編號 名稱 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)if(schi.num=x)cout<<" "<<schi.num<<" "<<<<" "<<schi.score<<" "<<schi.boyscore<<" "<<schi.girl
21、score<<endl; break;cout<<endl;void Searchpronum()/按項(xiàng)目編號查詢/int x,i;cout<<"請輸入你要查詢的項(xiàng)目編號:"while(1)cin>>x;/輸入要查詢的項(xiàng)目編號/if(x>=1 && x<=w+m)/判斷要查詢的項(xiàng)目編號是否存在/break;else cout<<"你輸入有誤,請重新輸入:"cout<<<<"前3或前5名學(xué)校的情況如下:"&l
22、t;<endl;cout<<"名次 "<<"學(xué)校編號 "<<"名稱 "<<"學(xué)校總分"<<endl; for(i=1;i<=prox.rank;i+)cout<<" "<<i<<" "<<prox.numi<<" "<<<<" "<<sc
23、hprox.numi.score<<endl;cout<<endl;四 設(shè)計與調(diào)試分析一開始定義結(jié)構(gòu)體時,定義的不夠全面,到后面編碼時發(fā)現(xiàn)不夠用,就要再次定義,這部分比較簡單。整個代碼在編寫過程中,主要在創(chuàng)建信息的時候出現(xiàn)很多問題,一開始構(gòu)思的時候總是不夠全面,不是無法計算男女總分成績,就是排名得分不知道怎么弄,于是就在網(wǎng)上搜了一些有關(guān)信息,找到了一個較好的方式,就是比較麻煩一些,不注意的話就會很容易繞進(jìn)去,必須一步一步的看清楚。信息輸出就比較簡單一些,其中按不同方式輸出,我就從書上找了幾種排序方法,這些書上都有,基本沒動。信息查詢頁比較簡單,一開始創(chuàng)建信息的時候就把一些信息存儲好了,查詢時只需要把那些信息輸出來就行了。調(diào)試時,有的輸入老是循環(huán),查看代碼發(fā)現(xiàn)時if語句缺少括號,還有就是缺分號、變量沒
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班級歷史文化傳承的舉措計劃
- 大班班級日常管理的注意事項(xiàng)計劃
- 2025年玉米酒精糟回收蛋白飼料成套設(shè)備(DDGS)項(xiàng)目建議書
- 2025年異步轉(zhuǎn)移模式寬帶交換機(jī)項(xiàng)目建議書
- 2025年不停電電源(UPS)項(xiàng)目合作計劃書
- 2025年中國文創(chuàng)產(chǎn)品行業(yè)發(fā)展策略、市場環(huán)境及前景研究分析報告
- 2025年鼠抗腫瘤相關(guān)抗原單克隆抗體項(xiàng)目合作計劃書
- 客戶資料查詢權(quán)限嚴(yán)格把控
- 簡易私人承包合同
- 電纜電線采購合同書
- NBT 20299-2014 核電廠溫排水環(huán)境影晌評價技術(shù)規(guī)范
- 中職解剖學(xué)基礎(chǔ)知識重點(diǎn)筆記
- 自媒體賬號合作運(yùn)營協(xié)議
- 煙草專賣零售許可證新辦申請表
- 藥品管理法律制度的創(chuàng)新與探索
- 蘇教版三年級下冊數(shù)學(xué)計算能手1000題帶答案
- 旅游學(xué)概論(郭勝 第五版) 課件 第5、6章 旅游業(yè)、旅游市場
- 安全隱患規(guī)范依據(jù)查詢手冊22大類12萬字
- 道路清障救援作業(yè)服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 醫(yī)療器械產(chǎn)品簡介
- 府谷縣田家寨鎮(zhèn)新田煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
評論
0/150
提交評論