運動會分數(shù)統(tǒng)計系統(tǒng)_第1頁
運動會分數(shù)統(tǒng)計系統(tǒng)_第2頁
運動會分數(shù)統(tǒng)計系統(tǒng)_第3頁
運動會分數(shù)統(tǒng)計系統(tǒng)_第4頁
運動會分數(shù)統(tǒng)計系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、. z. . - .可修編 .*實踐教學*理工大學軟件學院2011年秋季學期計算機應用根底課程設計題目: 運動會分數(shù)統(tǒng)計系統(tǒng) 專業(yè)班級: 軟件技術(2)班 *: *正翔 *: 11700215 指導教師: *墨逸成績:-. z.目 錄TOC o 1-3 h z uHYPERLINK l _Toc314151991摘要 PAGEREF _Toc314151991 h 1HYPERLINK l _Toc314151992運動會分數(shù)統(tǒng)計系統(tǒng) PAGEREF _Toc314151992 h 2HYPERLINK l _Toc3141519931 問題描述與分析 PAGEREF _Toc31415199

2、3 h 2HYPERLINK l _Toc3141519941.1 課程設計目的 PAGEREF _Toc314151994 h 2HYPERLINK l _Toc3141519951.2 系統(tǒng)需求分析 PAGEREF _Toc314151995 h 2HYPERLINK l _Toc3141519962總體設計 PAGEREF _Toc314151996 h 3HYPERLINK l _Toc3141519973 詳細設計 PAGEREF _Toc314151997 h 4HYPERLINK l _Toc3141519983.1 數(shù)據(jù)類型及重要變量的定義 PAGEREF _Toc314151

3、998 h 4HYPERLINK l _Toc3141519993.2 函數(shù)的設計和實現(xiàn) PAGEREF _Toc314151999 h 5HYPERLINK l _Toc3141520004 編碼 PAGEREF _Toc314152000 h 9HYPERLINK l _Toc3141520015 測試 PAGEREF _Toc314152001 h 13HYPERLINK l _Toc3141520026 課程設計總結 PAGEREF _Toc314152002 h 18HYPERLINK l _Toc3141520036.1 調(diào)試中遇到的較重要問題回憶 PAGEREF _Toc3141

4、52003 h 18HYPERLINK l _Toc3141520046.2 算法的效率及改良設想 PAGEREF _Toc314152004 h 19HYPERLINK l _Toc314152005致謝 PAGEREF _Toc314152005 h 20HYPERLINK l _Toc314152006參考文獻 PAGEREF _Toc314152006 h 21HYPERLINK l _Toc314152007附錄 PAGEREF _Toc314152007 h 22-. z.摘 要C語言通常別稱為高級語言中的中級計算機語言。C語言由于它的可移植性和高效率,各種C語言編譯程序均可產(chǎn)生非

5、常緊湊、執(zhí)行快捷的目標碼。它比任何一種BASIC語言編譯程序的目標碼都緊湊、快速。這就要求有較高的理論水平,而且還要求有實際的動手能力。因此掌握C語言程序設計是學好軟件技術的第一步。本課程設計的主要目的是提高實踐能力,包括提高C語言的編程能力,長期以來,注重書本知識,輕視實際動手設計能力是教學中普遍存在的現(xiàn)象。進展課程設計的目的就是要改變這種狀況,使學習者既具有完備的理論知識,也能夠解決在實際學習,生活工作中遇到的問題。學生應該能夠把學習到的理論知識運用到實際中去,將知識轉變?yōu)閷嶋H的能力,同時通過這些理論知識和實際的應用推動理論和實踐的開展。關鍵字:函數(shù),定義,子程序,文本編輯運動會分數(shù)統(tǒng)計系

6、統(tǒng)1 問題描述與分析1.1 課程設計目的為了穩(wěn)固我們數(shù)據(jù)構造知識,加強我們的實際動手能力和提高我們綜合素質,提高我們對計算機軟件工程的認識學院組織我們進展了數(shù)據(jù)構造課程設計。此次課程設計要到達以下幾點目的:1了解并掌握數(shù)據(jù)構造與算法的設計方法,具備初步的獨立分析和設計能力。2提高程序設計和調(diào)試能力。學生通過上機實習,驗證自己設計的算法的正確性。學會有效利用根本調(diào)試方法,迅速找出程序代碼中的錯誤并且修改。3培養(yǎng)算法分析能力。分析所設計算法的時間復雜度和空間復雜度,進一步提高程序設計水平。4初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設計、程序編碼、測試等根本方法和技能。1.2 系統(tǒng)需求分析問題描述:參加

