




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、淮 海 工 學 院 計算機工程學院課程設計報告設計名稱: 數(shù)據(jù)結構課程設計 選題名稱: 運動會分數(shù)統(tǒng)計 姓 名: 學 號: 專業(yè)班級: 系 (院): 設計時間: 設計地點: 成績:指導教師評語: 簽名: 年 月 日1課程設計目的1、訓練學生靈活應用所學數(shù)據(jù)結構知識,獨立完成問題分析,結合數(shù)據(jù)結構理論知識,編寫程序求解指定問題。 2.初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設計、程序編碼、測試等基本方法和技能;3.提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;4.訓練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),鞏固、深化學生的理論知識,提高編程水平,并在此過程中培養(yǎng)他們嚴謹?shù)目茖W態(tài)度和良
2、好的工作作風。2課程設計任務與要求:課程設計題目運動會分數(shù)統(tǒng)計任務參加運動會有n個學校,學校編號為1n。比賽分成m個男子項目,和w個女子項目。項目編號為男子1m,女子m+1m+w。不同的項目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學生自己設定。(m<=20,n<=20)要求:(1)可以輸入各個項目的前三名或前五名的成績;(2)能統(tǒng)計各學校總分;(3)可以按學校編號、學校總分、男女團體總分排序輸出;(4)可以按學校編號查詢學校某個項目的情況;可以按項目編號查詢取得前三或前五名的學校; (5)各學校分數(shù)為整型
3、,學校名稱、運動項目的名稱為字符型;(6)界面友好,有中文提示。 3課程設計說明書一 需求分析生命在于運動,為了讓我們的生活更加精彩,國家、社會、學校開辦了許多運動會,身為學生的我們也參加了學校開辦的運動會,然而運動會中那么多項目,得分不同,參加人員也不同,只靠人統(tǒng)計分數(shù)是很麻煩的,因此就需要設計一個程序來幫我們更好、更快、更精確的統(tǒng)計分數(shù)。該程序主要用于統(tǒng)計運動會中各個學校所得總分以及各校在男子和女子項目中所得分數(shù),并提供查詢功能。該程序需要具備以下功能:1.創(chuàng)建信息:² 創(chuàng)建學校名稱、運動項目(字符型);² 輸入運動會中各個項目前三名或前五名的成績(成績?yōu)檎麛?shù)型)。2.
4、信息處理:統(tǒng)計各個學校在運動會中取得的總分;3.信息輸出:能夠按學校編號、學校總分、男女團體總分排序輸出;4.信息查詢:可以按學校編號查詢學校某個項目的情況也可以按項目編號查詢取得前三或前五名的學校; 5.此程序要求界面友好并且有中文提示。二 概要設計1.邏輯結構:采用線性結構結構中的數(shù)據(jù)元素之間存在著一對一的線性關系;主要采用線性表。2.存儲結構: 主要采用線性表的順序存儲;輸入操作:輸入各個學校的名稱、運動項目;輸入運動會上前三或前五名成績。結構體定義 查找操作:1.按學校編號 2.按運動項目編號3.主要核心算法:Createinformation(),/創(chuàng)建學校、運動會項目,輸入運動會中
5、前三名或前五名的成績。OutputSchnum(),/按學校編號排序輸出總分。OutputSchscore(),/按學校總分排序輸出總分。OutputBoyscore(),/按男子團體總分排序輸出總分。OutputGirlscore(),/按女子團體總分排序輸出總分。SearchSchname(), /按學校編號各個學校情況。SearchPronum(),/按運動項目查詢各個學校情況。輸入學校名稱、運動項目4.各算法之間的關系:創(chuàng)建信息輸入前三名或前五名的成績 按學校編號排序輸出總分按學校總分排序輸出總分運動會分數(shù)統(tǒng)計信息處理按男子團體總分排序輸出總分按女子團體總分排序輸出總分按學校編號各個學
6、校情況信息查詢按運動項目各個學校情況三 詳細設計創(chuàng)建信息:void CreateInformation()/創(chuàng)建信息/int i,a,b;cout<<"請輸入學校個數(shù):"while(1)cin>>n;/輸入學校個數(shù)n/ if(n>=1&&n<=20) /判斷學校個數(shù)是否在120之間,不在則重新輸入/break; else cout<<"輸入數(shù)據(jù)有誤,請重新輸入:"for(i=1;i<=n;i+)cout<<"請輸入第"<<i<<&
7、quot;個學校名稱:"cin>>;/輸入學校名稱(字符型)/schi.score=0;/將學校總分、男女團體總分初始化為0/schi.boyscore=0;schi.girlscore=0;schi.num=i;/學校的編號/cout<<"請輸入男子團體項目個數(shù)和女子團體項目個數(shù):"A:cin>>m>>w;/輸入男女團體項目數(shù)目/if(m<=20&&m>=1&&w<=20&&w>=1)/判斷男女團體項目數(shù)目是否符合標準/for
8、(i=1;i<=m+w;i+)cout<<"請輸入第"<<i<<"個項目的名稱:" cin>>;/輸入項目名稱/cout<<"請輸入第"<<i<<"個項目有前三名還是有前五名(輸入3或5):"while(1)cin>>c;proi.rank=c;if(c=3|c=5)break;elsecout<<"輸入有誤,請重新輸入:" cout<<"請輸
9、入第"<<i<<"個項目的前"<<c<<"名學校編號:"<<endl;for(a=1;a<=c;a+)B: cout<<"第"<<a<<"名學校編號:" cin>>b;/輸入第a名學校編號/ if(b>=1&&b<=n)if(c=5)/判斷項目有前三名還是有前五名/proi.numa=b;/第i個項目的第a名編號/ schb.score=schb.score+res
10、ult5a-1;/統(tǒng)計學校總分/if(i<=m)/判斷此項目是男團體還是女團體/schb.boyscore=schb.boyscore+result5a-1;/統(tǒng)計男團體的總分/ else schb.girlscore=schb.girlscore+result5a-1;/統(tǒng)計女團體總分/elseproi.numa=b;/第i個項目的第a名編號/ schb.score=schb.score+result3a-1;/統(tǒng)計學校總分/if(i<=m)/判斷此項目是男團體還是女團體/schb.boyscore=schb.boyscore+result3a-1;/統(tǒng)計男團體的總分/ else
11、 schb.girlscore=schb.girlscore+result3a-1;/統(tǒng)計女團體總分/elsecout<<"你輸入有誤,請重新輸入:"goto B;cout<<endl;else cout<<"你輸入有誤,請重新輸入:"goto A;信息處理:void Outputschnum()/按學校編號排序,選用簡單選擇排序/int i,j,k;school l;for(i=1;i<=n-1;+i)k=i;/在i開始的n-i+1個記錄中選關鍵碼最小的記錄/for(j=i+1;j<=n;+j)if(sc
12、hj.num<schk.num) k=j;/k中存放關鍵碼最小記錄的下標/if(k!=i)/關鍵碼最小的記錄與第i個記錄交換/l=schi;schi=schk;schk=l;cout<<"按學校編號排列:"<<endl;cout<<"學校編號 名稱 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<<<&q
13、uot; "<<schi.score<<" "<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;void Outputschscore()/按學校總分排序,選擇直接插入排序/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<<"按學校總分排列:"<<endl;cout<<"學校編號 名稱 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<<<" "<<schi.score<<" &
15、quot;<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;void OutputBoyscore()/按男子團體總分排序輸出,采用冒泡排序/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<<"按男子團體總分排列:"<<endl;cout<<"學校編號 名稱 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<<<" "<<sch
17、i.score<<" "<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;void OutputGirlscore()/按女子團體總分排列輸出,簡單選擇排序/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<<"按女子團體總分排列:"<<endl;cout<<"學校編號 名稱 總分 男子總分 女子總分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<<<" "<<schi.score<<" "<<schi.boyscore<<"
19、"<<schi.girlscore<<endl;cout<<endl;信息查詢:void Searchschnum()/按學校編號查詢/int x,i;cout<<"請輸入你要查詢的學校編號:"while(1)cin>>x;/輸入要查詢的學校編號/if(x>=1 && x<=n)/判斷輸入的學校編號是否存在/break;else cout<<"你輸入有誤,請重新輸入:"cout<<"你要查詢的學校有關信息如下:"&
20、lt;<endl;cout<<"學校編號 名稱 總分 男子總分 女子總分"<<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()/按項目編號查詢/int x,i;cout<<"請輸入你要查詢的項目編號:"while(1)cin>>x;/輸入要查詢的項目編號/if(x>=1 && x<=w+m)/判斷要查詢的項目編號是否存在/break;else cout<<"你輸入有誤,請重新輸入:"cout<<<<"前3或前5名學校的情況如下:"&l
22、t;<endl;cout<<"名次 "<<"學校編號 "<<"名稱 "<<"學校總分"<<endl; for(i=1;i<=prox.rank;i+)cout<<" "<<i<<" "<<prox.numi<<" "<<<<" "<<sc
23、hprox.numi.score<<endl;cout<<endl;四 設計與調試分析一開始定義結構體時,定義的不夠全面,到后面編碼時發(fā)現(xiàn)不夠用,就要再次定義,這部分比較簡單。整個代碼在編寫過程中,主要在創(chuàng)建信息的時候出現(xiàn)很多問題,一開始構思的時候總是不夠全面,不是無法計算男女總分成績,就是排名得分不知道怎么弄,于是就在網上搜了一些有關信息,找到了一個較好的方式,就是比較麻煩一些,不注意的話就會很容易繞進去,必須一步一步的看清楚。信息輸出就比較簡單一些,其中按不同方式輸出,我就從書上找了幾種排序方法,這些書上都有,基本沒動。信息查詢頁比較簡單,一開始創(chuàng)建信息的時候就把一些信息存儲好了,查詢時只需要把那些信息輸出來就行了。調試時,有的輸入老是循環(huán),查看代碼發(fā)現(xiàn)時if語句缺少括號,還有就是缺分號、變量沒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目管理考試技巧與方法試題及答案
- 注冊會計師考試的界限與專業(yè)化趨勢分析試題及答案
- 有效項目管理技巧試題及答案
- 高中攝影課題申報書
- 學科素養(yǎng)課題申報書
- 理財中的創(chuàng)新思維培養(yǎng)與實踐試題及答案
- 項目管理協(xié)調能力測試試題及答案
- 注冊會計師考試整體把握試題及答案
- 遼寧高校課題申報書
- 2025年注冊會計師答案解析及試題
- 高一7班月考總結班會課件
- 初中語文人教七年級下冊《短語》教案
- 獎品、禮品供應服務方案
- 八年級歷史下第一單元復習教案
- 不動產登記數(shù)據(jù)安全保密責任書
- 大學文化主題辯論賽巔峰對決辯論辯答ppt模板
- 物業(yè)小區(qū)保潔清潔方案
- 原地面高程復測記錄表正式版
- 高等學校建筑學專業(yè)本科(五年制)教育評估標準
- 品質周報表(含附屬全套EXCEL表)
- MQ2535門座起重機安裝方案
評論
0/150
提交評論