

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘 要</b></p><p> 21世紀是個信息化的時代,現(xiàn)代計算機技術的發(fā)展,為各行各業(yè)的發(fā)展創(chuàng)造了一個全新的時代背景——人們的生活、工作等已經(jīng)越來越離不開計算機科學的運用,體育作為個人、家庭、社會的一個主要實踐領域,大大小小的運動會也在各大中院校中展開,自從計算機科學涉及運動領域后,人們對運動會的管理也從人工的向自動化轉變。運用數(shù)據(jù)結構的知識解決運動會
2、分數(shù)統(tǒng)計的問題,編寫一個程序來完成運動會分數(shù)統(tǒng)計系統(tǒng). 本程序設計中,可以輸入?yún)⒓舆\動會的學校編號及項目編號;根據(jù)具體情況選擇輸入?yún)⒓禹椖康哪信悇e和取成績名次類別;最后選擇輸入名次;實現(xiàn)數(shù)據(jù)統(tǒng)計,排序輸出,學院及項目查詢等功能。</p><p> 關鍵詞:運動會 分數(shù)統(tǒng)計程序 排序 查詢</p><p><b> 目 錄</b></p><p
3、> 1 設計內(nèi)容和要求1</p><p> 1.1具體內(nèi)容及要求1</p><p><b> 2.總體設計3</b></p><p> 2.1系統(tǒng)設計方案3</p><p> 2.2功能模塊設計3</p><p><b> 3.詳細設計5</b>
4、</p><p> 3.1數(shù)據(jù)結構定義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排序輸出學校總分
6、14</p><p> 4.4排序輸出男子團體總分14</p><p> 4.5排序輸出女子團體總分15</p><p> 4.6按學校查詢項目數(shù)據(jù)15</p><p> 4.7按項目查詢數(shù)據(jù)16</p><p><b> 5.總結17</b></p><p
7、><b> 參考文獻18</b></p><p><b> 致謝19</b></p><p><b> 1 設計內(nèi)容和要求</b></p><p> 數(shù)據(jù)結構課程設計是為數(shù)據(jù)結構課程獨立開設的實踐性教學環(huán)節(jié)。數(shù)據(jù)結構課程設計對于鞏固數(shù)據(jù)結構知識,加強學生的實際動手能力和提高學生綜合素
8、質(zhì)是十分必要的。課程設計的目的是要求學生達到熟練掌握C語言的基本知識和技能;了解并掌握數(shù)據(jù)結構與算法的設計方法,具備初步的獨立分析和設計能力;提高程序設計和調(diào)試能力。學生通過上機實習,驗證自己設計的算法的正確性。學會有效利用基本調(diào)試方法,迅速找出程序代碼中的錯誤并且修改;培養(yǎng)算法分析能力,分析所設計算法的時間復雜度和空間復雜度,進一步提高程序設計水平;初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設計、程序編碼、測試等基本方法和技能。</p
9、><p> 1.1具體內(nèi)容及要求</p><p> 根據(jù)課程設計任務書要求,本系統(tǒng)開發(fā)主要完成以下功能和性能。</p><p> 設計一個運動會分數(shù)統(tǒng)計程序。參加運動會有n個學院,學院編號為1…n。比賽分成m個男子項目和w個女子項目。編號為男子1…m,女子m+1…m+w。項目編號能被3整除的項目取前三名,其他項目取前五名。取前三名的積分分別是5、3、2,取前五名的
10、積分分別是7、5、3、2、1。要求如下:</p><p> 1)可以輸入各個項目前三名或前五名的信息(學院編號、學院名稱、運動員編號、運動員姓名、項目編號、項目名稱、名次);</p><p> 2)能統(tǒng)計個學院總分;</p><p> 3)可以按學院編號、學院總分、男女團體總分排序輸出;</p><p> 4)可以按學院編號查詢學校某
11、個項目的情況;可以按項目編號查詢?nèi)〉妹蔚膶W院名稱。</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> 可輸入學院信息(學院編號、學院名稱、運動員編號、運動員姓名、運動員性別、項目編號、項目名稱、名次),有中文提示,在輸入的同時限定輸入數(shù)據(jù)的大小以及一些錯誤輸入。</p><p><b> 輸出要求:</b></p><p> 輸出內(nèi)容整潔,排列有序。</p><p>
13、;<b> 界面要求:</b></p><p> 界面布局合理整潔,有合理的提示,每個功能可以設立菜單,根據(jù)提示,可以完成相關的功能要求。</p><p><b> 存儲結構:</b></p><p> 學生自己根據(jù)系統(tǒng)功能要求自己設計,但是要求運動會的相關數(shù)據(jù)要存儲在數(shù)據(jù)文件中。</p><p
14、><b> 2.總體設計</b></p><p><b> 2.1系統(tǒng)設計方案</b></p><p> 根據(jù)課程設計任務書要求,本方案要求準備結構體數(shù)組、讀寫文件。還能把信息直接輸入存儲到文件中,讀取文件中信息,從而得到結果。</p><p><b> 1) 菜單設計</b></
15、p><p> 分為主函數(shù)菜單,比賽數(shù)據(jù)輸入菜單,學院、男子團體、女子團體總分排序輸出菜單,查詢學院成績菜單、查詢項目排名菜單。</p><p><b> 2) 數(shù)據(jù)保存方式</b></p><p> 建立文件,數(shù)據(jù)保存在文件中。</p><p><b> 3) 數(shù)據(jù)類型</b></p>
16、;<p><b> 采用結構體類型。</b></p><p><b> 4) 存儲結構</b></p><p> 采用結構體類型數(shù)組存儲結構存儲。</p><p><b> 5) 算法設計</b></p><p> 輸入比賽結果模塊中運用了冒泡算法將輸入
17、的數(shù)據(jù)排序。</p><p><b> 2.2功能模塊設計</b></p><p> 根據(jù)分析整個系統(tǒng)主要劃分為4個功能模塊,分別執(zhí)行要求中的功能。該系統(tǒng)分為比賽數(shù)據(jù)輸入、總分排序輸出、查詢比賽成績模塊。總分排序輸出模塊有三個子模塊,分別是:按學??偡峙判蜉敵瞿K、按男子團體總分排序輸出模塊和按女子團體總分排序輸出模塊;查詢比賽成績模塊分為按學院編號查詢模塊和按項
18、目編號查詢兩個子模塊。</p><p> 圖2.1 功能模塊圖</p><p> 1) 比賽數(shù)據(jù)輸入模塊</p><p> 比賽成績輸入模塊分為:創(chuàng)建信息部分,創(chuàng)建學院數(shù),男子項目數(shù),女子項目數(shù),學院信息,比賽項目信息,運動員信息,成績輸入部分需根據(jù)項目編號,按排名依次輸入學院編號,運動員編號,最后將數(shù)據(jù)依次寫入文件。 </p><p>
19、; 2) 比賽成績輸出模塊</p><p> 讀取比賽數(shù)據(jù),冒泡算法排序,按選擇輸出學院、男子團體或女子團體總分的排名情況。</p><p> 3) 查詢比賽成績模塊</p><p> 選擇按學院編號查詢模塊或按項目編號查詢輸入相應的編號輸出查詢結果。</p><p><b> 3.詳細設計</b></p
20、><p><b> 3.1數(shù)據(jù)結構定義</b></p><p><b> 建立結構體如下:</b></p><p> typedef struct PlayerInfo//存儲運動員相關信息</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//存儲學校相關信息</p><p><b> {</b></p><p> char SchoolName[MAXSIZE];</p><p> int SchoolNumber;<
23、/p><p> int SchoolScore; //學校總分</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//存儲運動項目的相關信息</p><p><b> {</b></p><p>
25、; char MatchName[MAXSIZE];</p><p> int MatchNumber;</p><p> int range[5];//存儲獲得前三名或前五名的學校</p><p> int Player[5];//存儲獲得前三名或前五名的運動員</p><p> struct MatchItem *
26、next;</p><p> }MatchPro;</p><p> typedef struct PreNews//存儲要輸入的學校,男女項目個數(shù)</p><p><b> {</b></p><p> int SchoolSum;//學校總數(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ù)輸入模塊需要輸入學院數(shù),男子項目數(shù),女子項目數(shù),學院信息,比賽項目信息,運動員信息,成績輸入部分需根據(jù)項目編號,按排名依次輸入學院編號,運動員編號,最后將數(shù)據(jù)依次寫入文件。 </p><p> 此模塊定義變量i,j先初始化儲存分數(shù)的數(shù)組各元素,定義flag標記,while循環(huán)與for循環(huán)實現(xiàn)各學校信息的輸入,包括學校編號、項目編號、運動員編號,使用if語句實現(xiàn)對輸入的數(shù)據(jù)判斷是否合法,選擇是取前
29、三名或前五名,使用switch語句選擇添加總分。</p><p> 3.3比賽成績輸出模塊</p><p> 比賽成績輸出模塊實現(xiàn)按要求輸出相應的數(shù)據(jù)。有以下輸出選項:按學??偡峙判蜉敵?、按男子團體總分排序輸出和按女子團體總分排序輸出。</p><p> 模塊定義了int i,j,k,flag;School PTemp={0}變量, for循環(huán)包括switch
30、語句,選擇輸出按學??偡峙判蜉敵?、按男子團體總分排序輸出和按女子團體總分排序輸出相應的數(shù)據(jù),同時實現(xiàn)冒泡排序。for循環(huán)實現(xiàn)輸出各個方式輸出的每個數(shù)據(jù)。</p><p> 3.3查詢比賽成績模塊</p><p> 查詢比賽成績模塊包括:按學校編號查詢,按項目編號查詢。</p><p> 此模塊定義了int i,j; switch(choice)實現(xiàn)查詢的兩種
31、方式的選擇,使用while循環(huán)與for循環(huán)查詢相關數(shù)據(jù),從而輸出相關數(shù)據(jù),從而實現(xiàn)查詢功能。</p><p><b> 4.調(diào)試與測試</b></p><p> 程序測試是程序質(zhì)量保證的關鍵步驟從用戶的角度來看,普遍希望通過程序測試暴露程序中隱藏的錯誤和缺陷,所以程序測試應該是“為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”。或者說,程序測試應該根據(jù)程序開發(fā)各階段的規(guī)格說明和程序
32、的內(nèi)部結構而精心設計一批測試用例(即輸入數(shù)據(jù)及其預期的輸出結果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤或缺陷。過度測試則會浪費許多寶貴的資源。到測試后期,即使找到了錯誤,然而付出了過高的代價。調(diào)試過程主要是運行編制好的程序,然后遇到錯誤后根據(jù)系統(tǒng)的提示,找到相關的問題所在。以下是程序調(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排序輸出學??偡?lt;/p><p> 圖4.5排序輸出學校總分</p><p> 4.4排序輸出男子團體總分</p><p> 圖4.6排序輸出男子團體總分</p><p> 4.5排序輸出女子團體總分</p><p&g
42、t; 圖4.7排序輸出女子團體總分</p><p> 4.6按學校查詢項目數(shù)據(jù)</p><p> 圖4.8按學校查詢項目數(shù)據(jù)</p><p> 4.7按項目查詢數(shù)據(jù)</p><p> 圖4.9按學校查詢項目情況</p><p><b> 5.總結</b></p><
43、p> 課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新月異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開發(fā)技術是十分重要的?;仡櫰鸫舜握n程設計,至今我們?nèi)愿锌H多,的確,自從拿到題目到完成整個編程,從理論到實踐,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多
44、在書本上所沒有學到過的知識。通過這次課程設計使我們懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體,指針……通過這
45、次課程設計之后,我們把前面所學過的知識又重新溫故了一遍。</p><p> 善于總結,也是學習能力的一種體現(xiàn),每次完成一個編程任務,完成一段代碼,都應當有目的的跟蹤該程序的應用狀況,隨時總結,找到自己的不足,這樣所編寫的程序才能逐步提高.</p><p><b> 參考文獻</b></p><p> [1] 嚴蔚敏 吳偉民. 數(shù)據(jù)結構.
46、 清華大學出版社.2007.3</p><p> [2] 李春葆. 數(shù)據(jù)結構教程. 清華大學出版社.2005.1</p><p> [3] (美)Stephen Prata. C Primer Plus中文版(第五版). 人民郵電出版社.2005.2</p><p> [4] 楊路明 郭浩志. C語言程序設計教程. 北京郵電大學出版社. 2005.12&l
47、t;/p><p> [5] 譚浩強. C程序設計.第三版. 清華大學出版社. 2005.2</p><p> [6] 徐孝凱. 數(shù)據(jù)結構實用教程. 清華大學出版社. 2006.8</p><p> [7] 劉大有. 數(shù)據(jù)結構C語言版. 高等教育出版社. 2004</p><p><b> 致謝</b></p&g
48、t;<p> 首先感謝在本次課程設計中老師們的辛勤指導,感謝XX師,還要感謝在本次課程設計中幫助我的同學,感謝XX等同學的幫助,最終在老師和同學的幫助和指導下完成了這次的課程設計。</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)提示輸入關于運動會各種信息! \n\n");</p><p> printf(" 2
65、.排序輸出學校總分. \n\n");</p><p> printf(" 3.排序輸出男子團體總分. \n\n");</p><p> printf("
66、; 4.排序輸出女子團體總分. \n\n");</p><p> printf(" 5.按學校編號查詢學校某個項目的情況. \n\n"); </p><p> pri
67、ntf(" 6.按項目編號查詢?nèi)〉们叭蚯拔迕膶W校. \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校個數(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)存失敗,程序結束");</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個學校的名稱\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)存失敗,程序結束");</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)存失敗,程序結束\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名學校的編號.\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名學校的編號.\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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結構課程設計---運動會分數(shù)統(tǒng)計系統(tǒng)
- 數(shù)據(jù)結構課程設計-運動會分數(shù)統(tǒng)計系統(tǒng)
- 數(shù)據(jù)結構課程設計--運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計--運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計——運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計-運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計-- 運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計---運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計---運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計---運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構運動會分數(shù)統(tǒng)計課程設計
- 數(shù)據(jù)結構課程設計--運動會分數(shù)統(tǒng)計系統(tǒng)設計
- 《數(shù)據(jù)結構》課程設計報告--運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計報告運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計報告---運動會分數(shù)統(tǒng)計
- 數(shù)據(jù)結構課程設計報告-運動會分數(shù)統(tǒng)計
- 運動會分數(shù)統(tǒng)計-數(shù)據(jù)結構與算法課程設計報告
- 數(shù)據(jù)結構課程設計-運動會分數(shù)統(tǒng)計(c語言版)
- 運動會分數(shù)統(tǒng)計數(shù)據(jù)結構課程設計(含源代碼)
- 運動會分數(shù)統(tǒng)計系統(tǒng)課程設計
評論
0/150
提交評論