7、運動會有n個學校,學校編號為1n。比賽分成m個男子工程,和w個女子工程。工程編號為男子1m,女子m+1m+w。不同的工程取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學生自己設定。m=20,n=20。功能要求:1)可以輸入各個學校各個工程的前三名或前五名的成績;2)能統(tǒng)計各學??偡?;3)可以按學校編號或名稱、學??偡?、男女團體總分排序輸出;4)可以按學校編號查詢學校*個工程的情況;可以按工程編號查詢?nèi)〉们叭蚯拔迕膶W校;5)數(shù)據(jù)存入文件并能隨時查詢;6)規(guī)定:輸入數(shù)據(jù)形式和*圍:可以輸入學校的名稱,運動工程的名稱。輸出形

8、式:有中文提示,各學校分數(shù)為整形。界面要求:有合理的提示,每個功能可以設立菜單,根據(jù)提示,可以完成相關的功能要求。2總體設計2.1 系統(tǒng)功能設計根據(jù)運動會分數(shù)統(tǒng)計系統(tǒng)問題的分析和設計要求,可以將該系統(tǒng)可以分為三個模塊:信息統(tǒng)計模塊、信息輸出模塊、信息查詢模塊,其系統(tǒng)功能構造圖如圖1所示。1信息統(tǒng)計模實現(xiàn)信息的輸入、統(tǒng)計、存檔。2信息輸出模塊,實現(xiàn)信息的輸出。3信息查詢實現(xiàn)信息的查詢。運動會分數(shù)統(tǒng)計系統(tǒng)運動會分數(shù)統(tǒng)計系統(tǒng)信息查詢模塊信息輸出模塊信息查詢模塊信息輸出模塊 信息統(tǒng)計模塊 輸入信息分數(shù)統(tǒng)計信息存檔讀出數(shù)據(jù)數(shù)據(jù)存儲查詢信息輸入信息分數(shù)統(tǒng)計信息存檔讀出數(shù)據(jù)數(shù)據(jù)存儲查詢信息 圖1 . 系統(tǒng)功

9、能構造圖2.2 函數(shù)構造根據(jù)系統(tǒng)功能構造圖的描述,可以構造出該系統(tǒng)的幾個根本的函數(shù),其方法名和功能如表1所示。表1 函數(shù)功能表函數(shù)功能void inputinformation( )輸入和統(tǒng)計信息函數(shù)void output( )輸出信息函數(shù)void inquiry( )查詢信息函數(shù)void writedata( )數(shù)據(jù)存儲函數(shù)void readdata( )讀入數(shù)據(jù)函數(shù)3 詳細設計3.1 數(shù)據(jù)類型及重要變量的定義1定義運動工程數(shù)據(jù)類型,用于存放運動工程,包括工程編號、工程所取名次數(shù)、名次、分數(shù)。/定義工程結點的類型typedef struct int itemnum; /工程編號 int to

10、p; /工程取名次的數(shù)目,由用戶定義3或5 int range5; /名次 int mark5; /分數(shù)itemnode;2定義學校數(shù)據(jù)類型,用來存儲參賽學校信息,包括學校編號、學??偡?、男團總分、女團總分、工程數(shù)組。/定義學校結點類型typedef structint schoolnum; /學校編號 int score; /學??偡?int mscore; /男團體總分 int wscore; /女團體總分 itemnode cm+w; /工程數(shù)組schoolnode;3定義學校數(shù)組schoolnode hn。采用數(shù)組構造有利于隨機的存儲和查詢。定義全局標志變量int flag1、flag

11、2,分別用以標志是否已經(jīng)向系統(tǒng)輸入了信息和標志系統(tǒng)中是否已經(jīng)存在信息。定義文件指針FILE * report,用來指向存檔的文件。3.2函數(shù)的設計和實現(xiàn)在概要設計中已經(jīng)對該系統(tǒng)涉及的抽象數(shù)據(jù)類型和函數(shù)及其功能做了說明,這里就不在對每個函數(shù)進展一一說明,只對其中比擬重要的功能模塊進展描述。1信息輸入及分數(shù)統(tǒng)計功能void inputinformation( )為輸入信息及分數(shù)統(tǒng)計函數(shù)。在輸入信息的同時進展分數(shù)的統(tǒng)計??梢暂斎敫鱾€學校各工程前三名或前五名的成績。在輸入學校的參賽工程時,結果取前三名還是前五名自己定,用一個選擇語句實現(xiàn)。利用swith語句前三名的分數(shù)賦為5、3、2,前五名的成績賦為7

