運動會分數(shù)統(tǒng)計系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計論文_第1頁
已閱讀1頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  21世紀是個信息化的時代,現(xiàn)代計算機技術(shù)的發(fā)展,為各行各業(yè)的發(fā)展創(chuàng)造了一個全新的時代背景——人們的生活、工作等已經(jīng)越來越離不開計算機科學(xué)的運用,體育作為個人、家庭、社會的一個主要實踐領(lǐng)域,大大小小的運動會也在各大中院校中展開,自從計算機科學(xué)涉及運動領(lǐng)域后,人們對運動會的管理也從人工的向自動化轉(zhuǎn)變。運用數(shù)據(jù)結(jié)構(gòu)的知識解決運動會

2、分數(shù)統(tǒng)計的問題,編寫一個程序來完成運動會分數(shù)統(tǒng)計系統(tǒng). 本程序設(shè)計中,可以輸入?yún)⒓舆\動會的學(xué)校編號及項目編號;根據(jù)具體情況選擇輸入?yún)⒓禹椖康哪信悇e和取成績名次類別;最后選擇輸入名次;實現(xiàn)數(shù)據(jù)統(tǒng)計,排序輸出,學(xué)院及項目查詢等功能。</p><p>  關(guān)鍵詞:運動會 分數(shù)統(tǒng)計程序 排序 查詢</p><p><b>  目 錄</b></p><p

3、>  1 設(shè)計內(nèi)容和要求1</p><p>  1.1具體內(nèi)容及要求1</p><p><b>  2.總體設(shè)計3</b></p><p>  2.1系統(tǒng)設(shè)計方案3</p><p>  2.2功能模塊設(shè)計3</p><p><b>  3.詳細設(shè)計5</b>

4、</p><p>  3.1數(shù)據(jù)結(jié)構(gòu)定義5</p><p>  3.2比賽數(shù)據(jù)輸入模塊6</p><p>  3.3比賽成績輸出模塊7</p><p>  3.3查詢比賽成績模塊8</p><p>  4.調(diào)試與測試10</p><p>  4.1測試數(shù)據(jù)10</p>

5、<p>  4.1.1 School.txt10</p><p>  4.1.2 MatchItem.txt11</p><p>  4.1.3 PreNews.txt12</p><p>  4.1程序主界面12</p><p>  4.2輸入數(shù)據(jù)12</p><p>  4.3排序輸出學(xué)校總分

6、14</p><p>  4.4排序輸出男子團體總分14</p><p>  4.5排序輸出女子團體總分15</p><p>  4.6按學(xué)校查詢項目數(shù)據(jù)15</p><p>  4.7按項目查詢數(shù)據(jù)16</p><p><b>  5.總結(jié)17</b></p><p

7、><b>  參考文獻18</b></p><p><b>  致謝19</b></p><p><b>  1 設(shè)計內(nèi)容和要求</b></p><p>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計是為數(shù)據(jù)結(jié)構(gòu)課程獨立開設(shè)的實踐性教學(xué)環(huán)節(jié)。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計對于鞏固數(shù)據(jù)結(jié)構(gòu)知識,加強學(xué)生的實際動手能力和提高學(xué)生綜合素

8、質(zhì)是十分必要的。課程設(shè)計的目的是要求學(xué)生達到熟練掌握C語言的基本知識和技能;了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力;提高程序設(shè)計和調(diào)試能力。學(xué)生通過上機實習(xí),驗證自己設(shè)計的算法的正確性。學(xué)會有效利用基本調(diào)試方法,迅速找出程序代碼中的錯誤并且修改;培養(yǎng)算法分析能力,分析所設(shè)計算法的時間復(fù)雜度和空間復(fù)雜度,進一步提高程序設(shè)計水平;初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能。</p

9、><p>  1.1具體內(nèi)容及要求</p><p>  根據(jù)課程設(shè)計任務(wù)書要求,本系統(tǒng)開發(fā)主要完成以下功能和性能。</p><p>  設(shè)計一個運動會分數(shù)統(tǒng)計程序。參加運動會有n個學(xué)院,學(xué)院編號為1…n。比賽分成m個男子項目和w個女子項目。編號為男子1…m,女子m+1…m+w。項目編號能被3整除的項目取前三名,其他項目取前五名。取前三名的積分分別是5、3、2,取前五名的

10、積分分別是7、5、3、2、1。要求如下:</p><p>  1)可以輸入各個項目前三名或前五名的信息(學(xué)院編號、學(xué)院名稱、運動員編號、運動員姓名、項目編號、項目名稱、名次);</p><p>  2)能統(tǒng)計個學(xué)院總分;</p><p>  3)可以按學(xué)院編號、學(xué)院總分、男女團體總分排序輸出;</p><p>  4)可以按學(xué)院編號查詢學(xué)校某

