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

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論