12、,5、3、2、1,未取得成績則賦為0。并統(tǒng)計團體總分,男團總分和女團總分。其主要功能代碼如下:for(s=0;sk;s+) printf(*名次:); scanf(%d,&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.marks=3; break;case 3: hi.cj.marks=2; break; else switch(hi.cj.ranges)case 0: hi

13、.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;2信息輸出功能void output( )為輸出函數(shù)。列出一個輸出目錄利用swich語句使函數(shù)按學校編號輸出或按學??偡?、男團總分、女團總分由高到低排序輸出。利用輔助數(shù)組remember和冒泡排序的方法使

14、之按分數(shù)的由高到低輸出。利用循環(huán)語句do while( )當輸入2時返回輸出目錄,輸入0是跳出循環(huán)返回主菜單。其流程圖如圖2所示。否開場顯示選擇菜單否開場顯示選擇菜單輸入選項輸入選項按學??偡州敵霭磳W??偡州敵霭磁訄F體總分輸出按學校編號輸出按男子團體總分輸出按女子團體總分輸出按學校編號輸出按男子團體總分輸出是否跳出是否跳出是是跳出 完畢跳出 完畢圖2 輸出信息模塊流程圖3信息查詢功能void inquiry( )為查詢函數(shù)。列車一個查詢目錄利用swich 語句使函數(shù)按學校編號或工程編號查詢,輸出*學校的*個工程的得分情況或*個工程的前幾名的學校。再利用循環(huán)語句do while( )當輸入2是

15、返回查詢目錄,輸入0時跳出循環(huán)返回主菜單。其程序流程圖如圖3所示。否開場跳出完畢是是否跳出按工程編號查詢按學校編號查詢輸入選項顯示選擇菜單否開場跳出完畢是是否跳出按工程編號查詢按學校編號查詢輸入選項顯示選擇菜單圖3 查詢信息模塊程序流程圖4主函數(shù)void main( )是主函數(shù)。列出主菜單,利用switch語句調(diào)用以上函數(shù)實現(xiàn)各個菜單的功能。想在每次查詢完畢想返回主菜單進展其它項時,應在main( )函數(shù)中調(diào)用其它函數(shù)時再調(diào)用main( )函數(shù),如:switch(choice) case 1: printf(輸入信息:n);inputinformation();writedata();prin

16、tf(信息已存入檔案!);main(); case 2: printf(輸出信息:n);if(flag1)readdata();output();main();在進入主菜單后為了確保系統(tǒng)中已經(jīng)輸入了信息,用標志標量flag1和flag2來控制循環(huán)。如果系統(tǒng)中沒有任何信息,用戶就不能選擇輸入或查詢操作,此時會輸出提示信息,并返回主菜單。直到用戶輸入了信息或退出系統(tǒng)。其實現(xiàn)代碼如下:doprintf(=歡送使用=n); printf(nn*運動會分數(shù)統(tǒng)計系統(tǒng)*n); printf(nn*1.輸入信息*n); printf(*2.輸出信息*n); printf(*3.查詢信息*n); printf(

17、*4.退出系統(tǒng)*nnn); printf(=nn);printf(*請選擇要實現(xiàn)步驟的編號( 請確保已經(jīng)輸入信息! ):nn);scanf(%d,&choice);if(choice=4)break;else if(choice=1)flag1=0;else if(report=fopen(sportsdata.t*t,r)!=null )flag2=0;else system(cls);printf(nnnn系統(tǒng)中無任何信息!nn請先輸入信息!nnnn); while(flag1 & flag2);4 編碼信息輸出功能void output( )為輸出函數(shù)。列出一個輸出目錄利用swich語句

18、使函數(shù)按學校編號輸出或按學??偡?、男團總分、女團總分由高到低排序輸出。利用輔助數(shù)組remember和冒泡排序的方法使之按分數(shù)的由高到低輸出。利用循環(huán)語句do while( )當輸入2時返回輸出目錄,輸入0是跳出循環(huán)返回主菜單。其流程圖如圖2所示。否開場顯示選擇菜單否開場顯示選擇菜單輸入選項輸入選項按學??偡州敵霭磳W校總分輸出按女子團體總分輸出按學校編號輸出按男子團體總分輸出按女子團體總分輸出按學校編號輸出按男子團體總分輸出是否跳出是否跳出是是跳出 完畢跳出 完畢圖2 輸出信息模塊流程圖/信息輸出模塊,用來輸出信息,可以選擇按不同的方式輸出信息void output() int choice,i

19、,j,k;int remembern;int sign; do printf(*1.按學校編號輸出.*n); printf(*2.按學校總分輸出.*n); printf(*3.按男團總分輸出.*n); printf(*4.按女團總分輸出.*n); printf(nn* 請選擇編號*nn:); scanf(%d,&choice); switch(choice) case 1: /按編號順序輸出for(i=0;in;i+) printf(nn*學校編號:%dn,hi.schoolnum); printf(*學??偡?%dn ,hi.score); printf(*男團總分:%dn,hi.mscor

20、e); printf(*女團總分: %dnnn,hi.wscore); 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ù)組記住學校結點下標 for(i=0;in;i+) printf(nn*學校編號:%dn,hrememberi.schoolnum); printf(*學??偡?%dn ,hremembe

21、ri.score); printf(*男團總分:%dn,hrememberi.mscore); printf(*女團總分: %dnnn,hrememberi.wscore);/按所記下標順序輸出 break; case 3: /按男團總分輸出 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; for(i=0;in;i+) printf(nn*學校編號:%dn,hrememberi

22、.schoolnum); printf(*學??偡?%dn ,hrememberi.score); printf(*男團總分:%dn,hrememberi.mscore); printf(*女團總分: %dnnn,hrememberi.wscore); break; case 4: /按女團總分輸出 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; for(i=0;in;i+)