11、個項目的情況;可以按項目編號查詢?nèi)〉妹蔚膶W(xué)院名稱。</p><p>  5)程序退出時,將輸入的信息保存在磁盤上,以便下次運行程序時讀入。</p><p><b>  測試數(shù)據(jù)要求:</b></p><p>  程序運行時,n、m、w均由鍵盤輸入(n≤20,m≤20,w≤20)。</p><p><b>  

12、輸入要求:</b></p><p>  可輸入學(xué)院信息(學(xué)院編號、學(xué)院名稱、運動員編號、運動員姓名、運動員性別、項目編號、項目名稱、名次),有中文提示,在輸入的同時限定輸入數(shù)據(jù)的大小以及一些錯誤輸入。</p><p><b>  輸出要求:</b></p><p>  輸出內(nèi)容整潔,排列有序。</p><p>

13、;<b>  界面要求:</b></p><p>  界面布局合理整潔,有合理的提示,每個功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。</p><p><b>  存儲結(jié)構(gòu):</b></p><p>  學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計,但是要求運動會的相關(guān)數(shù)據(jù)要存儲在數(shù)據(jù)文件中。</p><p

14、><b>  2.總體設(shè)計</b></p><p><b>  2.1系統(tǒng)設(shè)計方案</b></p><p>  根據(jù)課程設(shè)計任務(wù)書要求,本方案要求準備結(jié)構(gòu)體數(shù)組、讀寫文件。還能把信息直接輸入存儲到文件中,讀取文件中信息,從而得到結(jié)果。</p><p><b>  1) 菜單設(shè)計</b></

15、p><p>  分為主函數(shù)菜單,比賽數(shù)據(jù)輸入菜單,學(xué)院、男子團體、女子團體總分排序輸出菜單,查詢學(xué)院成績菜單、查詢項目排名菜單。</p><p><b>  2) 數(shù)據(jù)保存方式</b></p><p>  建立文件,數(shù)據(jù)保存在文件中。</p><p><b>  3) 數(shù)據(jù)類型</b></p>

16、;<p><b>  采用結(jié)構(gòu)體類型。</b></p><p><b>  4) 存儲結(jié)構(gòu)</b></p><p>  采用結(jié)構(gòu)體類型數(shù)組存儲結(jié)構(gòu)存儲。</p><p><b>  5) 算法設(shè)計</b></p><p>  輸入比賽結(jié)果模塊中運用了冒泡算法將輸入

17、的數(shù)據(jù)排序。</p><p><b>  2.2功能模塊設(shè)計</b></p><p>  根據(jù)分析整個系統(tǒng)主要劃分為4個功能模塊,分別執(zhí)行要求中的功能。該系統(tǒng)分為比賽數(shù)據(jù)輸入、總分排序輸出、查詢比賽成績模塊。總分排序輸出模塊有三個子模塊,分別是:按學(xué)??偡峙判蜉敵瞿K、按男子團體總分排序輸出模塊和按女子團體總分排序輸出模塊;查詢比賽成績模塊分為按學(xué)院編號查詢模塊和按項

18、目編號查詢兩個子模塊。</p><p>  圖2.1 功能模塊圖</p><p>  1) 比賽數(shù)據(jù)輸入模塊</p><p>  比賽成績輸入模塊分為:創(chuàng)建信息部分,創(chuàng)建學(xué)院數(shù),男子項目數(shù),女子項目數(shù),學(xué)院信息,比賽項目信息,運動員信息,成績輸入部分需根據(jù)項目編號,按排名依次輸入學(xué)院編號,運動員編號,最后將數(shù)據(jù)依次寫入文件。 </p><p>

19、;  2) 比賽成績輸出模塊</p><p>  讀取比賽數(shù)據(jù),冒泡算法排序,按選擇輸出學(xué)院、男子團體或女子團體總分的排名情況。</p><p>  3) 查詢比賽成績模塊</p><p>  選擇按學(xué)院編號查詢模塊或按項目編號查詢輸入相應(yīng)的編號輸出查詢結(jié)果。</p><p><b>  3.詳細設(shè)計</b></p

20、><p><b>  3.1數(shù)據(jù)結(jié)構(gòu)定義</b></p><p><b>  建立結(jié)構(gòu)體如下:</b></p><p>  typedef struct PlayerInfo//存儲運動員相關(guān)信息</p><p><b>  {</b></p><p>

