2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

17、的數(shù)據(jù)排序。</p><p><b>  2.2功能模塊設(shè)計(jì)</b></p><p>  根據(jù)分析整個(gè)系統(tǒng)主要?jiǎng)澐譃?個(gè)功能模塊,分別執(zhí)行要求中的功能。該系統(tǒng)分為比賽數(shù)據(jù)輸入、總分排序輸出、查詢比賽成績(jī)模塊。總分排序輸出模塊有三個(gè)子模塊,分別是:按學(xué)校總分排序輸出模塊、按男子團(tuán)體總分排序輸出模塊和按女子團(tuán)體總分排序輸出模塊;查詢比賽成績(jī)模塊分為按學(xué)院編號(hào)查詢模塊和按項(xiàng)

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

19、;  2) 比賽成績(jī)輸出模塊</p><p>  讀取比賽數(shù)據(jù),冒泡算法排序,按選擇輸出學(xué)院、男子團(tuán)體或女子團(tuán)體總分的排名情況。</p><p>  3) 查詢比賽成績(jī)模塊</p><p>  選擇按學(xué)院編號(hào)查詢模塊或按項(xiàng)目編號(hào)查詢輸入相應(yīng)的編號(hào)輸出查詢結(jié)果。</p><p><b>  3.詳細(xì)設(shè)計(jì)</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//存儲(chǔ)運(yùn)動(dòng)員相關(guān)信息</p><p><b>  {</b></p><p>

21、  char PlayerName[MAXSIZE];</p><p>  int Sex;//運(yùn)動(dòng)員性別</p><p>  int PlayerNumber;</p><p>  int PlayerScore;</p><p>  struct PlayerInfo *next;</p><p><

22、;b>  }Player;</b></p><p>  typedef struct SchoolInfo//存儲(chǔ)學(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//存儲(chǔ)運(yùn)動(dòng)項(xiàng)目的相關(guān)信息</p><p><b>  {</b></p><p>

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

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

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

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

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

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

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

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

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

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

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

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

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

48、t;<p>  首先感謝在本次課程設(shè)計(jì)中老師們的辛勤指導(dǎo),感謝XX師,還要感謝在本次課程設(shè)計(jì)中幫助我的同學(xué),感謝XX等同學(xué)的幫助,最終在老師和同學(xué)的幫助和指導(dǎo)下完成了這次的課程設(shè)計(jì)。</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、迎進(jìn)入運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)! \n\n");</p><p>  printf(" 1.按系統(tǒng)提示輸入關(guān)于運(yùn)動(dòng)會(huì)各種信息! \n\n");</p><p>  printf(" 2

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

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

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

68、 printf("\n\n\n請(qǐng)輸入你要進(jì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("請(qǐng)輸入?yún)⒓颖荣惖膶W(xué)校個(gè)數(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ù)不合法,請(qǐng)重新輸入!\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("請(qǐng)輸入男子比賽的項(xiàng)目個(gè)數(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ù)不合法,請(qǐng)重新輸入! \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("請(qǐng)輸入女子比賽的項(xiàng)目個(gè)數(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ù)不合法,請(qǐng)重新輸入! \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("請(qǐng)輸入運(yùn)動(dòng)員個(gè)數(shù): \n");</p><p>  scanf("%d",&PlayerCount);</p><p>  if(Pl

87、ayerCount<0)</p><p><b>  {</b></p><p>  printf("輸入數(shù)據(jù)不合法,請(qǐng)重新輸入! \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("寫(xiě)入成功!\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("請(qǐng)輸入第%d個(gè)學(xué)校的名稱(chēng)\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("請(qǐng)輸入第%d個(gè)運(yùn)動(dòng)員的名稱(chēng)\n",j+1);</p><p>  scanf("%s",&SchoolHe

100、ad[i].PlayerHead[j].PlayerName);</p><p>  printf("請(qǐng)輸入第%d個(gè)運(yùn)動(dòng)員的性別(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("運(yùn)動(dòng)員輸入有誤\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("寫(xiě)入成功!\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(" 請(qǐng)輸入第%d個(gè)男子比賽項(xiàng)目的名稱(chēng) \n",i+1);</p>

116、<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf(" 請(qǐng)輸入第%d個(gè)女子比賽項(xiàng)目的名稱(chēng) \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("請(qǐng)輸入第%d名學(xué)校的編號(hào).\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ù)非法,請(qǐng)重新輸入!\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("請(qǐng)輸入第%d名運(yùn)動(dòng)員的編號(hào).\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、;您輸入運(yùn)動(dòng)員數(shù)據(jù)有誤,請(qǐng)重新輸入!\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("請(qǐng)輸入第%d名學(xué)校的編號(hào).\n",j+1);</p><p>  scanf("%d",&SchoolNum);</p><p>  if(SchoolNum<0||SchoolNum>PreNode->SchoolSum)&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論