版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 目錄目錄: 1 1. .需需求求分分析析:.4 功能要求:.4 性能需求:.4 2 2. .概概要要設(shè)設(shè)計(jì)計(jì):.4 1.存儲(chǔ)結(jié)構(gòu)設(shè)計(jì):.4 2.流程圖設(shè)計(jì):.6 3 3. .詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì):.10 4.菜菜單單窗窗口口:.19 1.主菜單窗口.19 2. 輸入各個(gè)項(xiàng)目成績(jī)并存儲(chǔ)文件.19 3. 統(tǒng)計(jì)各學(xué)校總分.22 4. 按學(xué)校編號(hào)排序輸出.23 5. 按學(xué)??偡峙判蜉敵?23 6. 按男團(tuán)體總分排序輸出.24 7. 按女團(tuán)體總分排序輸出.24 8. 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況.25 9. 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校.25 10 退出.25 5 5. .課課程程設(shè)設(shè)計(jì)計(jì)總總結(jié)結(jié)與與
2、體體會(huì)會(huì):.26 6 6. .致致謝謝:.26 2 1.1. 需求分析:需求分析: 1 1 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)(難度運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)(難度*) 任務(wù):參加運(yùn)動(dòng)會(huì)有 10 個(gè)學(xué)校,學(xué)校編號(hào)為 110。比賽分成 18 個(gè)男子項(xiàng)目,和 12 個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子 118,女子 1930。不同的項(xiàng)目取前三名積分,前 三名的積分分別為:5、3、2。 功能要求: b)可以輸入各個(gè)項(xiàng)目的前三名的成績(jī); c)能統(tǒng)計(jì)各學(xué)校總分; d)可以按學(xué)校編號(hào)或名稱、學(xué)校總分、男女團(tuán)體總分排序輸出; e)數(shù)據(jù)存入文件并能隨時(shí)查詢 f)規(guī)定:輸入數(shù)據(jù)形式和范圍:可以輸入學(xué)校的名稱,運(yùn)動(dòng)項(xiàng)目的名稱 輸出形式:有中文提示,各學(xué)校
3、分?jǐn)?shù)為整型 存儲(chǔ)結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計(jì),但是要求運(yùn)動(dòng)會(huì)的相關(guān)數(shù)據(jù)要存儲(chǔ) 在數(shù)據(jù)文件中。 (數(shù)據(jù)文件的數(shù)據(jù)讀寫方法等相關(guān)內(nèi)容在 java 語言程序設(shè) 計(jì)的書上,請(qǐng)自學(xué)解決)請(qǐng)?jiān)谧詈蟮纳辖毁Y料中指明你用到的存儲(chǔ)結(jié)構(gòu); 測(cè)試數(shù)據(jù):測(cè)試數(shù)據(jù)及測(cè)試結(jié)果請(qǐng)?jiān)谏辖坏馁Y料中寫明; 性能需求:性能需求: 輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整形 界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān) 的功能要求。 存儲(chǔ)結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計(jì),但是要求運(yùn)動(dòng)會(huì)的相關(guān)數(shù)據(jù) 要存儲(chǔ)在數(shù)據(jù)文件中。 2.2.概要設(shè)計(jì):概要設(shè)計(jì): 1.流程圖設(shè)計(jì):流程圖設(shè)計(jì): main()函數(shù)流程
4、圖 3 開始 int t !g2|!g1 exit(1); system(cls); 選擇操作編號(hào) 123456789 4 school *p1 和和 items *p2 !p1|!p2 exit(1) ; y printf()() ; w20 n yyy printf(“輸入有誤輸入有誤”)printf(“輸入有誤輸入有誤”)printf(“輸入有誤輸入有誤”) nnn y 請(qǐng)選擇請(qǐng)選擇 1.前三名前三名 2.前五名前五名 !1 kn; printf(%dttt ,k,g2-bk.score); k+ printf(“n”); 結(jié)束 開始 int i=2,j,k; in printf(%dt
5、,k); system(pause); 結(jié)束 y n multiplex i+ k=1 kn printf(%d tt%dn,g2-bk.school,g2-bk.score); k+ n y 開始 int i=2,j,k; in printf(%dt,k); system(pause); 結(jié)束 y n multiplex i+ k=1 kn printf(%d tt%dn,g2-bk.school,g2-bk.score); k+ n y save()函數(shù)流程圖 funct2()函數(shù)流程圖 funct3()函數(shù)流程圖 funct4()函數(shù)流程圖 6 開始 int i=2,j,k; in pr
6、intf(%dt,k); system(pause); 結(jié)束 y n multiplex i+ k=1 kn printf(%dtt %dn,g2-bk.school,g2-bk.boys); k+ n y 開始 int i=2,j,k; in printf(%dt,k); system(pause); 結(jié)束 y n multiplex i+ k=1 kn printf(%dtt %dn,g2-bk.school,g2-bk.girls); k+ n y 開始 int i=2,j,k; p2!=null; 結(jié)束 y n p2item,p2-record); p2=p2-next; printf
7、(n); y n 開始 int i p2!=null; 結(jié)束 n printf(n); printf( 學(xué)校%d:得%d 分 ,p1-school,p1-record); y funct5()函數(shù)流程圖 funct6()函數(shù)流程圖 funct7()函數(shù)流程圖 funct8()函數(shù)流程圖 7 3.3.詳細(xì)設(shè)計(jì):詳細(xì)設(shè)計(jì): #include #include #include #include #include #define n 2/學(xué)校數(shù)目 #define m 1/男子項(xiàng)目數(shù)目 #define w 1/女子項(xiàng)目數(shù)目 #define null 0 typedef struct int itemn
8、um; /項(xiàng)目編號(hào) int top; /取名次的數(shù)目 int range3; /名次 int mark3; /分?jǐn)?shù) itemnode; /定義項(xiàng)目結(jié)點(diǎn)的類型 typedef struct int 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 inputinformation() /輸入信息,建立系統(tǒng) int i,j,k,s; for(i=0;in;i+) hi.sc
9、ore=0; hi.mscore=0; hi.wscore=0; /初始化頭結(jié)點(diǎn) for(i=0;in;i+) printf(*學(xué)校編號(hào):); scanf(%d, /輸入頭結(jié)點(diǎn)信息 8 for(j=0;jm+w;j+) printf(*項(xiàng)目編號(hào):); scanf(%d, printf(*取前 3 名n); /scanf(%d, printf(*獲得幾個(gè)名次:); scanf(%d, /輸入項(xiàng)目信息 for(s=0;s3;s+) hi.cj.ranges=0, hi.cj.marks=0; /初始化排名和分?jǐn)?shù) for(s=0;sk;s+) printf(*名次:); scanf(%d, /輸入所
10、獲名次信息 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.marks=3; break; case 3: hi.cj.marks=2; break; hi.score=hi.score+hi.cj.marks; /按取前三名 if(j=m-1) hi.mscore=hi.mscore+hi.cj.marks; /是男子項(xiàng)目則記到男子分?jǐn)?shù)里面去 else hi.wscore=hi.wscore+hi.cj.marks; /
11、是女子項(xiàng)目則記到女子項(xiàng)目里面去 printf(n); void output() /輸出函數(shù) int choice,i,j,k; int remembern; int sign; do 9 printf(*1.按學(xué)校編號(hào)輸出.*n); printf(*2.按學(xué)??偡州敵?*n); printf(*3.按男團(tuán)總分輸出.*n); printf(*4.按女團(tuán)總分輸出.*n); printf(nn* 請(qǐng)選擇編號(hào)*nn:); scanf(%d, switch(choice) case 1: for(i=0;in;i+) printf(nn*學(xué)校編號(hào):%dn,hi.schoolnum); printf(*
12、學(xué)??偡?%dn ,hi.score); printf(*男團(tuán)總分:%dn,hi.mscore); printf(*女團(tuán)總分: %dnnn,hi.wscore); /按編號(hào)順序輸出 break; case 2: for(i=0;in;i+) rememberi=i; for(i=0;in;i+) for(j=i+1;jn;j+) if(hrememberi.scorehj.score) k=rememberi; rememberi=rememberj,rememberj=k; / 用冒泡排序方法,用輔助數(shù)組記住頭結(jié)點(diǎn)下標(biāo) for(i=0;in;i+) printf(nn*學(xué)校編號(hào):%dn,hr
13、ememberi.schoolnum); printf(*學(xué)??偡?%dn ,hrememberi.score); printf(*男團(tuán)總分:%dn,hrememberi.mscore); printf(*女團(tuán)總分: %dnnn,hrememberi.wscore); /按所記下標(biāo)順序輸出 /按學(xué)??偡州敵?break; case 3: for(i=0;in;i+) rememberi=i; for(i=0;in;i+) for(j=i+1;jn;j+) 10 if(hrememberi.mscorehj.mscore) k=rememberi;rememberi=rememberj;reme
14、mberj=k; for(i=0;in;i+) printf(nn*學(xué)校編號(hào):%dn,hrememberi.schoolnum); printf(*學(xué)校總分:%dn ,hrememberi.score); printf(*男團(tuán)總分:%dn,hrememberi.mscore); printf(*女團(tuán)總分: %dnnn,hrememberi.wscore); /按男團(tuán)總分輸出 break; case 4: for(i=0;in;i+) rememberi=i; for(i=0;in;i+) for(j=i+1;jn;j+) if(hrememberi.wscorehj.wscore) k=rem
15、emberi; rememberi=rememberj;rememberj=k; for(i=0;in) printf(錯(cuò)誤:這個(gè)學(xué)校沒有參加此次運(yùn)動(dòng)會(huì)!nnn); else printf(要查詢的項(xiàng)目編號(hào):); scanf(%d, if(jm+w|j=0) printf(此次運(yùn)動(dòng)會(huì)沒有這個(gè)項(xiàng)目nnn); /學(xué)校編號(hào)超出范圍,則輸出警告 else printf(這個(gè)項(xiàng)目取前 %d 名,該學(xué)校的成績(jī)?nèi)缦?n, h0.cj-1.top); for(k=0;km+w|s=0) printf(此次運(yùn)動(dòng)會(huì)不包括這個(gè)項(xiàng)目.nnn); /項(xiàng)目編號(hào)超出范圍則輸出警告 else printf(該項(xiàng)目取前 %d
16、名,取得名次的學(xué)校n,h0.cs-1.top); 12 for(i=0; in;i+) for(j=0;j5;j+) if(hi.cs-1.rangej!=0) printf(學(xué)校編號(hào):%d,名次:%dn,hi.schoolnum, hi.cs-1.rangej); /輸出該項(xiàng)目取得名次學(xué)校的成績(jī) printf(nnn 繼續(xù) 2,跳出 0n); scanf(%d, printf(nnn); while(i=2); break; void writedata() /把數(shù)據(jù)存儲(chǔ)在文件中 file *report; int i; if(report=fopen(sportsdata.txt,w)=n
17、ull) printf(不能打開文件n); exit(1); for(i=0;in;i+) fwrite( fclose(report); /按頭結(jié)點(diǎn)塊寫入 void readdata() /讀出文件中數(shù)據(jù)的函數(shù) file *report; int i,j,k,s; if(report=fopen(sportsdata.txt,r)=null) printf(file can not be openedn); exit(1); for(i=0;in;i+) printf(*學(xué)校編號(hào):); fread( printf(%dn,k); printf(*學(xué)??偡?); 13 fread( print
18、f(%dn,k); printf(*男團(tuán)總分:); fread( printf(%dn,k); printf(*女團(tuán)總分:); fread( printf(%dn,k); printf(nnn); getch(); for(j=0;jm+w;j+) printf(*項(xiàng)目編號(hào):); fread( printf(%dn,k); printf(*所取名次數(shù)量:); fread( printf(%dn,k); for(s=0;s5;s+) fread( if(k!=0) printf(*名次:), printf(%dn,k); for(s=0;s5;s+) fread( if(k!=0) printf(*分?jǐn)?shù):), printf(%dn,k); printf(nnn); getch(); fclose(report); /關(guān)閉文件 /按照讀一個(gè)數(shù)據(jù)就輸出一個(gè)數(shù)據(jù)的方式顯示數(shù)據(jù)內(nèi)容 int main() int choice; printf(=歡迎使用=n); printf(nn*運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)*n); printf(nn*1.輸入信息*n); 14 printf(*2.輸出信息*n); printf(*3.查詢信息*n); printf(*4.調(diào)用信息*n);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畜牧業(yè)工程居間合同模板
- 新區(qū)開發(fā)門窗工程合同協(xié)議
- 生物研究無塵車間裝修協(xié)議
- 文物藝術(shù)品物流服務(wù)模板
- 城市綠化垃圾清運(yùn)合同
- 聯(lián)排別墅改造垃圾處理
- 建筑添加劑氨水配送協(xié)議
- 水產(chǎn)冷鏈物流中介協(xié)議
- 核材料運(yùn)輸車輛租賃協(xié)議
- 教育培訓(xùn)招生合作居間合同
- 部編版四年級(jí)下冊(cè)語文整本書閱讀:小英雄雨來(課件)
- 無人駕駛公共汽車行業(yè)分析及未來五至十年行業(yè)發(fā)展報(bào)告
- 4.1.2 比較線段的長短 2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)上冊(cè)教學(xué)課件
- 《青春理想責(zé)任擔(dān)當(dāng)》主題班會(huì)
- 勞務(wù)突發(fā)事件應(yīng)急預(yù)案
- 2024年統(tǒng)編版新教材語文小學(xué)一年級(jí)上冊(cè)第三單元測(cè)試題及答案
- 新時(shí)代勞動(dòng)教育教程(高校勞動(dòng)教育課程)全套教學(xué)課件
- St完整版本.-Mary's-醫(yī)院睡眠問卷
- 小學(xué)道德與法治跨學(xué)科融合教學(xué)研究
- 改革開放簡(jiǎn)史智慧樹知到課后章節(jié)答案2023年下北方工業(yè)大學(xué)
- 《初中語文語法大全》(共34張PPT).ppt
評(píng)論
0/150
提交評(píng)論