21、  char PlayerName[MAXSIZE];</p><p>  int Sex;//運動員性別</p><p>  int PlayerNumber;</p><p>  int PlayerScore;</p><p>  struct PlayerInfo *next;</p><p><

22、;b>  }Player;</b></p><p>  typedef struct SchoolInfo//存儲學(xué)校相關(guān)信息</p><p><b>  {</b></p><p>  char SchoolName[MAXSIZE];</p><p>  int SchoolNumber;<

23、/p><p>  int SchoolScore; //學(xué)??偡?lt;/p><p>  int WomenScore;//女子總分</p><p>  int MenScore;//男子總分</p><p>  Player *PlayerHead;</p><p>  int PlayerData;&l

24、t;/p><p>  struct SchoolInfo *next;</p><p><b>  }School;</b></p><p>  typedef struct MatchItem//存儲運動項目的相關(guān)信息</p><p><b>  {</b></p><p>

25、;  char MatchName[MAXSIZE];</p><p>  int MatchNumber;</p><p>  int range[5];//存儲獲得前三名或前五名的學(xué)校</p><p>  int Player[5];//存儲獲得前三名或前五名的運動員</p><p>  struct MatchItem *

26、next;</p><p>  }MatchPro;</p><p>  typedef struct PreNews//存儲要輸入的學(xué)校,男女項目個數(shù)</p><p><b>  {</b></p><p>  int SchoolSum;//學(xué)??倲?shù)</p><p>  int Ma

27、nItemSum;//男子項目總數(shù)</p><p>  int WomanItemSum;//女子項目總數(shù)</p><p>  int PlayerSum;//運動員總數(shù)</p><p><b>  }PNews;</b></p><p>  3.2比賽數(shù)據(jù)輸入模塊</p><p&g

28、t;  比賽數(shù)據(jù)輸入模塊需要輸入學(xué)院數(shù),男子項目數(shù),女子項目數(shù),學(xué)院信息,比賽項目信息,運動員信息,成績輸入部分需根據(jù)項目編號,按排名依次輸入學(xué)院編號,運動員編號,最后將數(shù)據(jù)依次寫入文件。 </p><p>  此模塊定義變量i,j先初始化儲存分數(shù)的數(shù)組各元素,定義flag標(biāo)記,while循環(huán)與for循環(huán)實現(xiàn)各學(xué)校信息的輸入,包括學(xué)校編號、項目編號、運動員編號,使用if語句實現(xiàn)對輸入的數(shù)據(jù)判斷是否合法,選擇是取前

29、三名或前五名,使用switch語句選擇添加總分。</p><p>  3.3比賽成績輸出模塊</p><p>  比賽成績輸出模塊實現(xiàn)按要求輸出相應(yīng)的數(shù)據(jù)。有以下輸出選項:按學(xué)??偡峙判蜉敵?、按男子團體總分排序輸出和按女子團體總分排序輸出。</p><p>  模塊定義了int i,j,k,flag;School PTemp={0}變量, for循環(huán)包括switch

30、語句,選擇輸出按學(xué)??偡峙判蜉敵觥茨凶訄F體總分排序輸出和按女子團體總分排序輸出相應(yīng)的數(shù)據(jù),同時實現(xiàn)冒泡排序。for循環(huán)實現(xiàn)輸出各個方式輸出的每個數(shù)據(jù)。</p><p>  3.3查詢比賽成績模塊</p><p>  查詢比賽成績模塊包括:按學(xué)校編號查詢,按項目編號查詢。</p><p>  此模塊定義了int i,j; switch(choice)實現(xiàn)查詢的兩種

31、方式的選擇,使用while循環(huán)與for循環(huán)查詢相關(guān)數(shù)據(jù),從而輸出相關(guān)數(shù)據(jù),從而實現(xiàn)查詢功能。</p><p><b>  4.調(diào)試與測試</b></p><p>  程序測試是程序質(zhì)量保證的關(guān)鍵步驟從用戶的角度來看,普遍希望通過程序測試暴露程序中隱藏的錯誤和缺陷,所以程序測試應(yīng)該是“為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”?;蛘哒f,程序測試應(yīng)該根據(jù)程序開發(fā)各階段的規(guī)格說明和程序

32、的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤或缺陷。過度測試則會浪費許多寶貴的資源。到測試后期,即使找到了錯誤,然而付出了過高的代價。調(diào)試過程主要是運行編制好的程序,然后遇到錯誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問題所在。以下是程序調(diào)試與測試的展示。</p><p><b>  4.1測試數(shù)據(jù)</b></p><