23、 printf(nn*學校編號:%dn,hrememberi.schoolnum); printf(*學校總分:%dn ,hrememberi.score); printf(*男團總分:%dn,hrememberi.mscore); printf(*女團總分: %dnnn,hrememberi.wscore); break; printf(請選擇 2 繼續(xù),0 跳出n); scanf(%d,&sign);while(sign=2); /循環(huán)執(zhí)行輸出語句5 測試運行程序,進入系統(tǒng)主菜單。用戶可以選擇輸入、輸出、查詢信息或退出系統(tǒng),界面如圖4所示。圖4 系統(tǒng)主界面1輸入信息輸入1得到進入輸入信息模

24、塊。根據(jù)系統(tǒng)提示將以下信息輸入系統(tǒng)中:學校編號1,工程編號1,取前5名,獲得1個名次,是第5名;工程編號2,取前3名,獲得3個名次,分別是1、2、3名。學校編號2,工程編號1,取前5名,獲得4個名次,分別是1、2、3、4名;工程編號2,取前5名,獲得0個名次。輸入信息后,會自動存檔,并提示存檔成功,然后自動返還主菜單,如圖5所示。圖5 信息成功輸入系統(tǒng)并存入了文檔 2輸出信息輸入2進入輸出信息模塊,該模塊分四項,分別代表一種輸出方式,如圖6所示。圖6 輸入信息模塊界面用戶可以按照自己的喜好,選擇一種方式輸入信息,輸入2返回輸出信息模塊,輸入0返回主菜單。如圖79分別是按照學校編號、學??偡?、女

25、團總分輸出的情況。圖7 按學校編號輸出圖8 按學校總分輸出圖9 按女團總分輸出3查詢信息輸入3進入信息查詢模塊,該模塊分為兩項,如圖10所示。圖10 信息查詢模塊用戶可以選擇不同菜單進展查詢,如圖11和圖12分別是按照學校編號和工程編號查詢的情況。圖11 按學校編號查詢圖12 按工程編號查詢4退出系統(tǒng)在主菜單下輸入4可以退出系統(tǒng),并有中文提示,如下圖。圖13 退出系統(tǒng)6課程設計總結6.1 調(diào)試中遇到的較重要問題回憶1提出問題:所有輸入輸出內(nèi)容只能在一屏內(nèi)顯示,學過c語言,很知道n是換行,f是換屏的,可是在這里就是無法實現(xiàn)。解決問題: 輸入clrscr();2提出問題:設置選項,供用戶輸入選擇時

