版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)設(shè)計(jì)
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)-數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)(c語(yǔ)言版)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(含源代碼)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論