33、p>  4.1.1 School.txt</p><p>  cqkjxy 1 13 3 10 5</p><p>  czw 1 1 13</p><p>  ld 2 1 0</p><p>  zql 3 1 0</p><p>  dx 4 2 0</p><

34、;p>  tjb 5 2 0</p><p>  cqdx 2 20 5 15 5</p><p>  fuc 6 1 17</p><p>  kyo 7 1 3</p><p>  uyo 8 1 0</p><p>  udo 9 2 0</p><p&

35、gt;  ngd 10 2 0</p><p>  cqsfxy 3 21 8 13 5</p><p>  zxx 11 1 21</p><p>  wxx 12 1 0</p><p>  lxx 13 1 0</p><p>  cxx 14 2 0</p><p&g

36、t;  txx 15 2 0</p><p>  cqykdx 4 16 12 4 5</p><p>  tmd 16 1 16</p><p>  tnn 17 1 0</p><p>  tmm 18 1 0</p><p>  ccc 19 2 0</p><p>

37、;  xxx 20 2 0</p><p>  scmsxy 5 12 8 4 5</p><p>  csa 21 1 12</p><p>  wqe 22 1 0</p><p>  fgd 23 1 0</p><p>  yjg 24 2 0</p><p>

38、  fdr 25 2 0</p><p>  4.1.2 MatchItem.txt</p><p>  feifei 5 4 17 3 13 2 8 1 4 5 25</p><p>  tiaotiao 4 5 24 4 19 3 12 2 9 1 5</p><p>  paopao 3 3 11

39、 2 7 1 1</p><p>  tiaolou 2 2 6 3 13 5 23 4 18 1 4</p><p>  tiaogao 1 1 2 2 6 3 13 4 17 5 22</p><p>  4.1.3 PreNews.txt</p><p>  5 3 2 25</p>

40、;<p><b>  4.1程序主界面</b></p><p><b>  圖4.1程序主界面</b></p><p><b>  4.2輸入數(shù)據(jù)</b></p><p>  圖4.2數(shù)據(jù)輸入(1)</p><p>  圖4.3數(shù)據(jù)輸入(2)</p>

41、<p>  圖4.4數(shù)據(jù)輸入(3)</p><p>  4.3排序輸出學(xué)??偡?lt;/p><p>  圖4.5排序輸出學(xué)??偡?lt;/p><p>  4.4排序輸出男子團體總分</p><p>  圖4.6排序輸出男子團體總分</p><p>  4.5排序輸出女子團體總分</p><p&g

42、t;  圖4.7排序輸出女子團體總分</p><p>  4.6按學(xué)校查詢項目數(shù)據(jù)</p><p>  圖4.8按學(xué)校查詢項目數(shù)據(jù)</p><p>  4.7按項目查詢數(shù)據(jù)</p><p>  圖4.9按學(xué)校查詢項目情況</p><p><b>  5.總結(jié)</b></p><

43、p>  課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計算機應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀的大學(xué)來說掌握計算機開發(fā)技術(shù)是十分重要的?;仡櫰鸫舜握n程設(shè)計,至今我們?nèi)愿锌H多,的確,自從拿到題目到完成整個編程,從理論到實踐,可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多

44、在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我們懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體,指針……通過這

45、次課程設(shè)計之后,我們把前面所學(xué)過的知識又重新溫故了一遍。</p><p>  善于總結(jié),也是學(xué)習(xí)能力的一種體現(xiàn),每次完成一個編程任務(wù),完成一段代碼,都應(yīng)當(dāng)有目的的跟蹤該程序的應(yīng)用狀況,隨時總結(jié),找到自己的不足,這樣所編寫的程序才能逐步提高.</p><p><b>  參考文獻</b></p><p>  [1] 嚴蔚敏 吳偉民. 數(shù)據(jù)結(jié)構(gòu).

46、 清華大學(xué)出版社.2007.3</p><p>  [2] 李春葆. 數(shù)據(jù)結(jié)構(gòu)教程. 清華大學(xué)出版社.2005.1</p><p>  [3] (美)Stephen Prata. C Primer Plus中文版(第五版). 人民郵電出版社.2005.2</p><p>  [4] 楊路明 郭浩志. C語言程序設(shè)計教程. 北京郵電大學(xué)出版社. 2005.12&l

47、t;/p><p>  [5] 譚浩強. C程序設(shè)計.第三版. 清華大學(xué)出版社. 2005.2</p><p>  [6] 徐孝凱. 數(shù)據(jù)結(jié)構(gòu)實用教程. 清華大學(xué)出版社. 2006.8</p><p>  [7] 劉大有. 數(shù)據(jù)結(jié)構(gòu)C語言版. 高等教育出版社. 2004</p><p><b>  致謝</b></p&g

