版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、通達(dá)學(xué)院專業(yè)課程設(shè)計(jì)II題 目: 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì) 專 業(yè) 計(jì)算機(jī)通信 學(xué) 生 姓 名 班 級(jí) 學(xué) 號(hào) 09002829 指 導(dǎo) 教 師 沙超 指 導(dǎo) 單 位 計(jì)算機(jī)學(xué)院 日 期 2012年6月13日 教師評(píng)語(yǔ)同學(xué)出勤率(滿勤、較高、一般,較低),學(xué)習(xí)態(tài)度(端正、較端正、一般、較差),程序設(shè)計(jì)基礎(chǔ)(好、較好、一般、較差),演示程序(已經(jīng)、沒有)達(dá)到了基本要求,算法設(shè)計(jì)(好、較好、一般),界面友好程度(好、較好、一般),答辯過(guò)程中回答問題(準(zhǔn)確、較準(zhǔn)確、錯(cuò)誤率較高),撰寫報(bào)告格式(規(guī)范、一般)、內(nèi)容(豐滿、簡(jiǎn)單)、表述(清晰、一般、不清楚),(圓滿、較好、基本)完成了課題任務(wù)。 教師簽名: 年 月
2、 日成績(jī)?cè)u(píng)定備 注運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)一、 課題內(nèi)容和要求題目描述:參加運(yùn)動(dòng)會(huì)的有n個(gè)學(xué)校,學(xué)校編號(hào)為1.n。比賽分成m個(gè)男子項(xiàng)目和w個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子1.m,女子m+1.m+w。不同的項(xiàng)目取前五名或者前三名。對(duì)于取前五名的項(xiàng)目,其積分分別為:7、5、3、2、1,對(duì)于取前三名的項(xiàng)目,其積分分別為:5、3、2。哪些成績(jī)?nèi)∏叭?,哪些取前五名,由編程者自己設(shè)定。(m<=20,n<=20)基本要求:1)后臺(tái)管理者可以輸入各個(gè)項(xiàng)目的前三名或者前五名的成績(jī)2)系統(tǒng)可以統(tǒng)計(jì)各個(gè)學(xué)校的總分3)可以按照學(xué)校編號(hào)或名稱、學(xué)??偡帧⒛信畧F(tuán)體總分排序輸出4)可以按照學(xué)校編號(hào)查詢學(xué)校的某個(gè)項(xiàng)目的情況,并
3、可以按照項(xiàng)目編號(hào)查詢?nèi)〉们叭蛘咔拔迕膶W(xué)校5)有完善的出錯(cuò)處理機(jī)制,最終的運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)一為整數(shù)提高要求:1)有圖形界面、功能菜單2)能夠?qū)⑺蟹e分信息保存為文件二、概要設(shè)計(jì) 1. 本系統(tǒng)的流程圖如下:(流程圖較大,在下頁(yè)顯示)YNNNYCase1Case3NYYY開始-初始化輸入輸入某項(xiàng)目各名次成績(jī)輸入學(xué)校及男女項(xiàng)目范圍繼續(xù)輸入查詢各學(xué)校成績(jī)Case2查詢團(tuán)體總分成績(jī)查詢輸出查詢學(xué)校成績(jī)繼續(xù)結(jié)束退出繼續(xù)2. 本系統(tǒng)采用的存儲(chǔ)結(jié)構(gòu)為結(jié)構(gòu)化設(shè)計(jì)理念,這是數(shù)據(jù)庫(kù)的最基本的設(shè)計(jì)要求,主要包括三個(gè)數(shù)據(jù)表:(1) 項(xiàng)目數(shù)據(jù)表:運(yùn)動(dòng)會(huì)開始前必須詳細(xì)制定本次運(yùn)動(dòng)會(huì)所需的參賽項(xiàng)目為接下來(lái)報(bào)名、場(chǎng)地的準(zhǔn)備提供
4、依據(jù)。本數(shù)據(jù)表根據(jù)要求設(shè)計(jì)存儲(chǔ)每個(gè)項(xiàng)目的編號(hào)、取得前幾名名次的數(shù)目、要取的名次以及各個(gè)名次對(duì)應(yīng)的分?jǐn)?shù)。在初始輸入時(shí)僅輸入項(xiàng)目編號(hào)、名稱及要取的名次,而各名次對(duì)應(yīng)的分?jǐn)?shù)將由系統(tǒng)自動(dòng)統(tǒng)計(jì)。這也有利于以后項(xiàng)目情況的查詢。typedef structint itemnum; /項(xiàng)目編號(hào) int top; /取名次的數(shù)目int range5; /名次int mark5; /分?jǐn)?shù) itemnode; /定義項(xiàng)目結(jié)點(diǎn)的類型(2) 學(xué)校數(shù)據(jù)表:本數(shù)據(jù)表儲(chǔ)存了各個(gè)參賽學(xué)校的總體情況,包括學(xué)校的編號(hào)、男子團(tuán)體總分、女子團(tuán)體總分和學(xué)??偡?。其中學(xué)校編號(hào)是提前輸入的,而其他三項(xiàng)內(nèi)容將由系統(tǒng)進(jìn)行自動(dòng)統(tǒng)計(jì)。 typede
5、f structint schoolnum; /學(xué)校編號(hào)int score; /學(xué)校總分int mscore; /男團(tuán)體總分int wscore; /女團(tuán)體總分itemnode cm+w; /項(xiàng)目數(shù)組headnode;/定義頭結(jié)點(diǎn)類型 這兩個(gè)數(shù)據(jù)表之間由項(xiàng)目編號(hào)和學(xué)校編號(hào)進(jìn)行相關(guān)聯(lián)接,形成一個(gè)整體。三、詳細(xì)設(shè)計(jì) 源程序代碼:#include<stdio.h>#include<iostream.h>#include <conio.h>#include <process.h>#define n 4 /學(xué)校數(shù)目 #define m 2 /男子項(xiàng)目數(shù)目
6、#define w 2 /女子項(xiàng)目數(shù)目#define null 0typedef struct int itemnum; /項(xiàng)目編號(hào) int top; /取名次的數(shù)目 int range5; /名次 int mark5; /分?jǐn)?shù)itemnode; /定義項(xiàng)目結(jié)點(diǎn)的類型typedef structint schoolnum; /學(xué)校編號(hào) int score; /學(xué)校總分 int mscore; /男團(tuán)體總分 int wscore; /女團(tuán)體總分 itemnode cm+w; /項(xiàng)目數(shù)組headnode; /定義頭結(jié)點(diǎn)類型headnode hn; /定義一個(gè)頭結(jié)點(diǎn)數(shù)組void input() /輸
7、入信息,建立系統(tǒng)int i,j,k,s;/*初始化頭結(jié)點(diǎn)* for(i=0;i<n;i+) hi.score=0; hi.mscore=0; hi.wscore=0; /*輸入頭結(jié)點(diǎn)信息* for(i=0;i<n;i+) cout<<"*學(xué)校編號(hào):" cin>>hi.schoolnum; /*輸入項(xiàng)目信息* for(j=0;j<m+w;j+) cout<<"*項(xiàng)目編號(hào):" cin>>hi.cj.itemnum; cout<<"*取前3名or前5名:" cin
8、>>hi.cj.top; cout<<"*獲得幾個(gè)名次:" cin>>k; for(s=0;s<5;s+) hi.cj.ranges=0, hi.cj.marks=0; for(s=0;s<k;s+) cout<<"*名次:" cin>>hi.cj.ranges; if(hi.cj.top=3) switch(hi.cj.ranges) case 0: hi.cj.marks=0; break; case 1: hi.cj.marks=5; break; case 2: hi.cj.
9、marks=3; break; case 3: hi.cj.marks=2; break; else switch(hi.cj.ranges) case 0: hi.cj.marks=0; break; case 1: hi.cj.marks=7; break; case 2: hi.cj.marks=5; break; case 3: hi.cj.marks=3; break; case 4: hi.cj.marks=2; break; case 5: hi.cj.marks=1; break; hi.score=hi.score+hi.cj.marks; /按取前三名還是取前五名分別記分
10、if(j<=m-1) hi.mscore=hi.mscore+hi.cj.marks; /是男子項(xiàng)目則記到男子分?jǐn)?shù)里面去 else hi.wscore=hi.wscore+hi.cj.marks; /是女子項(xiàng)目則記到女子項(xiàng)目里面去 cout<<endl; cout<<endl; /*輸出函數(shù)*void output() int choice,i,j,k;int sign; do cout<<"* 1.按學(xué)校編號(hào)輸出 *"<<endl; cout<<"* 2.按學(xué)??偡州敵?*"<&l
11、t;endl; cout<<"* 3.按男團(tuán)總分輸出 *"<<endl; cout<<"* 4.按女團(tuán)總分輸出 *"<<endl;cout<<endl; cout<<"* 請(qǐng)選擇編號(hào):" cin>>choice;cout<<endl; switch(choice) case 1:/*按編號(hào)順序輸出for(i=0;i<n;i+) cout<<"*學(xué)校編號(hào):"<<hi.schoolnum<
12、<endl; cout<<"*學(xué)??偡?"<<hi.score<<endl; cout<<"*男團(tuán)總分:"<<hi.mscore<<endl; cout<<"*女團(tuán)總分:"<<hi.wscore<<endl;cout<<endl; break; case 2:/*按學(xué)??偡州敵?for(i=0;i<n;i+) for(j=i+1;j<n;j+)if(hi.score<hj.score)k=i;
13、 i=j; j=k; for(i=0;i<n;i+) cout<<"*學(xué)校編號(hào):"<<hi.schoolnum<<endl; cout<<"*學(xué)??偡?"<<hi.score<<endl; cout<<"*男團(tuán)總分:"<<hi.mscore<<endl; cout<<"*女團(tuán)總分:"<<hi.wscore<<endl; cout<<endl; break;
14、 case 3:/*按男團(tuán)總分輸出 for(i=0;i<n;i+) for(j=i+1;j<n;j+) if(hi.mscore<hj.mscore)k=i; i=j; j=k; for(i=0;i<n;i+) cout<<"*學(xué)校編號(hào):"<<hi.schoolnum<<endl; cout<<"*學(xué)??偡?"<<hi.score<<endl; cout<<"*男團(tuán)總分:"<<hi.mscore<<end
15、l; cout<<"*女團(tuán)總分:"<<hi.wscore<<endl;cout<<endl; break; case 4:/*按女團(tuán)總分輸出 for(i=0;i<n;i+) for(j=i+1;j<n;j+) if(hi.wscore<hj.wscore) k=i; i=j; j=k; for(i=0;i<n;i+) cout<<"*學(xué)校編號(hào):"<<hi.schoolnum<<endl; cout<<"*學(xué)??偡?"
16、<<hi.score<<endl; cout<<"*男團(tuán)總分:"<<hi.mscore<<endl; cout<<"*女團(tuán)總分:"<<hi.wscore<<endl; cout<<endl; break; cout<<"請(qǐng)選擇 2-繼續(xù),0-跳出"<<endl; cin>>sign;while(sign=2); /* 查詢函數(shù):提供兩種查詢方式*void inquiry()int choice
17、;int i,j,k,s;cout<<"*1:按學(xué)校編號(hào)查詢"<<endl;cout<<"*2:按項(xiàng)目編號(hào)查詢"<<endl;cout<<"*請(qǐng)選擇查詢方式:" cin>>choice;cout<<endl; switch(choice) case 1: do cout<<"要查詢的學(xué)校編號(hào):"cin>>i;cout<<endl;if(i>n)cout<<"錯(cuò)誤:這個(gè)學(xué)
18、校沒有參加此次運(yùn)動(dòng)會(huì)!"<<endl; elsecout<<"要查詢的項(xiàng)目編號(hào):" cin>>j; if(j>m+w|j=0) cout<<"此次運(yùn)動(dòng)會(huì)沒有這個(gè)項(xiàng)目"<<endl; else cout<<"這個(gè)項(xiàng)目取前"<<h0.cj-1.top<<"名,該學(xué)校的成績(jī)?nèi)缦?"<<endl; for(k=0;k<5;k+) if(hi-1.cj-1.rangek!=0) cout<&
19、lt;"名次:"<<hi-1.cj-1.rangek<<endl; cout<<"請(qǐng)選擇 2-繼續(xù), 0-跳出"<<endl;cin>>s;cout<<endl;while(s=2); break; case 2: do cout<<"要查詢的項(xiàng)目編號(hào):"cin>>s;cout<<endl;if(s>m+w|s=0)cout<<"此次運(yùn)動(dòng)會(huì)不包括這個(gè)項(xiàng)目."<<endl;else
20、cout<<"該項(xiàng)目取前"<<h0.cs-1.top<<"名,取得名次的學(xué)校"<<endl;for(i=0; i<n;i+) for(j=0;j<5;j+) if(hi.cs-1.rangej!=0) cout<<"學(xué)校編號(hào):"<<hi.schoolnum<<"名次:"<<hi.cs-1.rangej<<endl; cout<<"2-繼續(xù),0-跳出"<<
21、endl;cin>>i;cout<<endl;while(i=2); break;/*把數(shù)據(jù)存儲(chǔ)在文件中*void writedata() FILE *report; int i; if(report=fopen("sportsdata.txt","w")=null) cout<<"不能打開文件!"<<endl; exit(1); for(i=0;i<n;i+)fwrite(&hi,sizeof(headnode),1,report); fclose(report); /*
22、讀出文件中數(shù)據(jù)的函數(shù)*void readdata() FILE *report; int i,j,k,s; if(report=fopen("sportsdata.txt","r")=null) cout<<"不能打開文件!"<<endl; exit(1); /*按照讀一個(gè)數(shù)據(jù)就輸出一個(gè)數(shù)據(jù)的方式顯示數(shù)據(jù)內(nèi)容* for(i=0;i<n;i+) cout<<"*學(xué)校編號(hào):" fread(&k,sizeof(int),1,report); cout<<k&l
23、t;<endl; cout<<"*學(xué)校總分:" fread(&k,sizeof(int),1,report); cout<<k<<endl; cout<<"*男團(tuán)總分:" fread(&k,sizeof(int),1,report); cout<<k<<endl; cout<<"*女團(tuán)總分:" fread(&k,sizeof(int),1,report); cout<<k<<endl; cout&l
24、t;<endl; getch(); for(j=0;j<m+w;j+) cout<<"*項(xiàng)目編號(hào):" fread(&k,sizeof(int),1,report); cout<<k<<endl; cout<<"*所取名次數(shù)量:" fread(&k,sizeof(int),1,report); cout<<k<<endl; for(s=0;s<5;s+) fread(&k,sizeof(int),1,report); if(k!=0) cout
25、<<"*名次:"<<k<<endl; for(s=0;s<5;s+) fread(&k,sizeof(int),1,report); if(k!=0) cout<<"*分?jǐn)?shù):"<<k<<endl; cout<<endl; getch(); fclose(report); /*主函數(shù)*void main() int choice;cout<<endl;cout<<"=歡迎使用運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)="<<en
26、dl; cout<<" -BY:09002829 "<<endl;cout<<endl;cout<<endl; cout<<"* 1.輸入信息 *"<<endl; cout<<"* 2.輸出信息 *"<<endl; cout<<"* 3.查詢信息 *"<<endl; cout<<"* 4.調(diào)用信息 *"<<endl; cout<<"
27、* 5.退出系統(tǒng) *"<<endl; cout<<endl; cout<<"="<<endl;cout<<endl;cout<<"*請(qǐng)選擇要實(shí)現(xiàn)步驟的編號(hào):"cin>>choice;cout<<endl;switch(choice) case 1: input();writedata();readdata();main(); case 2: output();main(); case 3: inquiry();main(); case 4: read
28、data();main(); case 5: exit(0); default: exit(0); 四、測(cè)試數(shù)據(jù)及其結(jié)果分析1進(jìn)入主界面選擇信息錄入2.設(shè)定4個(gè)學(xué)校編號(hào)為1、2、3、4,男生項(xiàng)目編號(hào)為1、2,女生項(xiàng)目為3、4。依次錄入各學(xué)校信息3.錄入后系統(tǒng)自動(dòng)對(duì)數(shù)據(jù)進(jìn)行處理,得出總分。4.信息錄入完畢,自動(dòng)保存到TXT文檔5.選擇返回主界面6.按照學(xué)校編號(hào)排序輸出7. 按照學(xué)校總分排序輸出8.按照男團(tuán)總分排序輸出9按照女團(tuán)總分排序輸出10.學(xué)校編號(hào)查詢11.無(wú)學(xué)校編號(hào)情況下報(bào)錯(cuò)提示12.項(xiàng)目查詢13項(xiàng)目查詢無(wú)此項(xiàng)目報(bào)錯(cuò)提示14.調(diào)用之前保存文檔中的信息15.無(wú)文本文檔,提示調(diào)用出錯(cuò)五、課程設(shè)計(jì)總結(jié)(1).調(diào)試中所遇到的較重要問題的回顧:1) 提出問題:在輸出時(shí),調(diào)用冒泡排序法時(shí),輸出總是報(bào)錯(cuò),無(wú)法執(zhí)行。 分析問題:在分析的時(shí)候檢查到,自己調(diào)用了一個(gè)第三參數(shù)當(dāng)做下標(biāo),直接使用下標(biāo)進(jìn)行數(shù)組的交換。然后經(jīng)過(guò)檢查發(fā)現(xiàn),此下標(biāo)是多余的,沒有必要引入,依靠當(dāng)前的元素完全可以滿足功能需求。解決問題:去掉引入的第三方下標(biāo)。2) 提出問題:設(shè)置選項(xiàng),供用戶輸入選擇時(shí),當(dāng)按任意鍵時(shí)都會(huì)跳入下一步操作,或者直接退出系統(tǒng)。分析問題:在供用
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)教學(xué)工作計(jì)劃模板錦集四篇
- 耐材項(xiàng)目建議書(立項(xiàng)報(bào)告)
- 勞動(dòng)小能手小班教案
- 幼兒園中班教案《路線圖》及教學(xué)反思
- 2021八年級(jí)歡慶中秋節(jié)滿分作文五篇
- 大學(xué)生曠課檢討書集合15篇
- 高中軍訓(xùn)心得15篇
- 初中體育教師學(xué)期教學(xué)工作計(jì)劃范文
- 人才公寓(原公租房)項(xiàng)目第三方檢測(cè)和監(jiān)測(cè)服務(wù)招標(biāo)文件
- 2025年食品級(jí)纖維素醚項(xiàng)目發(fā)展計(jì)劃
- IB課程-PYP小學(xué)項(xiàng)目省公開課獲獎(jiǎng)?wù)n件說(shuō)課比賽一等獎(jiǎng)?wù)n件
- 上市央國(guó)企數(shù)智化進(jìn)程中人才就業(yè)趨勢(shì)
- 2024-2030年中國(guó)苯胺行業(yè)現(xiàn)狀動(dòng)態(tài)與需求前景展望報(bào)告
- 英雄之旅思維模型
- 釘釘數(shù)字化管理師中級(jí)題庫(kù)
- 解一元二次方程(公式法)(教學(xué)設(shè)計(jì))-九年級(jí)數(shù)學(xué)上冊(cè)同步備課系列
- 2024版小學(xué)科學(xué)六年級(jí)上冊(cè)第四單元《能量》教學(xué)課件
- 2024年秋新滬教牛津版英語(yǔ)三年級(jí)上冊(cè) Unit 6 第1課時(shí) 教學(xué)課件
- 江蘇揚(yáng)州中學(xué)教育集團(tuán)2023-2024學(xué)年中考三模數(shù)學(xué)試題含解析
- 2025年統(tǒng)編版高考?xì)v史一輪復(fù)習(xí):北洋軍閥統(tǒng)治時(shí)期的政治、經(jīng)濟(jì)與文化 講義
- TSHZSAQS 00255-2024 食葵病蟲害防治技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論