




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、東華大學(xué)數(shù)據(jù)結(jié)構(gòu)設(shè)計C語言運動會分數(shù)統(tǒng)計系統(tǒng) 東華大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 實驗報告實驗名稱: 運動會分數(shù)統(tǒng)計系統(tǒng)指導(dǎo)教師: 學(xué)生姓名:學(xué)生學(xué)號:實驗日期: 1 目 錄一、設(shè)計題目 (3)二、任務(wù)(3)三、功能要求和測試數(shù)據(jù) (3)四、需求分析 (4)五、概要設(shè)計(5)5.1系統(tǒng)的流程框圖(5)5.2系統(tǒng)各函數(shù)的功能、相互調(diào)用關(guān)系 (6)六、詳細設(shè)計(5)6.1 各變量的定義和作用 (8)6.2 系統(tǒng)各函數(shù)的功能 (8)七、調(diào)試分析(21)八、用戶手冊 (22)九、測試結(jié)果(22)十、心得體會與參考文獻(22) 2設(shè)計題目運動會分數(shù)統(tǒng)計任務(wù):參加運動會有n個學(xué)校,學(xué)校編號為1n。比賽分成m個男子工
2、程,和w個女子工程。工程編號為男子1m,女子m+1m+w。不同的工程取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些工程取前五名或前三名由學(xué)生自己設(shè)定。m<=20,n<=20功能要求:1) 可以輸入各個工程的前三名或前五名的成績;2) 能統(tǒng)計各學(xué)??偡郑?) 可以按學(xué)校編號、學(xué)校總分、男女團體總分排序輸出;4) 可以按學(xué)校編號查詢學(xué)校某個工程的情況;5) 可以按工程編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校。 測試數(shù)據(jù):學(xué)校數(shù)據(jù) 工程數(shù)據(jù)3需求分析4.1需求分析本程序在運行期間,為了防止在運行大量數(shù)據(jù)時不會出錯,并且能夠在很短
3、的時間內(nèi)將運行結(jié)果穩(wěn)定輸出,就需要系統(tǒng)到達平安性能好,可靠性高,穩(wěn)定性強,處理數(shù)據(jù)迅速等特點,應(yīng)具備一定的實用性。4.1.1功能實現(xiàn)1記錄功能。能記錄一次運動會的所有工程信息,如其編號,名稱,是男子工程還是女子工程,是取前三名還是前五名,以及取得名次的學(xué)校編號;能記錄參加本次運動會的學(xué)校個數(shù),以及學(xué)校的編號,并能添加,修改,刪除其中的信息。2查詢功能。能根據(jù)工程編號查詢在該工程上獲得名次的學(xué)校編號,并按名次先后順序輸出;能根據(jù)學(xué)校編號和工程編號查詢該學(xué)校在該工程上獲得的名次以及得分情況。3統(tǒng)計功能。能統(tǒng)計各個學(xué)校的總分,男子團體總分,女子團體總分。4.1.2相關(guān)規(guī)定:輸入數(shù)據(jù)形式和范圍:20以
4、內(nèi)的整數(shù),也可以輸入學(xué)校的名稱,運動工程的名稱44.1.3輸出形式:有中文提示,各學(xué)校分數(shù)為整形。4.1.4界面要求:有合理的提示,每個功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。概要設(shè)計4.1系統(tǒng)的流程框圖 程序調(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();
5、詳細設(shè)計#include<iostream.h>#include<stdlib.h>#include<conio.h> /*conio是Console Input/Output控制臺輸入輸出的簡寫,其中定義了通過控制臺進行數(shù)據(jù)輸入和數(shù)據(jù)輸出的函數(shù),主要是一些用戶通過按鍵盤產(chǎn)生的對應(yīng)操 5作,比方getch()函數(shù)等等。*/#define N 20 /*參賽學(xué)校數(shù)量*/int helpN;/*成績排序時使用*/int n,m,w; /* 定義代表學(xué)校、男子工程、女子工程數(shù)量的變量 */ int a,b; /* 工
6、程編號,工程名次個數(shù) */struct Score /* 定義工程比賽結(jié)果名次列表元素結(jié)構(gòu)體 */ int schnum; /* 學(xué)校編號*/char name20; /* 姓名 */int position; /* 名次 */int score; /* 得分 */; struct Match /* 定義運動工程結(jié)構(gòu)體 */int matnum; /* 工程編號 */int num; /* 工程名次個數(shù) */struct Score list5; /* 名次列表數(shù)組,結(jié)構(gòu)體數(shù)組*/ma50; struct SchoolScore /* 定義學(xué)校成績單元素 */int matnum; /* 工程
7、編號 */int position; /* 名次 */char name20; /* 姓名 */int score; /* 得分 */; struct School /* 定義學(xué)校結(jié)構(gòu)體 */int schnum; /* 學(xué)校編號 */struct SchoolScore list50; /* 成績單列表數(shù)組 */int team; /* 團體總分 */int mteam; /* 男子團體總分 */int fteam; /* 女子團體總分 */int num; /* 累加數(shù) */sc20; void input ( ) /* 輸入比賽數(shù)據(jù) */ int i,rank,c;cout<
8、;<"請輸入比賽結(jié)果資料"<<endl;for(i=0;i<m+w;i+)mai.matnum=i+1; /* 初始化工程編號matnum */ 6cout<<"請輸入比賽工程編號1-"<<m+w<<endl;cin>>c; /*工程編號*/ if(c>0)&&(c<=m+w)docout&
9、lt;<"選擇名次類型:取前3名輸入3,取前5名輸入5:" /* 判斷名次類型 */ cin>>rank;if (rank=3)mac-1.num=3; /* 工程名次個數(shù)為3 */if(rank=5)mac-1.num=5;else if(rank!=3&&rank!=5)cout<<"輸入錯誤,請重新輸入:" while (rank!=3&&rank!=5);cout<&a
10、mp;lt;"第"<<c<<"項比賽:"<<"取前"<<mac-1.num<<"名"<<endl;for(i=0;i<mac-1.num;i+)mac-1.listi.position=i+1;docout<<endl<&l
11、t;"輸入第"<<i+1<<"名所在學(xué)校編號:"cin>>mac-1.listi.schnum;if(mac-1.listi.schnum<1 | mac-1.listi.schnum>n)cout<<"錯誤!輸入的編號應(yīng)為1-"<<n<<"之間!" /* 輸
12、出出錯信息 */ while (mac-1.listi.schnum<1 | mac-1.listi.schnum>n);cout<<"請輸入該比賽工程學(xué)校得分"cin>>mac-1.listi.score; void index () /* 整理比賽數(shù)據(jù)函數(shù),將輸入的分數(shù)賦值給sc */int i,j,k;for(i=0;i<n;i+)sci.schnum=i+1; /* 初始化學(xué)校編號 */sci.num=0; /* 初始化累加數(shù) */for(i=0;i&a
13、mp;lt;m+w;i+) /* 工程個數(shù) */for(j=0;j<mai.num;j+) /* 工程名次 */for(k=0;k<n;k+) /* 學(xué)校編號 */if(mai.listj.schnum=sck.schnum) /* schnum學(xué)校編號 */ 7sck.listsck.num.matnum=mai.matnum; /*matnum工程編號,運動工程編號賦值給SchoolScore的運動工程*/sck.listsck.num.position=mai.listj.position;/*Score名次賦值給School*/sck.listsck.num
14、.score=mai.listj.score;sck.num+;return; void teamsco ( ) /* 團體成績計算函數(shù) */int i,j;for(i=0;i<n;i+) /* 初始化 */sci.team=0;sci.mteam=0;sci.fteam=0;for(i=0;i<n;i+)for(j=0;j<sci.num;j+) /*累加*/sci.team=sci.team+sci.listj.score; /* 團體總分成績計算 */if(sci.listj.matnum<=m) /*工程編號小于m,為男子工程*/
15、sci.mteam=sci.mteam+sci.listj.score; /* 男子團體成績計算 */else sci.fteam=sci.fteam+sci.listj.score; /* 女子團體成績計算 */return; void output ( ) /* 輸出學(xué)校成績列表函數(shù) */int i,a;cout<<"按學(xué)校編號查詢學(xué)校某個工程的比賽情況"<<endl;cout<<"請輸入學(xué)校編號:"<<en
16、dl;cin>>a;cout<<"比賽工程編號 名次 得分"<<endl;for(i=0;i<sca-1.num;i+) /*num累加數(shù)*/cout<<sca-1.listi.matnum<<" "<<sca-1.listi.position<<" "<&l
17、t;sca-1.listi.score<<endl;return; 8void teamoutput ( ) /* 輸出團體報表函數(shù) */int i,j,k;for(i=0;i<N;i+) cout<< " 1.按學(xué)校編號排序輸出 "<<endl;cout<< " 2.按學(xué)??偡峙判蜉敵?"<<endl;cout<< " 3.
18、按學(xué)校男子團體總分排序輸出 "<<endl;cout<< " 4.按學(xué)校女子團體總分排序輸出 "<<endl;cout<< " 5.返回上一級 "<<endl;cout<<" *"<<endl; cin>>j;switch(j)case 1:cout
19、<<"學(xué)校編號 學(xué)校總分 男子團體總分 女子團體總分"<<endl;for(i=0;i<n;i+)cout<<sci.schnum<<" "<<sci.team<<" "<<sci.mteam<<" "<
20、<sci.fteam<<endl;break;case 2:for(i=0;i<N;i+)helpi=i; /*用輔助數(shù)組幫助排序,輔助數(shù)組改變,而原來排序不變*/for(i=0;i<N;i+)for(j=i+1;j<N;j+)if(schelpi.team<scj.team)k=helpi;helpi=helpj;helpj=k; /*用冒泡排序方法從大到小排序*/cout<<"學(xué)校編號 學(xué)校總分 男子團體總分 女子團體總分"&am
21、p;lt;<endl;for(i=0;i<n;i+)cout<<schelpi.schnum<<" "<<schelpi.team<<" "<<schelpi.mteam<<" "<<schelpi.fteam<<endl;break;9c
22、ase 3:for(i=0;i<N;i+)helpi=i; /*用輔助數(shù)組幫助排序,輔助數(shù)組改變,而原來排序不變*/ for(i=0;i<N;i+)for(j=i+1;j<N;j+)if(schelpi.mteam<scj.mteam)k=helpi;helpi=helpj;helpj=k; /*用冒泡排序方法從大到小排序*/cout<<"學(xué)校編號 學(xué)??偡?男子團體總分 女子團體總分"<<endl;for(i=0;i<n;i+)co
23、ut<<schelpi.schnum<<" "<<schelpi.team<<" "<<schelpi.mteam<<" "<<schelpi.fteam<<endl;break;case 4:for(i=0;i<N;i+)helpi=i; /*用輔助數(shù)
24、組幫助排序,輔助數(shù)組改變,而原來排序不變*/ for(i=0;i<N;i+)for(j=i+1;j<N;j+)if(schelpi.fteam<scj.fteam)k=helpi;helpi=helpj;helpj=k; /*用冒泡排序方法從大到小排序*/cout<<"學(xué)校編號 學(xué)校總分 男子團體總分 女子團體總分"<<endl;for(i=0;i<n;i+)cout<<schelpi.schnum<&am
25、p;lt;" "<<schelpi.team<<" "<<schelpi.mteam<<" "<<schelpi.fteam<<endl; /按所記下標順序輸出break;case 5: i=N;break;default:cout<<"輸入出錯"&l
26、t;<endl;break;void matchoutput ( ) /* 輸出比賽工程名次列表函數(shù) */10int i,t=1;while ( t!=0 )cout<<"請輸入需要查詢排名的工程編號1-"<<m+w<<"輸入0進入下一界面:" cin>>t;if ( t=0 ) break;else if ( (t>0)&&(t<=m+w
27、)cout<<"比賽工程名次列表 請輸入工程編號:"<<t;cout<<"比賽工程編號 名次 學(xué)校編號 得分"for ( i=0;i<mat-1.num;i+ )cout<<mat-1.matnum<<" "<<mat-1.listi.position<<" &a
28、mp;quot;<<mat-1.listi.schnum<<" "<<mat-1.listi.score<<endl; void main() /*主菜單*/int chose;void basic();void matchoutput();void output();void teamsco();void index();void teamoutput( );void input();cout<<"*
29、運動會分數(shù)統(tǒng)計系統(tǒng)*"<<endl;for(;)cout<<" 您好,歡送使用運動會分數(shù)統(tǒng)計系統(tǒng)系統(tǒng) "<<endl; cout<<" * 1.錄入比賽根本信息 *"<<endl; cout<<" * 2.錄入各個工程的前三名或前五名的成績 *"<<endl; cout&
30、;lt;<" * 3.按學(xué)校編號查詢學(xué)校某個工程的情況 *"<<endl; cout<<" * 4.按學(xué)校編號、學(xué)??偡帧⒛信畧F體總分排序輸出 *"<<endl; cout<<" * 5.按工程編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校 *"<<endl; cout<<" * 6.清屏; *&q
31、uot;<<endl; cout<<" * 7.退出操作; *"<<endl; cout<<" 您選擇的操作選項是: " cin>>chose;switch(chose)11case 1: basic( );break;case 2: input( );break;case 3: index();output();break;case 4:index();teamsco( );team
32、output( );break;case 5: matchoutput( );break;case 6 :system("cls"); /*清屏功能,美化界面*/ break;case 7 : exit(0);cout<<"退出系統(tǒng)!"break;default :cout<<"007 輸入有誤,請重新選擇" break; void basic( )cout<<"*n"
33、 do12cout<<" 請輸入?yún)⒓舆\動會的學(xué)校個數(shù): "cin>>n;if( n<=0 | n>20 ) /* 輸出出錯信息 */cin>>"輸入的學(xué)校數(shù)目不正確!請重新輸入!"while ( n<=0 | n>20 );docout<<"有多少個男子工程:"cin>>m;if ( m&
34、;lt;0 | m>20 ) /* 輸出出錯信息 */cout<<"輸入的男子工程數(shù)目不正確!請重新輸入!"while ( m<0 | m>20 );docout<<"有多少個女子工程:"cin>>w;if ( w<0 | w>20 ) /* 輸出出錯信息 */cout<<"輸入的女子工程數(shù)目不正確!請重新輸入!"while ( w&l
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小鹿斑比成長之旅解讀
- 家庭農(nóng)場養(yǎng)殖技術(shù)推廣協(xié)議
- 時尚潮玩商品網(wǎng)絡(luò)銷售合作權(quán)責(zé)共擔協(xié)議
- 昆蟲記選讀教學(xué)教案:初中生物與自然知識結(jié)合學(xué)習(xí)指導(dǎo)
- 應(yīng)對項目管理中的風(fēng)險應(yīng)對策略
- 海底兩萬里的冒險之旅教案設(shè)計
- 養(yǎng)老服務(wù)機構(gòu)投資建設(shè)合同
- 高端設(shè)備采購與維護合同
- 花木蘭報國傳奇故事解讀
- 租賃戶外場地合同協(xié)議書
- 2025年南昌理工學(xué)院單招職業(yè)傾向性測試題庫帶答案
- 2025年度未成年人監(jiān)護權(quán)轉(zhuǎn)移協(xié)議書模板
- 2025年湖南鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案1套
- GB/T 45241-2025公務(wù)用車管理平臺數(shù)據(jù)規(guī)范
- 河南2025年河南職業(yè)技術(shù)學(xué)院招聘30人筆試歷年參考題庫附帶答案詳解
- IATF16949:2024標準質(zhì)量手冊
- 請款單(可直接打印-標準模板)
- PMC部門工作流程圖
- Oracle-EBS模塊講解
- 漿砌條石磚項施工方案
- 帶你領(lǐng)略淵海子平
評論
0/150
提交評論