數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)C語(yǔ)言運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)C語(yǔ)言運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)C語(yǔ)言運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)C語(yǔ)言運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)C語(yǔ)言運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 東華大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱: 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)指導(dǎo)教師: 學(xué)生姓名: 學(xué)生學(xué)號(hào): 實(shí)驗(yàn)日期: 目 錄一、設(shè)計(jì)題目 (3)二、任務(wù)(3)三、功能要求和測(cè)試數(shù)據(jù) (3)四、需求分析 (4)概要設(shè)計(jì)(5)(5) 5.2系統(tǒng)各函數(shù)的功能、相互調(diào)用關(guān)系 (6)詳細(xì)設(shè)計(jì)(5) 6.1 各變量的定義和作用 (8) 6.2 系統(tǒng)各函數(shù)的功能 (8)調(diào)試分析(21)用戶手冊(cè) (22)九、測(cè)試結(jié)果(22)十、心得體會(huì)與參考文獻(xiàn)(22)設(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è)男子工程,和w個(gè)女子工程。工程編號(hào)為男子1m,女子m+1m+w。不同的工程取前五名或

2、前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些工程取前五名或前三名由學(xué)生自己設(shè)定。m=20,n=20功能要求:1) 可以輸入各個(gè)工程的前三名或前五名的成績(jī);2) 能統(tǒng)計(jì)各學(xué)??偡?;3) 可以按學(xué)校編號(hào)、學(xué)??偡?、男女團(tuán)體總分排序輸出;4) 可以按學(xué)校編號(hào)查詢學(xué)校某個(gè)工程的情況;5) 可以按工程編號(hào)查詢?nèi)〉们叭蚯拔迕膶W(xué)校。測(cè)試數(shù)據(jù):學(xué)校數(shù)據(jù)校名東華大學(xué)上海交大復(fù)旦大學(xué)同濟(jì)大學(xué)華東師范大學(xué)編號(hào)12345工程數(shù)據(jù)工程編號(hào)工程名稱1男子100米2男子200米3男子400米4男子跳高5男子跳遠(yuǎn)6女子跳高7女子跳遠(yuǎn)8女子鉛球9女子100米10女子400米需求

3、分析 本程序在運(yùn)行期間,為了防止在運(yùn)行大量數(shù)據(jù)時(shí)不會(huì)出錯(cuò),并且能夠在很短的時(shí)間內(nèi)將運(yùn)行結(jié)果穩(wěn)定輸出,就需要系統(tǒng)到達(dá)平安性能好,可靠性高,穩(wěn)定性強(qiáng),處理數(shù)據(jù)迅速等特點(diǎn),應(yīng)具備一定的實(shí)用性。功能實(shí)現(xiàn)1記錄功能。能記錄一次運(yùn)動(dòng)會(huì)的所有工程信息,如其編號(hào),名稱,是男子工程還是女子工程,是取前三名還是前五名,以及取得名次的學(xué)校編號(hào);能記錄參加本次運(yùn)動(dòng)會(huì)的學(xué)校個(gè)數(shù),以及學(xué)校的編號(hào),并能添加,修改,刪除其中的信息。2查詢功能。能根據(jù)工程編號(hào)查詢?cè)谠摴こ躺汐@得名次的學(xué)校編號(hào),并按名次先后順序輸出;能根據(jù)學(xué)校編號(hào)和工程編號(hào)查詢?cè)搶W(xué)校在該工程上獲得的名次以及得分情況。3統(tǒng)計(jì)功能。能統(tǒng)計(jì)各個(gè)學(xué)校的總分,男子團(tuán)體總分

4、,女子團(tuán)體總分。:輸入數(shù)據(jù)形式和范圍:20以內(nèi)的整數(shù),也可以輸入學(xué)校的名稱,運(yùn)動(dòng)工程的名稱:有中文提示,各學(xué)校分?jǐn)?shù)為整形。界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。概要設(shè)計(jì)程序調(diào)用關(guān)系void main調(diào)用了void basic(),void matchoutvoid,void input(),void output(),void teamoutput( );void output()調(diào)用了 void index();void teamoutput( )調(diào)用了void teamsco();void teamsco()調(diào)用了void index();詳細(xì)設(shè)計(jì)

5、#include#include#include /*conio是Console Input/Output控制臺(tái)輸入輸出的簡(jiǎn)寫(xiě),其中定義了通過(guò)控制臺(tái)進(jìn)行數(shù)據(jù)輸入和數(shù)據(jù)輸出的函數(shù),主要是一些用戶通過(guò)按鍵盤(pán)產(chǎn)生的對(duì)應(yīng)操作,比方getch()函數(shù)等等。*/#define N 20 /*參賽學(xué)校數(shù)量*/int helpN;/*成績(jī)排序時(shí)使用*/int n,m,w; /* 定義代表學(xué)校、男子工程、女子工程數(shù)量的變量 */ int a,b; /* 工程編號(hào),工程名次個(gè)數(shù) */ struct Score /* 定義工程比賽結(jié)果名次列表元素結(jié)構(gòu)體 */ int schnum; /* 學(xué)校編號(hào)*/ char n