26、,當按任意鍵時都會跳入下一步操作,或者直接退出系統(tǒng)。分析問題:在供用戶選擇時,提供了幾個選項,就寫幾個case語句,但是當用戶輸入的并不是這幾個數(shù)字時,系統(tǒng)就不能做出正確判斷。解決問題:修改case語句,添加default語句提示出錯,要求重新輸入。源代碼如下:Default:clrscr(); /*清屏*/printf(輸入錯誤,請重新選擇);3提出問題:用戶在系統(tǒng)主菜單上進展選擇時,假設沒有輸入任何初始信息,而選擇輸出或查詢操作,系統(tǒng)也會做出相應操作。解決問題:增加標識變量作為循環(huán)終止變量,用來判斷系統(tǒng)中是否已經(jīng)輸入了信息。假設沒有就提示用戶先輸入信息。6.2算法的效率及改良設想算法的效率

27、:總的來講,嚴重影響執(zhí)行速度的便是查找,查找任意一個數(shù)據(jù),便要將其所在的構造從頭至尾遍歷一次,消耗大量的時間。改良設想:因大局部顯示均是以學校為單位,所以將以由有關人的各種信息為集合的構造改為以由有關學校的各種信息為集合的構造。致 謝這次的程序實設計實驗是對我們進入大學以來學習程序設計語言結果的一次大檢驗。自己動手,自己發(fā)現(xiàn)和解決問題。發(fā)現(xiàn)了自己的許多缺乏。平時沒有掌握好的知識在這次實驗中徹底暴露出來,經(jīng)過不斷思考,不斷查閱資料和上機運行,解決其中大局部問題,當然還存在一些問題沒有解決。我相信在以后的學習能夠解決好它們。通過本課題程序的設計、調(diào)試以及論文的編寫,我不僅提高了利用C語言編程及識錯

28、能力和撰寫論文的能力,而且它使我更加深入的了解到了計算機應用根底這門課在現(xiàn)實生活中的重要性。在這次課程設計過程中遇到過一些問題,但經(jīng)過不懈努力,解決了局部,還有的現(xiàn)在不能解決,留待日后思考和解決。比方說在運用數(shù)據(jù)構造排序的時候,方法的選擇上,總是想用時間復雜度小的算法,但結果出了問題,最后還是用了我們熟悉的選擇法排序。 在編寫之前,做整體規(guī)劃和詳細設計很重要。只有思路清晰,設計合理可行,編碼才有可能有的放矢,才能更加有效的完成任務。本次課程設計,對我來說可以算是一次挑戰(zhàn),因為在理論學習中沒有好好的掌握,現(xiàn)在要獨立完成一個較復雜的程序編寫,確實有一點困難。但我對于難度一向是以積極迎戰(zhàn)的態(tài)度來面對

29、,認真積極努力完成這次課程設計的任務。對我來說這是一次很好的時機,同時我也很好的把握了這次時機,認真的完成了此次的任務,對自己今后在程序編寫方面以及文檔撰寫方面相信會有很大的幫助,在此也對學校安排這樣一次學習表示感謝,最后希望自己在數(shù)據(jù)構造以及計算機的其他學習方面能夠得到很好的提高。參考文獻1王連相,C/C+程序設計教程,中國鐵道,20062譚浩強,C語言程序設計,清華大學,19993譚浩強,C程序設計題解與上機指導,清華大學,19994王連相,C/C+程序設計上機指導與測試,中國鐵道,20065 C語言函數(shù)手冊,機械工業(yè),19996 C語言的實際應用,*科學技術,2000附錄程序:#incl

30、ude#include#include #include #define n 2/學校數(shù)目 #define m 1/男子工程數(shù)目 #define w 1/女子工程數(shù)目#define null 0int flag1=1;int flag2=1;/全局變量,用來標識是否已經(jīng)向系統(tǒng)輸入信息FILE *report;/定義工程結點的類型typedef struct int itemnum; /工程編號 int top; /工程取名次的數(shù)目,由用戶定義3或5 int range5; /名次 int mark5; /分數(shù)itemnode; /定義學校結點類型typedef structint school

