版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、淮 海 工 學(xué) 院 計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱(chēng): 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 選題名稱(chēng): 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 姓 名: 學(xué) 號(hào): 專(zhuān)業(yè)班級(jí): 系 (院): 設(shè)計(jì)時(shí)間: 設(shè)計(jì)地點(diǎn): 成績(jī):指導(dǎo)教師評(píng)語(yǔ): 簽名: 年 月 日1課程設(shè)計(jì)目的1、訓(xùn)練學(xué)生靈活應(yīng)用所學(xué)數(shù)據(jù)結(jié)構(gòu)知識(shí),獨(dú)立完成問(wèn)題分析,結(jié)合數(shù)據(jù)結(jié)構(gòu)理論知識(shí),編寫(xiě)程序求解指定問(wèn)題。 2.初步掌握軟件開(kāi)發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;3.提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力;4.訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開(kāi)發(fā)一般規(guī)范進(jìn)行軟件開(kāi)發(fā),鞏固、深化學(xué)生的理論知識(shí),提高編程水平,并在此過(guò)程中培養(yǎng)他們嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良
2、好的工作作風(fēng)。2課程設(shè)計(jì)任務(wù)與要求:課程設(shè)計(jì)題目運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)任務(wù)參加運(yùn)動(dòng)會(huì)有n個(gè)學(xué)校,學(xué)校編號(hào)為1n。比賽分成m個(gè)男子項(xiàng)目,和w個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子1m,女子m+1m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學(xué)生自己設(shè)定。(m<=20,n<=20)要求:(1)可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績(jī);(2)能統(tǒng)計(jì)各學(xué)??偡?;(3)可以按學(xué)校編號(hào)、學(xué)??偡?、男女團(tuán)體總分排序輸出;(4)可以按學(xué)校編號(hào)查詢(xún)學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號(hào)查詢(xún)?nèi)〉们叭蚯拔迕膶W(xué)校; (5)各學(xué)校分?jǐn)?shù)為整型
3、,學(xué)校名稱(chēng)、運(yùn)動(dòng)項(xiàng)目的名稱(chēng)為字符型;(6)界面友好,有中文提示。 3課程設(shè)計(jì)說(shuō)明書(shū)一 需求分析生命在于運(yùn)動(dòng),為了讓我們的生活更加精彩,國(guó)家、社會(huì)、學(xué)校開(kāi)辦了許多運(yùn)動(dòng)會(huì),身為學(xué)生的我們也參加了學(xué)校開(kāi)辦的運(yùn)動(dòng)會(huì),然而運(yùn)動(dòng)會(huì)中那么多項(xiàng)目,得分不同,參加人員也不同,只靠人統(tǒng)計(jì)分?jǐn)?shù)是很麻煩的,因此就需要設(shè)計(jì)一個(gè)程序來(lái)幫我們更好、更快、更精確的統(tǒng)計(jì)分?jǐn)?shù)。該程序主要用于統(tǒng)計(jì)運(yùn)動(dòng)會(huì)中各個(gè)學(xué)校所得總分以及各校在男子和女子項(xiàng)目中所得分?jǐn)?shù),并提供查詢(xún)功能。該程序需要具備以下功能:1.創(chuàng)建信息:² 創(chuàng)建學(xué)校名稱(chēng)、運(yùn)動(dòng)項(xiàng)目(字符型);² 輸入運(yùn)動(dòng)會(huì)中各個(gè)項(xiàng)目前三名或前五名的成績(jī)(成績(jī)?yōu)檎麛?shù)型)。2.
4、信息處理:統(tǒng)計(jì)各個(gè)學(xué)校在運(yùn)動(dòng)會(huì)中取得的總分;3.信息輸出:能夠按學(xué)校編號(hào)、學(xué)??偡?、男女團(tuán)體總分排序輸出;4.信息查詢(xún):可以按學(xué)校編號(hào)查詢(xún)學(xué)校某個(gè)項(xiàng)目的情況也可以按項(xiàng)目編號(hào)查詢(xún)?nèi)〉们叭蚯拔迕膶W(xué)校; 5.此程序要求界面友好并且有中文提示。二 概要設(shè)計(jì)1.邏輯結(jié)構(gòu):采用線(xiàn)性結(jié)構(gòu)結(jié)構(gòu)中的數(shù)據(jù)元素之間存在著一對(duì)一的線(xiàn)性關(guān)系;主要采用線(xiàn)性表。2.存儲(chǔ)結(jié)構(gòu): 主要采用線(xiàn)性表的順序存儲(chǔ);輸入操作:輸入各個(gè)學(xué)校的名稱(chēng)、運(yùn)動(dòng)項(xiàng)目;輸入運(yùn)動(dòng)會(huì)上前三或前五名成績(jī)。結(jié)構(gòu)體定義 查找操作:1.按學(xué)校編號(hào) 2.按運(yùn)動(dòng)項(xiàng)目編號(hào)3.主要核心算法:Createinformation(),/創(chuàng)建學(xué)校、運(yùn)動(dòng)會(huì)項(xiàng)目,輸入運(yùn)動(dòng)會(huì)中
5、前三名或前五名的成績(jī)。OutputSchnum(),/按學(xué)校編號(hào)排序輸出總分。OutputSchscore(),/按學(xué)??偡峙判蜉敵隹偡?。OutputBoyscore(),/按男子團(tuán)體總分排序輸出總分。OutputGirlscore(),/按女子團(tuán)體總分排序輸出總分。SearchSchname(), /按學(xué)校編號(hào)各個(gè)學(xué)校情況。SearchPronum(),/按運(yùn)動(dòng)項(xiàng)目查詢(xún)各個(gè)學(xué)校情況。輸入學(xué)校名稱(chēng)、運(yùn)動(dòng)項(xiàng)目4.各算法之間的關(guān)系:創(chuàng)建信息輸入前三名或前五名的成績(jī) 按學(xué)校編號(hào)排序輸出總分按學(xué)??偡峙判蜉敵隹偡诌\(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)信息處理按男子團(tuán)體總分排序輸出總分按女子團(tuán)體總分排序輸出總分按學(xué)校編號(hào)各個(gè)學(xué)
6、校情況信息查詢(xún)按運(yùn)動(dòng)項(xiàng)目各個(gè)學(xué)校情況三 詳細(xì)設(shè)計(jì)創(chuàng)建信息:void CreateInformation()/創(chuàng)建信息/int i,a,b;cout<<"請(qǐng)輸入學(xué)校個(gè)數(shù):"while(1)cin>>n;/輸入學(xué)校個(gè)數(shù)n/ if(n>=1&&n<=20) /判斷學(xué)校個(gè)數(shù)是否在120之間,不在則重新輸入/break; else cout<<"輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:"for(i=1;i<=n;i+)cout<<"請(qǐng)輸入第"<<i<<&
7、quot;個(gè)學(xué)校名稱(chēng):"cin>>;/輸入學(xué)校名稱(chēng)(字符型)/schi.score=0;/將學(xué)校總分、男女團(tuán)體總分初始化為0/schi.boyscore=0;schi.girlscore=0;schi.num=i;/學(xué)校的編號(hào)/cout<<"請(qǐng)輸入男子團(tuán)體項(xiàng)目個(gè)數(shù)和女子團(tuán)體項(xiàng)目個(gè)數(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<<"請(qǐng)輸入第"<<i<<"個(gè)項(xiàng)目的名稱(chēng):" cin>>;/輸入項(xiàng)目名稱(chēng)/cout<<"請(qǐng)輸入第"<<i<<"個(gè)項(xiàng)目有前三名還是有前五名(輸入3或5):"while(1)cin>>c;proi.rank=c;if(c=3|c=5)break;elsecout<<"輸入有誤,請(qǐng)重新輸入:" cout<<"請(qǐng)輸
9、入第"<<i<<"個(gè)項(xiàng)目的前"<<c<<"名學(xué)校編號(hào):"<<endl;for(a=1;a<=c;a+)B: cout<<"第"<<a<<"名學(xué)校編號(hào):" cin>>b;/輸入第a名學(xué)校編號(hào)/ if(b>=1&&b<=n)if(c=5)/判斷項(xiàng)目有前三名還是有前五名/proi.numa=b;/第i個(gè)項(xiàng)目的第a名編號(hào)/ schb.score=schb.score+res
10、ult5a-1;/統(tǒng)計(jì)學(xué)??偡?if(i<=m)/判斷此項(xiàng)目是男團(tuán)體還是女團(tuán)體/schb.boyscore=schb.boyscore+result5a-1;/統(tǒng)計(jì)男團(tuán)體的總分/ else schb.girlscore=schb.girlscore+result5a-1;/統(tǒng)計(jì)女團(tuán)體總分/elseproi.numa=b;/第i個(gè)項(xiàng)目的第a名編號(hào)/ schb.score=schb.score+result3a-1;/統(tǒng)計(jì)學(xué)??偡?if(i<=m)/判斷此項(xiàng)目是男團(tuán)體還是女團(tuán)體/schb.boyscore=schb.boyscore+result3a-1;/統(tǒng)計(jì)男團(tuán)體的總分/ else
11、 schb.girlscore=schb.girlscore+result3a-1;/統(tǒng)計(jì)女團(tuán)體總分/elsecout<<"你輸入有誤,請(qǐng)重新輸入:"goto B;cout<<endl;else cout<<"你輸入有誤,請(qǐng)重新輸入:"goto A;信息處理:void Outputschnum()/按學(xué)校編號(hào)排序,選用簡(jiǎn)單選擇排序/int i,j,k;school l;for(i=1;i<=n-1;+i)k=i;/在i開(kāi)始的n-i+1個(gè)記錄中選關(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個(gè)記錄交換/l=schi;schi=schk;schk=l;cout<<"按學(xué)校編號(hào)排列:"<<endl;cout<<"學(xué)校編號(hào) 名稱(chēng) 總分 男子總分 女子總分"<<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;/從前一個(gè)數(shù)開(kāi)始比較/while(sch0.score<schj.score ) /尋找插入位置/schj
14、+1=schj;j=j-1;schj+1=sch0; /將待插入記錄插入到已排序的序列中/cout<<"按學(xué)校總分排列:"<<endl;cout<<"學(xué)校編號(hào) 名稱(chēng) 總分 男子總分 女子總分"<<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é)校編號(hào) 名稱(chēng) 總分 男子總分 女子總分"<<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)體總分排列輸出,簡(jiǎ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é)校編號(hào) 名稱(chēng) 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<<<" "<<schi.score<<" "<<schi.boyscore<<"
19、"<<schi.girlscore<<endl;cout<<endl;信息查詢(xún):void Searchschnum()/按學(xué)校編號(hào)查詢(xún)/int x,i;cout<<"請(qǐng)輸入你要查詢(xún)的學(xué)校編號(hào):"while(1)cin>>x;/輸入要查詢(xún)的學(xué)校編號(hào)/if(x>=1 && x<=n)/判斷輸入的學(xué)校編號(hào)是否存在/break;else cout<<"你輸入有誤,請(qǐng)重新輸入:"cout<<"你要查詢(xún)的學(xué)校有關(guān)信息如下:"&
20、lt;<endl;cout<<"學(xué)校編號(hào) 名稱(chēng) 總分 男子總分 女子總分"<<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)目編號(hào)查詢(xún)/int x,i;cout<<"請(qǐng)輸入你要查詢(xún)的項(xiàng)目編號(hào):"while(1)cin>>x;/輸入要查詢(xún)的項(xiàng)目編號(hào)/if(x>=1 && x<=w+m)/判斷要查詢(xún)的項(xiàng)目編號(hào)是否存在/break;else cout<<"你輸入有誤,請(qǐng)重新輸入:"cout<<<<"前3或前5名學(xué)校的情況如下:"&l
22、t;<endl;cout<<"名次 "<<"學(xué)校編號(hào) "<<"名稱(chēng) "<<"學(xué)??偡?quot;<<endl; for(i=1;i<=prox.rank;i+)cout<<" "<<i<<" "<<prox.numi<<" "<<<<" "<<sc
23、hprox.numi.score<<endl;cout<<endl;四 設(shè)計(jì)與調(diào)試分析一開(kāi)始定義結(jié)構(gòu)體時(shí),定義的不夠全面,到后面編碼時(shí)發(fā)現(xiàn)不夠用,就要再次定義,這部分比較簡(jiǎn)單。整個(gè)代碼在編寫(xiě)過(guò)程中,主要在創(chuàng)建信息的時(shí)候出現(xiàn)很多問(wèn)題,一開(kāi)始構(gòu)思的時(shí)候總是不夠全面,不是無(wú)法計(jì)算男女總分成績(jī),就是排名得分不知道怎么弄,于是就在網(wǎng)上搜了一些有關(guān)信息,找到了一個(gè)較好的方式,就是比較麻煩一些,不注意的話(huà)就會(huì)很容易繞進(jìn)去,必須一步一步的看清楚。信息輸出就比較簡(jiǎn)單一些,其中按不同方式輸出,我就從書(shū)上找了幾種排序方法,這些書(shū)上都有,基本沒(méi)動(dòng)。信息查詢(xún)頁(yè)比較簡(jiǎn)單,一開(kāi)始創(chuàng)建信息的時(shí)候就把一些信息存儲(chǔ)好了,查詢(xún)時(shí)只需要把那些信息輸出來(lái)就行了。調(diào)試時(shí),有的輸入老是循環(huán),查看代碼發(fā)現(xiàn)時(shí)if語(yǔ)句缺少括號(hào),還有就是缺分號(hào)、變量沒(méi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品代加工合同
- 知識(shí)產(chǎn)權(quán)股票配資協(xié)議
- 管道井施工專(zhuān)項(xiàng)方案
- 購(gòu)買(mǎi)土石方合同書(shū)書(shū)
- 林業(yè)有害生物防治員應(yīng)知知識(shí)考試題庫(kù)及答案
- 辦公設(shè)備租賃合同方案
- 網(wǎng)絡(luò)安全產(chǎn)品代理銷(xiāo)售合同
- 現(xiàn)代醫(yī)院信息化管理制度與表格典范
- 系統(tǒng)集成合同
- 環(huán)境與職業(yè)健康安全管理協(xié)議
- 口腔頜面部腫瘤-口腔頜面部惡性腫瘤(口腔頜面外科課件)
- 教老外一些基礎(chǔ)漢語(yǔ)教學(xué)課件
- 基于單片機(jī)的水質(zhì)檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 產(chǎn)后及新生兒護(hù)理健康教育講座
- 鋅鋼護(hù)欄安裝施工技術(shù)
- BOSCH 噴油器型號(hào)與參數(shù)對(duì)照表
- 部編版五年級(jí)上冊(cè)第七單元21 古詩(shī)詞三首長(zhǎng)相思 一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)與點(diǎn)評(píng)
- 中藥注射劑標(biāo)準(zhǔn)全文地升國(guó)
- 木刻版畫(huà)-馬宏強(qiáng)課件
- 中學(xué)生物教學(xué)論試卷
- 博飛說(shuō)明書(shū)及維修手冊(cè)sz1032水準(zhǔn)儀
評(píng)論
0/150
提交評(píng)論