6、ame20; /* 姓名 */ int position; /* 名次 */ int score; /* 得分 */;struct Match /* 定義運(yùn)動(dòng)工程結(jié)構(gòu)體 */ int matnum; /* 工程編號(hào) */ int num; /* 工程名次個(gè)數(shù) */ struct Score list5; /* 名次列表數(shù)組,結(jié)構(gòu)體數(shù)組*/ma50; struct SchoolScore /* 定義學(xué)校成績(jī)單元素 */ int matnum; /* 工程編號(hào) */ int position; /* 名次 */ /char name20; /* 姓名 */ int score; /* 得分 */;

7、 struct School /* 定義學(xué)校結(jié)構(gòu)體 */ int schnum; /* 學(xué)校編號(hào) */ struct SchoolScore list50; /* 成績(jī)單列表數(shù)組 */ int team; /* 團(tuán)體總分 */ int mteam; /* 男子團(tuán)體總分 */ int fteam; /* 女子團(tuán)體總分 */ int num; /* 累加數(shù) */sc20; void input ( ) /* 輸入比賽數(shù)據(jù) */ int i,rank,c; cout請(qǐng)輸入比賽結(jié)果資料endl; for(i=0;im+w;i+) mai.matnum=i+1; /* 初始化工程編號(hào)matnum */

8、cout請(qǐng)輸入比賽工程編號(hào)1-m+wc; /*工程編號(hào)*/ if(c0)&(c=m+w) do coutrank; if (rank=3) mac-1.num=3; /* 工程名次個(gè)數(shù)為3 */ if(rank=5) mac-1.num=5; else if(rank!=3&rank!=5) cout輸入錯(cuò)誤,請(qǐng)重新輸入:; while (rank!=3&rank!=5);cout第c項(xiàng)比賽:取前mac-1.num名endl; for(i=0;imac-1.num;i+) mac-1.listi.position=i+1; do coutendl輸入第i+1mac-1.listi.schnum

9、; if(mac-1.listi.schnumn) cout錯(cuò)誤!輸入的編號(hào)應(yīng)為1-n之間!; /* 輸出出錯(cuò)信息 */ while (mac-1.listi.schnumn); coutmac-1.listi.score;void index () /* 整理比賽數(shù)據(jù)函數(shù),將輸入的分?jǐn)?shù)賦值給sc */ int i,j,k; for(i=0;in;i+) sci.schnum=i+1; /* 初始化學(xué)校編號(hào) */ sci.num=0; /* 初始化累加數(shù) */ for(i=0;im+w;i+) /* 工程個(gè)數(shù) */ for(j=0;jmai.num;j+) /* 工程名次 */ for(k=0

10、;kn;k+) /* 學(xué)校編號(hào) */ if(mai.listj.schnum=sck.schnum) /* schnum學(xué)校編號(hào) */ sck.listsck.num.matnum=mai.matnum; /*matnum工程編號(hào),運(yùn)動(dòng)工程編號(hào)賦值給SchoolScore的運(yùn)動(dòng)工程*/ sck.listsck.num.position=mai.listj.position;/*Score名次賦值給School*/ sck.listsck.num.score=mai.listj.score; sck.num+; return;void teamsco ( ) /* 團(tuán)體成績(jī)計(jì)算函數(shù) */ int

11、 i,j; for(i=0;in;i+) /* 初始化 */ sci.team=0; sci.mteam=0; sci.fteam=0; for(i=0;in;i+) for(j=0;jsci.num;j+) /*累加*/ sci.team=sci.team+sci.listj.score; /* 團(tuán)體總分成績(jī)計(jì)算 */ if(sci.listj.matnum=m) /*工程編號(hào)小于m,為男子工程*/ sci.mteam=sci.mteam+sci.listj.score; /* 男子團(tuán)體成績(jī)計(jì)算 */ else sci.fteam=sci.fteam+sci.listj.score; /*

12、女子團(tuán)體成績(jī)計(jì)算 */ return; void output ( ) /* 輸出學(xué)校成績(jī)列表函數(shù) */ int i,a; cout按學(xué)校編號(hào)查詢學(xué)校某個(gè)工程的比賽情況endl; cout請(qǐng)輸入學(xué)校編號(hào):a; cout比賽工程編號(hào) 名次 得分endl; for(i=0;isca-1.num;i+) /*num累加數(shù)*/ coutsca-1.listi.matnum sca-1.listi.position sca-1.listi.scoreendl; return; void teamoutput ( ) /* 輸出團(tuán)體報(bào)表函數(shù) */ int i,j,k; for(i=0;iN;i+) cou