31、num; /學校編號 int score; /學??偡?int mscore; /男團體總分 int wscore; /女團體總分 itemnode cm+w; /工程數(shù)組schoolnode;schoolnode hn;/定義一個學校結點數(shù)組/信息輸入模塊,用來輸入信息,建立系統(tǒng)void inputinformation() int i,j,k,s; for(i=0;in;i+) hi.score=0; hi.mscore=0; hi.wscore=0; /初始化各結點 for(i=0;in | hi.schoolnum=0);/輸入學校結點信息for(j=0;jm+w | hi.cj.it

32、emnum=0); do printf(*取前3名or前5名:); scanf(%d,&hi.cj.top);while(hi.cj.top!=3 & hi.cj.top!=5); printf(*獲得幾個名次:); scanf(%d,&k); /輸入工程信息 for(s=0;s5;s+) hi.cj.ranges=0, hi.cj.marks=0; /初始化排名和分數(shù) for(s=0;sk;s+) printf(*名次:); scanf(%d,&hi.cj.ranges); /輸入所獲名次信息 if(hi.cj.top=3) switch(hi.cj.ranges) case 0: hi.c

33、j.marks=0; break; case 1: hi.cj.marks=5; break; case 2: hi.cj.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.ma

34、rks=1; break; hi.score=hi.score+hi.cj.marks;/按取前三名還是取前五名分別記分 if(j=m-1)hi.mscore=hi.mscore+hi.cj.marks;/是男子工程則記到男子分數(shù)里面去 else hi.wscore=hi.wscore+hi.cj.marks;/是女子工程則記到女子工程里面去 printf(n); /信息輸出模塊,用來輸出信息,可以選擇按不同的方式輸出信息void output() int choice,i,j,k;int remembern;int sign; do printf(*1.按學校編號輸出.*n); printf

35、(*2.按學校總分輸出.*n); printf(*3.按男團總分輸出.*n); printf(*4.按女團總分輸出.*n); printf(nn* 請選擇編號*nn:); scanf(%d,&choice); switch(choice) case 1: /按編號順序輸出for(i=0;in;i+) printf(nn*學校編號:%dn,hi.schoolnum); printf(*學校總分:%dn ,hi.score); printf(*男團總分:%dn,hi.mscore); printf(*女團總分: %dnnn,hi.wscore); break; case 2: /按學??偡州敵?f

36、or(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ù)組記住學校結點下標 for(i=0;in;i+) printf(nn*學校編號:%dn,hrememberi.schoolnum); printf(*學??偡?%dn ,hrememberi.score); printf(*男團總分:%dn,hrememberi.mscore); printf(*女團總分:

37、 %dnnn,hrememberi.wscore);/按所記下標順序輸出 break; case 3: /按男團總分輸出 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; for(i=0;in;i+) printf(nn*學校編號:%dn,hrememberi.schoolnum); printf(*學校總分:%dn ,hrememberi.score); printf(*男團總

38、分:%dn,hrememberi.mscore); printf(*女團總分: %dnnn,hrememberi.wscore); break; case 4: /按女團總分輸出 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; for(i=0;in)printf(錯誤:這個學校沒有參加此次運動會!nnn); elseprintf(要查詢的工程編號:); scanf(%d,&j

39、); if(jm+w|j=0) printf(此次運動會沒有這個工程nnn);/學校編號超出*圍,則輸出警告 else printf(這個工程取前 %d名,該學校的成績?nèi)缦?n, h0.cj-1.top); for(k=0;km+w|s=0)printf(此次運動會不包括這個工程.nnn);/工程編號超出*圍則輸出警告elseprintf(該工程取前 %d名,取得名次的學校n,h0.cs-1.top);for(i=0; in;i+) for(j=0;j5;j+) if(hi.cs-1.rangej!=0) printf(學校編號:%d,名次:%dn,hi.schoolnum,hi.cs-1.rangej); /輸出該工程取得名次學校的成績 printf(nnn繼續(xù) 2,跳出 0n);scanf(%d,&i);printf(nnn);while(i=2); break;void writedata() /把數(shù)據(jù)存儲在文件中 /FILE *report; int i; if(report=fopen(sportsdata.t*t,w)=null) printf(文件不存在,不能翻開文件!n); e*it(1); for(i=0;in;i+)fwrite(&hi,sizeof(schoolnode),1,report); fclose(report);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論