48、t;<p>  首先感謝在本次課程設(shè)計中老師們的辛勤指導(dǎo),感謝XX師,還要感謝在本次課程設(shè)計中幫助我的同學(xué),感謝XX等同學(xué)的幫助,最終在老師和同學(xué)的幫助和指導(dǎo)下完成了這次的課程設(shè)計。</p><p><b>  附錄:</b></p><p><b>  程序代碼:</b></p><p>  #includ

49、e <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <malloc.h></p><p>  #include <string.h></p><p>  #include <conio.h></p>

50、<p>  #define MAXSIZE 20</p><p>  typedef struct PlayerInfo</p><p><b>  {</b></p><p>  char PlayerName[MAXSIZE];</p><p><b>  int Sex;</b>&l

51、t;/p><p>  int PlayerNumber;</p><p>  int PlayerScore;</p><p>  struct PlayerInfo *next;</p><p><b>  }Player;</b></p><p>  typedef struct SchoolIn

52、fo</p><p><b>  {</b></p><p>  char SchoolName[MAXSIZE];</p><p>  int SchoolNumber;</p><p>  int SchoolScore;</p><p>  int WomenScore;</p>

53、<p>  int MenScore;</p><p>  Player *PlayerHead;</p><p>  int PlayerData;</p><p>  struct SchoolInfo *next;</p><p><b>  }School;</b></p><p

54、>  typedef struct MatchItem</p><p><b>  {</b></p><p>  char MatchName[MAXSIZE];</p><p>  int MatchNumber;</p><p>  int range[5];</p><p>  in

55、t Player[5];</p><p>  struct MatchItem *next;</p><p>  }MatchPro;</p><p>  typedef struct PreNews</p><p><b>  {</b></p><p>  int SchoolSum;<

56、/p><p>  int ManItemSum;</p><p>  int WomanItemSum;</p><p>  int PlayerSum;</p><p><b>  }PNews;</b></p><p>  void ChiefMenu(MatchPro *MatchHead,PN

57、ews *PreNode,School *SchoolHead);</p><p>  PNews *BeginInput(PNews *PreNode);</p><p>  void PreNews_Write(PNews *PreNode);</p><p>  School * Add_School(School *SchoolHead,PNews *Pre

58、Node);</p><p>  void School_Write(School *SchoolHead,PNews *PreNode);</p><p>  MatchPro * MatchInput(MatchPro *MatchHead,PNews *PreNode,School *SchoolHead);</p><p>  void Match_Writ

59、e( MatchPro *MatchHead,PNews *PreNode,School *SchoolHead);</p><p>  PNews * PreNews_read(PNews *PreNode) ;</p><p>  School * School_Array_Read(PNews *PreNode);</p><p>  MatchPro *

60、Match_Read(MatchPro *MatchHead,PNews *PreNode);</p><p>  School * CountSchoolScore(School *SchoolHead,PNews *PreNode);</p><p>  School * SchoolOrder(School *SchoolHead,int Total_PointsType,PNews

61、 *PreNode);</p><p>  void ShowScore(School *SchoolHead,PNews *PreNode,int Total_PointsType);</p><p>  int ShowScore_School(MatchPro *MatchHead,School *SchoolHead,PNews *PreNode);</p><