13、t 1.按學(xué)校編號(hào)排序輸出 endl; cout 2.按學(xué)??偡峙判蜉敵?endl; cout 3.按學(xué)校男子團(tuán)體總分排序輸出 endl; cout 4.按學(xué)校女子團(tuán)體總分排序輸出 endl; cout 5.返回上一級(jí) endl; cout *j; switch(j) case 1:cout學(xué)校編號(hào) 學(xué)??偡?男子團(tuán)體總分 女子團(tuán)體總分endl; for(i=0;in;i+) coutsci.schnum sci.team sci.mteam sci.fteamendl; break; case 2: for(i=0;iN;i+) helpi=i; /*用輔助數(shù)組幫助排序,輔助數(shù)組改變,而原來(lái)

14、排序不變*/for(i=0;iN;i+) for(j=i+1;jN;j+) if(schelpi.teamscj.team) k=helpi; helpi=helpj; helpj=k; /*用冒泡排序方法從大到小排序*/ cout學(xué)校編號(hào) 學(xué)??偡?男子團(tuán)體總分 女子團(tuán)體總分endl; for(i=0;in;i+) coutschelpi.schnum schelpi.team schelpi.mteam schelpi.fteamendl; break; case 3: for(i=0;iN;i+) helpi=i; /*用輔助數(shù)組幫助排序,輔助數(shù)組改變,而原來(lái)排序不變*/ for(i=0

15、;iN;i+) for(j=i+1;jN;j+) if(schelpi.mteamscj.mteam) k=helpi; helpi=helpj; helpj=k; /*用冒泡排序方法從大到小排序*/ cout學(xué)校編號(hào) 學(xué)校總分 男子團(tuán)體總分 女子團(tuán)體總分endl; for(i=0;in;i+) coutschelpi.schnum schelpi.team schelpi.mteam schelpi.fteamendl; break; case 4: for(i=0;iN;i+) helpi=i; /*用輔助數(shù)組幫助排序,輔助數(shù)組改變,而原來(lái)排序不變*/ for(i=0;iN;i+) for

16、(j=i+1;jN;j+) if(schelpi.fteamscj.fteam) k=helpi; helpi=helpj; helpj=k; /*用冒泡排序方法從大到小排序*/ cout學(xué)校編號(hào) 學(xué)??偡?男子團(tuán)體總分 女子團(tuán)體總分endl; for(i=0;in;i+) coutschelpi.schnum schelpi.team schelpi.mteam schelpi.fteamendl; /按所記下標(biāo)順序輸出 break; case 5: i=N;break;default:cout輸入出錯(cuò)endl;break;void matchoutput ( ) /* 輸出比賽工程名次列表

17、函數(shù) */ int i,t=1; while ( t!=0 ) cout請(qǐng)輸入需要查詢排名的工程編號(hào)1-m+wt; if ( t=0 ) break; else if ( (t0)&(t=m+w) cout比賽工程名次列表 請(qǐng)輸入工程編號(hào):t; cout比賽工程編號(hào) 名次 學(xué)校編號(hào) 得分; for ( i=0;imat-1.num;i+ ) coutmat-1.matnum mat-1.listi.position mat-1.listi.schnum mat-1.listi.scoreendl; void main() /*主菜單*/ int chose;void basic();void

18、matchoutput();void output();void teamsco(); void index(); void teamoutput( ); void input();cout*運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)*endl; for(;) cout 您好,歡送使用運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)系統(tǒng) endl;cout * 1.錄入比賽根本信息 *endl;cout * 2.錄入各個(gè)工程的前三名或前五名的成績(jī) *endl;cout * 3.按學(xué)校編號(hào)查詢學(xué)校某個(gè)工程的情況 *endl;cout * 4.按學(xué)校編號(hào)、學(xué)校總分、男女團(tuán)體總分排序輸出 *endl;cout * 5.按工程編號(hào)查詢?nèi)〉们叭蚯拔迕膶W(xué)

19、校 *endl;cout * 6.清屏; *endl;cout * 7.退出操作; *endl;coutchose; switch(chose) case 1: basic( ); break; case 2: input( ); break; case 3: index(); output(); break; case 4: index(); teamsco( ); teamoutput( ); break; case 5: matchoutput( ); break; case 6 : system(cls); /*清屏功能,美化界面*/break; case 7 : exit(0); c

20、out退出系統(tǒng)!;break; default : cout007 輸入有誤,請(qǐng)重新選擇;break; void basic( ) cout*n; do coutn; if( n20 ) /* 輸出出錯(cuò)信息 */ cin輸入的學(xué)校數(shù)目不正確!請(qǐng)重新輸入!; while ( n20 ); do coutm; if ( m20 ) /* 輸出出錯(cuò)信息 */ cout輸入的男子工程數(shù)目不正確!請(qǐng)重新輸入!; while ( m20 ); do coutw; if ( w20 ) /* 輸出出錯(cuò)信息 */ cout輸入的女子工程數(shù)目不正確!請(qǐng)重新輸入!; while ( w20 ); cout本運(yùn)動(dòng)會(huì)共有n個(gè)學(xué)校參加,共m+w個(gè)比賽工程,男子工程m個(gè),女子工程w個(gè)endl; 調(diào)試分析用戶手冊(cè)2進(jìn)入演示程序后即顯示界面: (3) 請(qǐng)根據(jù)提示進(jìn)行操作,按標(biāo)準(zhǔn)輸入,如上一

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論