62、p>  int QueryItem(MatchPro *MatchHead,School *SchoolHead,PNews *PreNode);</p><p>  void ClearNode(MatchPro *MatchHead);</p><p>  void ChiefMenu(MatchPro *MatchHead,PNews *PreNode,School *Scho

63、olHead)</p><p><b>  {</b></p><p>  int choice=1;</p><p>  while(choice)</p><p><b>  {</b></p><p>  printf(" 歡

64、迎進入運動會分數(shù)統(tǒng)計系統(tǒng)! \n\n");</p><p>  printf(" 1.按系統(tǒng)提示輸入關(guān)于運動會各種信息! \n\n");</p><p>  printf(" 2

65、.排序輸出學(xué)校總分. \n\n");</p><p>  printf(" 3.排序輸出男子團體總分. \n\n");</p><p>  printf("

66、; 4.排序輸出女子團體總分. \n\n");</p><p>  printf(" 5.按學(xué)校編號查詢學(xué)校某個項目的情況. \n\n"); </p><p>  pri

67、ntf(" 6.按項目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校. \n\n");</p><p>  printf(" 0.退出運動會分數(shù)統(tǒng)計系統(tǒng)! \n\n");</p><p> 

68、 printf("\n\n\n請輸入你要進行的步驟:");</p><p>  scanf("%d",&choice);</p><p>  system("cls");</p><p>  switch(choice)</p><p><b>  {</b&

69、gt;</p><p>  case 1:Match_Write(MatchHead,PreNode,SchoolHead);</p><p><b>  break;</b></p><p>  case 2: ShowScore(SchoolHead,PreNode,1);</p><p><b>  br

70、eak;</b></p><p>  case 3: ShowScore(SchoolHead,PreNode,2);</p><p><b>  break;</b></p><p>  case 4: ShowScore(SchoolHead,PreNode,3);</p><p><b>  

71、break;</b></p><p>  case 5: QueryItem(MatchHead,SchoolHead,PreNode);</p><p><b>  break;</b></p><p>  case 6: ShowScore_School(MatchHead,SchoolHead,PreNode);</p&

72、gt;<p><b>  break;</b></p><p><b>  case 0:{</b></p><p>  free(SchoolHead);</p><p>  free(MatchHead);</p><p>  free(PreNode);</p>&

73、lt;p><b>  choice=0;</b></p><p>  printf(" 您已安全的退出程序! \n");</p><p><b>  }</b></p><p><b>  break;</b></p>

74、<p>  default : printf("您輸入的有誤");</p><p><b>  }</b></p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }&

75、lt;/b></p><p>  PNews *BeginInput(PNews *PreNode)</p><p><b>  {</b></p><p>  int SchoolCount = 0;</p><p>  int WomenCount = 0;</p><p>  int

76、MenCount = 0;</p><p>  int PlayerCount = 0;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  printf("請輸入?yún)⒓颖荣惖膶W(xué)校個數(shù): \n");</p>

77、;<p>  scanf("%d",&SchoolCount);</p><p>  if(SchoolCount<=20&&SchoolCount>=5)</p><p><b>  {</b></p><p>  PreNode->SchoolSum = Schoo

78、lCount;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf(&qu

79、ot;輸入數(shù)據(jù)不合法,請重新輸入!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  while(1)</b></p><p><b>  {</b></p>&l

80、t;p>  printf("請輸入男子比賽的項目個數(shù): \n");</p><p>  scanf("%d",&MenCount);</p><p>  if(MenCount>20||MenCount<0)</p><p><b>  {</b></p>&l

81、t;p>  printf("輸入數(shù)據(jù)不合法,請重新輸入! \n");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  PreNode->ManIt

82、emSum = MenCount;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  while(1)</b></p><p&g

83、t;<b>  {</b></p><p>  printf("請輸入女子比賽的項目個數(shù): \n");</p><p>  scanf("%d",&WomenCount);</p><p>  if(WomenCount>20||WomenCount<0)</p>&

84、lt;p><b>  {</b></p><p>  printf("輸入數(shù)據(jù)不合法,請重新輸入! \n");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b

85、></p><p>  PreNode->WomanItemSum = WomenCount;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

86、<b>  while(1)</b></p><p><b>  {</b></p><p>  printf("請輸入運動員個數(shù): \n");</p><p>  scanf("%d",&PlayerCount);</p><p>  if(Pl

87、ayerCount<0)</p><p><b>  {</b></p><p>  printf("輸入數(shù)據(jù)不合法,請重新輸入! \n");</p><p><b>  }</b></p><p><b>  else</b></p>

88、<p><b>  {</b></p><p>  PreNode->PlayerSum = PlayerCount;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</

89、b></p><p>  return (PreNode);</p><p><b>  }</b></p><p>  void PreNews_Write(PNews *PreNode)</p><p><b>  {</b></p><p>  FILE *fp

90、= NULL;</p><p>  if((fp=fopen("PreNews.txt","w+")) == NULL)</p><p><b>  {</b></p><p>  printf("Cannot open file,strike any key exit!");<

91、/p><p><b>  getch();</b></p><p><b>  exit(-1);</b></p><p><b>  }</b></p><p>  fprintf(fp,"%3d%3d%3d%3d\n",PreNode->SchoolS

92、um,PreNode->ManItemSum,PreNode->WomanItemSum,PreNode->PlayerSum);</p><p>  fclose(fp);</p><p>  printf("寫入成功!\n");</p><p><b>  }</b></p><p&

93、gt;  School *Add_School(School *SchoolHead,PNews *PreNode)</p><p><b>  {</b></p><p>  int i = 0,j = 0,k = 0;</p><p>  SchoolHead = (School *)malloc(sizeof(School)*PreNod

94、e->SchoolSum);</p><p>  if(NULL==SchoolHead)</p><p><b>  {</b></p><p>  printf("分配內(nèi)存失敗,程序結(jié)束");</p><p><b>  exit(-1);</b></p>

95、<p><b>  }</b></p><p>  for( i = 0;i < PreNode->SchoolSum;i++)</p><p><b>  {</b></p><p>  printf("請輸入第%d個學(xué)校的名稱\n",i+1);</p><

96、p>  scanf("%s",&SchoolHead[i].SchoolName);</p><p>  SchoolHead[i].SchoolNumber=i+1;</p><p>  SchoolHead[i].SchoolScore = 0;</p><p>  SchoolHead[i].MenScore = 0;<

97、/p><p>  SchoolHead[i].WomenScore = 0;</p><p>  SchoolHead[i].PlayerHead = (Player *)malloc(sizeof(Player)*PreNode->PlayerSum);</p><p>  if(NULL==SchoolHead[i].PlayerHead)</p>

98、<p><b>  {</b></p><p>  printf("分配內(nèi)存失敗,程序結(jié)束");</p><p><b>  exit(-1);</b></p><p><b>  }</b></p><p>  for( j = 0;j &l

99、t; PreNode->ManItemSum + PreNode->WomanItemSum;j++)</p><p><b>  {</b></p><p>  printf("請輸入第%d個運動員的名稱\n",j+1);</p><p>  scanf("%s",&SchoolHe

100、ad[i].PlayerHead[j].PlayerName);</p><p>  printf("請輸入第%d個運動員的性別(1表示男,2表示女)\n",j+1);</p><p>  scanf("%d",&SchoolHead[i].PlayerHead[j].Sex);</p><p>  SchoolHea

101、d[i].PlayerHead[j].PlayerNumber=k+j+1;</p><p>  SchoolHead[i].PlayerHead[j].PlayerScore=0;</p><p><b>  }</b></p><p>  SchoolHead[i].PlayerData = j;</p><p> 

102、 k = k + j;</p><p>  if(k > PreNode->PlayerSum)</p><p><b>  {</b></p><p>  printf("運動員輸入有誤\n");</p><p><b>  exit(-1);</b></p&

103、gt;<p><b>  }</b></p><p>  SchoolHead[i].next = NULL;</p><p><b>  }</b></p><p>  system("cls");</p><p>  return SchoolHead;<

104、/p><p><b>  }</b></p><p>  void School_Write(School *SchoolHead,PNews *PreNode)</p><p><b>  {</b></p><p>  FILE *fp=NULL;</p><p>  int

105、 i=0,j=0;</p><p>  if((fp=fopen("School.txt","w+"))==NULL)</p><p><b>  {</b></p><p>  printf("cannot open file,strike any key exit!");</

106、p><p><b>  getch();</b></p><p><b>  exit(-1);</b></p><p><b>  }</b></p><p>  for( i=0; i<PreNode->SchoolSum;i++)</p><p

107、><b>  {</b></p><p>  fprintf(fp,"%s%3d%3d%3d%3d%3d\n",SchoolHead[i].SchoolName,SchoolHead[i].SchoolNumber,SchoolHead[i].SchoolScore,SchoolHead[i].WomenScore,SchoolHead[i].MenScore,Sc

108、hoolHead[i].PlayerData);</p><p>  for( j=0; j<SchoolHead[i].PlayerData;j++)</p><p><b>  {</b></p><p>  fprintf(fp,"%s%3d%3d%3d\n",SchoolHead[i].PlayerHead[j

109、].PlayerName,SchoolHead[i].PlayerHead[j].PlayerNumber,SchoolHead[i].PlayerHead[j].Sex,SchoolHead[i].PlayerHead[j].PlayerScore);</p><p><b>  }</b></p><p><b>  }</b></p&

110、gt;<p>  fclose(fp);</p><p>  printf("寫入成功!\n");</p><p><b>  }</b></p><p>  MatchPro *MatchInput(MatchPro *MatchHead,PNews *PreNode,School *SchoolHead)&

111、lt;/p><p><b>  {</b></p><p>  int i=0,j=0,k=0,flag=0,flag1=0,m=0;</p><p>  int SchoolNum = 0;</p><p>  int PlayerNum = 0;</p><p>  MatchPro *pNode

112、 = NULL;</p><p>  BeginInput(PreNode);</p><p>  PreNews_Write(PreNode);</p><p>  system("cls");</p><p>  SchoolHead = Add_School(SchoolHead,PreNode);</p>

113、;<p>  for(;i<(PreNode->ManItemSum+PreNode->WomanItemSum);i++)</p><p><b>  {</b></p><p>  pNode = (MatchPro *)malloc(sizeof(MatchPro));</p><p>  if(NULL

114、== pNode)</p><p><b>  {</b></p><p>  printf("分配內(nèi)存失敗,程序結(jié)束\n");</p><p><b>  getch();</b></p><p><b>  exit(-1);</b></p>

115、<p><b>  }</b></p><p>  if(i<PreNode->ManItemSum)</p><p><b>  {</b></p><p>  printf(" 請輸入第%d個男子比賽項目的名稱 \n",i+1);</p>

116、<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf(" 請輸入第%d個女子比賽項目的名稱 \n",i+1);</p><p> 

117、 flag1 = 1;</p><p><b>  }</b></p><p>  scanf("%s",pNode->MatchName);</p><p>  pNode->MatchNumber = i+1;</p><p>  if( (i+1)%3 == 0)</p>

118、<p><b>  {</b></p><p>  for(j = 0;j < 3; j++)</p><p><b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b><

119、/p><p>  printf("請輸入第%d名學(xué)校的編號.\n",j+1);</p><p>  scanf("%d",&SchoolNum);</p><p>  if(SchoolNum<0||SchoolNum>PreNode->SchoolSum)</p><p><

120、;b>  {</b></p><p>  printf("您輸入數(shù)據(jù)非法,請重新輸入!\n");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

121、;<p>  pNode->range[j]=SchoolNum;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  while(1)<

122、;/b></p><p><b>  {</b></p><p>  printf("請輸入第%d名運動員的編號.\n",j+1);</p><p>  scanf("%d",&PlayerNum);</p><p>  for(m=0;m<SchoolHead

123、[pNode->range[j]-1].PlayerData;m++)</p><p><b>  {</b></p><p>  if(SchoolHead[pNode->range[j]-1].PlayerHead[m].PlayerNumber==PlayerNum)</p><p><b>  {</b>

124、;</p><p>  pNode->Player[j]=PlayerNum;</p><p><b>  flag = 1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><

125、;b>  }</b></p><p>  if(flag == 1 && flag1 + 1 == SchoolHead[pNode->range[j]-1].PlayerHead[m].Sex)</p><p><b>  {</b></p><p><b>  flag = 0;</b

126、></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("

127、;您輸入運動員數(shù)據(jù)有誤,請重新輸入!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  switch(j+1)</p><p><b>  {</b></p><p><b>

128、;  case 1:</b></p><p><b>  {</b></p><p>  SchoolHead[pNode->range[j]-1].PlayerHead[m].PlayerScore+=5;</p><p>  if(i<PreNode->ManItemSum)</p><p&

129、gt;<b>  {</b></p><p>  SchoolHead[pNode->range[j]-1].MenScore+=5;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</

130、b></p><p>  SchoolHead[pNode->range[j]-1].WomenScore+=5;</p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }</b></p>

131、<p><b>  case 2:</b></p><p><b>  {</b></p><p>  SchoolHead[pNode->range[j]-1].PlayerHead[m].PlayerScore+=3;</p><p>  if(i<PreNode->ManItemSum)

132、</p><p><b>  {</b></p><p>  SchoolHead[pNode->range[j]-1].MenScore+=3;</p><p><b>  }</b></p><p><b>  else</b></p><p>

133、;<b>  {</b></p><p>  SchoolHead[pNode->range[j]-1].WomenScore+=3;</p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }<

134、;/b></p><p><b>  case 3:</b></p><p><b>  {</b></p><p>  SchoolHead[pNode->range[j]-1].PlayerHead[m].PlayerScore+=2;</p><p>  if(i<PreNo

135、de->ManItemSum)</p><p><b>  {</b></p><p>  SchoolHead[pNode->range[j]-1].MenScore+=2;</p><p><b>  }</b></p><p><b>  else</b>&l

136、t;/p><p><b>  {</b></p><p>  SchoolHead[pNode->range[j]-1].WomenScore+=2;</p><p><b>  }</b></p><p><b>  break;</b></p><p&

137、gt;<b>  }</b></p><p>  default: break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b&g

138、t;  else</b></p><p><b>  {</b></p><p>  for(j=0;j<5;j++)</p><p><b>  {</b></p><p><b>  while(1)</b></p><p><

139、;b>  {</b></p><p>  printf("請輸入第%d名學(xué)校的編號.\n",j+1);</p><p>  scanf("%d",&SchoolNum);</p><p>  if(SchoolNum<0||SchoolNum>PreNode->SchoolSum)&

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論