2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩31頁(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>  運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)</b></p><p>  根據(jù)課程設(shè)計(jì)任務(wù)書(shū)要求,本系統(tǒng)開(kāi)發(fā)主要完成以下功能和性能。</p><p>  任務(wù):參加運(yùn)動(dòng)會(huì)有n個(gè)學(xué)校,學(xué)校編號(hào)為1……n。比賽分成m個(gè)男子項(xiàng)目,和w個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子1……m,女子m+1……m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積

2、分分別為:5、3、2;哪些取前五名或前三名由學(xué)生自己設(shè)定。(m<=20,n<=20)</p><p><b>  功能要求:</b></p><p>  (1).可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績(jī);</p><p>  (2).能統(tǒng)計(jì)各學(xué)??偡?;</p><p>  (3).可以按學(xué)校編號(hào)、學(xué)??偡帧⒛信?/p>

3、團(tuán)體總分排序輸出;</p><p>  (4).可以按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號(hào)查詢?nèi)〉们叭蚯拔迕膶W(xué)校。</p><p>  規(guī)定:輸入數(shù)據(jù)形式和范圍:20以內(nèi)的整數(shù)(如果做得更好可以輸入學(xué)校的名稱,運(yùn)動(dòng)項(xiàng)目的名稱)</p><p>  輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整形</p><p>  界面要求:有合理的提示

4、,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。</p><p>  存儲(chǔ)結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計(jì),但是要求運(yùn)動(dòng)會(huì)的相關(guān)數(shù)據(jù)要存儲(chǔ)在數(shù)據(jù)文件中。</p><p><b>  2需求分析</b></p><p><b>  2.1 功能需求</b></p><p>  本系統(tǒng)主

5、要是運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)方案設(shè)計(jì)。</p><p>  運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)方案適合采用結(jié)構(gòu)體數(shù)組,為了實(shí)現(xiàn)系統(tǒng)功能,主要應(yīng)實(shí)現(xiàn)以下幾部分:比賽成績(jī)輸入、比賽成績(jī)輸出、查詢比賽成績(jī)和調(diào)用統(tǒng)計(jì)結(jié)果。 </p><p><b>  2.2數(shù)據(jù)需求</b></p><p>  需要輸入學(xué)校編號(hào),項(xiàng)目編號(hào),取得的名次,以及哪些名次。</p><

6、p><b>  2.3 性能需求</b></p><p>  本程序在運(yùn)行期間,為了避免在運(yùn)行大量數(shù)據(jù)時(shí)不會(huì)出錯(cuò),并且能夠在很短的時(shí)間內(nèi)將運(yùn)行結(jié)果穩(wěn)定輸出,就需要系統(tǒng)達(dá)到安全性能好,可靠性高,穩(wěn)定性強(qiáng),處理數(shù)據(jù)迅速等特點(diǎn)。</p><p><b>  3總體設(shè)計(jì)</b></p><p><b>  3.1系

7、統(tǒng)設(shè)計(jì)方案</b></p><p>  本方案要求準(zhǔn)備結(jié)構(gòu)體數(shù)組、讀寫(xiě)文件。還能把信息直接輸入存儲(chǔ)到文件中,讀取文件中信息,從而得到結(jié)果。</p><p><b>  (1) 菜單設(shè)計(jì)</b></p><p>  分為主函數(shù)菜單、比賽成績(jī)輸出菜單、查詢分?jǐn)?shù)統(tǒng)計(jì)結(jié)果菜單、查詢方式子菜單。</p><p>  (

8、2) 數(shù)據(jù)保存方式</p><p>  建立文件,數(shù)據(jù)保存在文件中。運(yùn)動(dòng)運(yùn)分?jǐn)?shù)統(tǒng)計(jì)程序</p><p><b>  (3) 數(shù)據(jù)類型</b></p><p><b>  采用結(jié)構(gòu)體類型。</b></p><p><b>  (4) 存儲(chǔ)結(jié)構(gòu)</b></p><

9、;p>  采用結(jié)構(gòu)體類型數(shù)組存儲(chǔ)結(jié)構(gòu)存儲(chǔ)。</p><p><b>  (5) 算法設(shè)計(jì)</b></p><p>  輸入比賽結(jié)果模塊中運(yùn)用了冒泡算法將輸入的數(shù)據(jù)排序。</p><p><b>  3.2功能模塊設(shè)計(jì)</b></p><p>  根據(jù)分析整個(gè)系統(tǒng)主要?jiǎng)澐譃?個(gè)功能模塊,分別執(zhí)行

10、要求中的功能。該系統(tǒng)分為比賽成績(jī)輸入、比賽成績(jī)輸出、查詢比賽成績(jī)和調(diào)用統(tǒng)計(jì)結(jié)果。比賽成績(jī)輸出模塊有四個(gè)子模塊,分別是:按學(xué)校編號(hào)輸出模塊、按學(xué)校總分輸出模塊、安南員總分輸出模塊和按女團(tuán)總分輸出模塊;查詢比賽成績(jī)模塊分為按學(xué)校編號(hào)查詢模塊河岸項(xiàng)目編號(hào)查詢兩個(gè)子模塊。</p><p>  功能模塊圖如圖1所示。 </p><p><b>  圖1功能模塊圖</b>&

11、lt;/p><p><b>  比賽成績(jī)輸入模塊</b></p><p>  比賽成績(jī)輸入模塊分為:創(chuàng)建信息部分,該部分需輸入學(xué)校編號(hào),項(xiàng)目編號(hào),取得的名次,以及哪些名次;算法部分,得到排序結(jié)果。 </p><p><b>  比賽成績(jī)輸出模塊</b></p><p>  將以輸入的數(shù)據(jù)按照輸出比賽菜單

12、的選擇輸出相應(yīng)的數(shù)據(jù)。</p><p><b>  查詢比賽成績(jī)模塊</b></p><p>  按照查詢比賽結(jié)果菜單和其查詢方式子菜單查詢需要的數(shù)據(jù)。</p><p><b>  調(diào)用統(tǒng)計(jì)結(jié)果</b></p><p>  將輸入的各學(xué)校運(yùn)動(dòng)會(huì)成績(jī)排序輸出。</p><p>

13、<b>  4詳細(xì)</b></p><p><b>  設(shè)計(jì)</b></p><p>  4.1 數(shù)據(jù)結(jié)構(gòu)定義</p><p><b>  建立結(jié)構(gòu)體如下:</b></p><p>  typedef struct</p><p><b> 

14、 { </b></p><p>  int itemnum; //項(xiàng)目編號(hào)</p><p>  int top; //取名次的數(shù)目</p><p>  int range[5]; //名次</p><p>  int mark[5]; //分?jǐn)?shù)</p><p>  }itemnode; //定義

15、項(xiàng)目結(jié)點(diǎn)的類型</p><p>  typedef struct</p><p><b>  {</b></p><p>  int schoolnum; //學(xué)校編號(hào)</p><p>  int score; //學(xué)??偡?lt;/p><p>  int mscore; //男團(tuán)體總分

16、</p><p>  int wscore; //女團(tuán)體總分</p><p>  itemnode c[m+w]; //項(xiàng)目數(shù)組</p><p>  }headnode;//定義頭結(jié)點(diǎn)類型</p><p>  4.2比賽成績(jī)輸入模塊</p><p>  比賽成績(jī)輸入模塊需要輸入學(xué)校編號(hào),項(xiàng)目編號(hào),取得的名次,以

17、及哪些名次。算法模塊流程圖如圖2所示.</p><p>  圖2比賽成績(jī)輸入模塊流程圖 </p><p>  此模塊定義變量i,j,k,s;先初始化儲(chǔ)存分?jǐn)?shù)的數(shù)組各元素,for循環(huán)實(shí)現(xiàn)各學(xué)校信息的輸入,包括學(xué)校編號(hào)、項(xiàng)目編號(hào)、取前3名or前5名、獲得幾個(gè)名次,使用switch語(yǔ)句實(shí)現(xiàn)對(duì)輸入的各個(gè)名次賦予對(duì)應(yīng)的分?jǐn)?shù)。</p><p>

18、;<b>  4.3比賽成績(jī)輸出</b></p><p>  比賽成績(jī)輸出模塊實(shí)現(xiàn)按要求輸出相應(yīng)的數(shù)據(jù)。有以下輸出選項(xiàng):按學(xué)校編號(hào)輸出、按學(xué)??偡州敵?、按男團(tuán)總分輸出、按女團(tuán)總分輸出。</p><p>  圖3比賽成績(jī)輸出模塊流程圖</p><p>  模塊定義了int choice,i,j,k;int remember[n];int sign

19、變量,do…while包括switch語(yǔ)句,選擇輸出按學(xué)校編號(hào)輸出、按學(xué)校總分輸出、按男團(tuán)總分輸出、按女團(tuán)總分輸出相應(yīng)的數(shù)據(jù)。for循環(huán)實(shí)現(xiàn)輸出各個(gè)方式輸出的每個(gè)數(shù)據(jù)。</p><p>  4.4查詢比賽成績(jī)模塊</p><p>  查詢比賽成績(jī)模塊包括:按學(xué)校編號(hào)查詢,按項(xiàng)目編號(hào)查詢。其算法原理相同,例舉按學(xué)校項(xiàng)目編號(hào)查詢模塊。如圖4所示。</p><p>  圖

20、4按項(xiàng)目編號(hào)查詢模塊流程圖</p><p>  此模塊定義了int choice; int i,j,k,s; switch(choice)實(shí)現(xiàn)查詢的兩種方式的選擇,當(dāng)i>n時(shí)輸出錯(cuò)誤:這個(gè)學(xué)校沒(méi)有參加此次運(yùn)動(dòng)會(huì)! 否則,輸入項(xiàng)目編號(hào),如果j>m+w||j==0,輸出此次運(yùn)動(dòng)會(huì)沒(méi)有這個(gè)項(xiàng)目。否則,使用for循環(huán)輸出相關(guān)數(shù)據(jù),從而實(shí)現(xiàn)查詢功能。</p><p>  4.5調(diào)用統(tǒng)

21、計(jì)結(jié)果模塊</p><p>  調(diào)用統(tǒng)計(jì)模塊從文件中讀取數(shù)據(jù)輸出,流程圖如圖5所示。</p><p>  圖5調(diào)用統(tǒng)計(jì)結(jié)果模塊流程圖</p><p>  此模塊定義了FILE *report; int i,j,k,s; for循環(huán)中套用for循環(huán),for循環(huán)分別對(duì)學(xué)校編號(hào)、學(xué)??偡?、男團(tuán)總分、女團(tuán)總分進(jìn)行輸出,在使用for循環(huán)對(duì)各學(xué)校的項(xiàng)目編號(hào)、所取名次數(shù)量、各個(gè)名

22、次輸出,實(shí)現(xiàn)對(duì)文件中的數(shù)據(jù)的調(diào)用。</p><p><b>  5調(diào)試與測(cè)試</b></p><p><b>  5.1 調(diào)試</b></p><p>  調(diào)試過(guò)程主要是運(yùn)行編制好的程序,然后遇到錯(cuò)誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問(wèn)題所在。本系統(tǒng)調(diào)試過(guò)程中遇到的主要問(wèn)題、原因和解決方法如下面介紹。</p>&l

23、t;p>  調(diào)試過(guò)程中出現(xiàn)的問(wèn)題和處理方式:</p><p><b>  程序出現(xiàn)語(yǔ)法錯(cuò)誤</b></p><p>  發(fā)現(xiàn)是輸入名次信息的地方忘帶地址符&。 添加取地址符。</p><p>  printf("*****名次:");</p><p>  scanf("%d&q

24、uot;,&h[i].c[j].range[s]);</p><p>  (2)在輸出模塊不能將全部的學(xué)校信息輸出,屬于算法編寫(xiě)錯(cuò)誤,正確的程序應(yīng)該為:if(h[remember[i]].mscore<h[j].mscore)</p><p>  k=remember[i];remember[i]=remember[j];remember[j]=k;</p>&

25、lt;p><b>  5.2 測(cè)試</b></p><p>  軟件測(cè)試是軟件生存期中的一個(gè)重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟從用戶的角度來(lái)看,普遍希望通過(guò)軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷,所以軟件測(cè)試應(yīng)該是“為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程”?;蛘哒f(shuō),軟件測(cè)試應(yīng)該根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行

26、程序,以發(fā)現(xiàn)程序錯(cuò)誤或缺陷。過(guò)度測(cè)試則會(huì)浪費(fèi)許多寶貴的資源。到測(cè)試后期,即使找到了錯(cuò)誤,然而付出了過(guò)高的代價(jià)。</p><p><b>  測(cè)試數(shù)據(jù)過(guò)程如下。</b></p><p>  (1) 輸入功能測(cè)試</p><p>  輸入數(shù)據(jù)1:1 1 1 3 3 1 2 3</p><p><b>  2 3 2

27、 2 3</b></p><p>  2 1 3 2 1 3</p><p>  2 3 3 1 2 3</p><p><b>  預(yù)期結(jié)果:</b></p><p><b>  學(xué)校編號(hào):1</b></p><p><b>  學(xué)校總分:15<

28、/b></p><p><b>  男團(tuán)總分:10</b></p><p><b>  女團(tuán)總分:5</b></p><p><b>  項(xiàng)目編號(hào):1</b></p><p><b>  所取名次數(shù):3</b></p><p>

29、;<b>  名次:1</b></p><p><b>  名次:2</b></p><p><b>  名次:3</b></p><p><b>  分?jǐn)?shù):5</b></p><p><b>  分?jǐn)?shù):3</b></p>

30、<p><b>  分?jǐn)?shù):2</b></p><p><b>  項(xiàng)目編號(hào):2</b></p><p><b>  所取名次數(shù):3</b></p><p><b>  名次:2</b></p><p><b>  名次:3</

31、b></p><p><b>  分?jǐn)?shù):3</b></p><p><b>  分?jǐn)?shù):2</b></p><p><b>  學(xué)校編號(hào):2</b></p><p><b>  學(xué)??偡郑?7</b></p><p><b

32、>  男團(tuán)總分:7</b></p><p><b>  女團(tuán)總分:10</b></p><p><b>  項(xiàng)目編號(hào):1</b></p><p><b>  所取名次數(shù):3</b></p><p><b>  名次:1</b></p

33、><p><b>  名次:3</b></p><p><b>  分?jǐn)?shù):5</b></p><p><b>  分?jǐn)?shù):2</b></p><p><b>  項(xiàng)目編號(hào):2</b></p><p><b>  所取名次數(shù):3&

34、lt;/b></p><p><b>  名次:1</b></p><p><b>  名次:2</b></p><p><b>  名次:3</b></p><p><b>  分?jǐn)?shù):5</b></p><p><b&

35、gt;  分?jǐn)?shù):3</b></p><p><b>  分?jǐn)?shù):2</b></p><p><b>  運(yùn)行結(jié)果:</b></p><p><b>  學(xué)校編號(hào):1</b></p><p><b>  學(xué)??偡郑?5</b></p>

36、<p><b>  男團(tuán)總分:10</b></p><p><b>  女團(tuán)總分:5</b></p><p><b>  項(xiàng)目編號(hào):1</b></p><p><b>  所取名次數(shù):3</b></p><p><b>  名次:1&

37、lt;/b></p><p><b>  名次:2</b></p><p><b>  名次:3</b></p><p><b>  分?jǐn)?shù):5</b></p><p><b>  分?jǐn)?shù):3</b></p><p><b&

38、gt;  分?jǐn)?shù):2</b></p><p><b>  項(xiàng)目編號(hào):2</b></p><p><b>  所取名次數(shù):3</b></p><p><b>  名次:2</b></p><p><b>  名次:3</b></p>

39、<p><b>  分?jǐn)?shù):3</b></p><p><b>  分?jǐn)?shù):2</b></p><p><b>  學(xué)校編號(hào):2</b></p><p><b>  學(xué)??偡郑?7</b></p><p><b>  男團(tuán)總分:7</

40、b></p><p><b>  女團(tuán)總分:10</b></p><p><b>  項(xiàng)目編號(hào):1</b></p><p><b>  所取名次數(shù):3</b></p><p><b>  名次:1</b></p><p>&l

41、t;b>  名次:3</b></p><p><b>  分?jǐn)?shù):5</b></p><p><b>  分?jǐn)?shù):2</b></p><p><b>  項(xiàng)目編號(hào):2</b></p><p><b>  所取名次數(shù):3</b></p&g

42、t;<p><b>  名次:1</b></p><p><b>  名次:2</b></p><p><b>  名次:3</b></p><p><b>  分?jǐn)?shù):5</b></p><p><b>  分?jǐn)?shù):3</b&g

43、t;</p><p><b>  分?jǐn)?shù):2</b></p><p>  按照要求輸入的數(shù)據(jù)能夠顯示正確的結(jié)果。</p><p><b>  6結(jié)論</b></p><p>  課程設(shè)計(jì)順利完成,任務(wù)書(shū)中所提出的要求全部實(shí)現(xiàn)不過(guò)這個(gè)程序還有些不夠完善,例如:輸入學(xué)校各舒適與現(xiàn)在宏定義中確定的,不能改變

44、,有待進(jìn)一步完善。</p><p><b>  結(jié)束語(yǔ)</b></p><p>  因?yàn)樵诶碚搶W(xué)習(xí)中沒(méi)有好好的掌握,現(xiàn)在要獨(dú)立完成一個(gè)較復(fù)雜的程序編寫(xiě),確實(shí)有困難。</p><p>  今后我必需扎實(shí)基礎(chǔ)理論、認(rèn)真思考,而且要踐行我的承諾,一步一個(gè)腳印的走下去,才可以達(dá)到我們預(yù)期的彼岸!仔細(xì)回顧數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)過(guò)程,發(fā)現(xiàn)其實(shí)他也并不是想象中的那么

45、難。只要肯去攀登!</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)(第三版).清華大學(xué)出版社,2007</p><p>  [2] 姜靈芝,余健.C語(yǔ)言課程設(shè)計(jì)案例精編.清華大學(xué)出版社,2008</p><p>  [3] 吳偉民,嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu).清華大學(xué)出版社,200

46、8</p><p>  [4] 李廉治,姜文清,郭福順.數(shù)據(jù)結(jié)構(gòu).大連理工大學(xué)出版社,1989年</p><p>  [5] 網(wǎng)上相關(guān)資料</p><p><b>  附錄1-用戶手冊(cè)</b></p><p>  (1)首先運(yùn)行文件運(yùn)動(dòng)會(huì)統(tǒng)計(jì)分?jǐn)?shù)7.exe:如圖6所示:</p><p>  圖6運(yùn)

47、行運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)界面</p><p><b>  (2) 輸入信息:</b></p><p>  程序首先賦初值,定義學(xué)校的個(gè)數(shù)為2,男生項(xiàng)目為1,女生項(xiàng)目為1。輸入1得到進(jìn)入輸入信息模塊。如圖7所示:</p><p>  圖7輸入學(xué)校運(yùn)動(dòng)會(huì)分?jǐn)?shù)界面</p><p>  按回車(chē)鍵可得到學(xué)校的得分信息和按編號(hào)獲得的所以信息

48、。</p><p><b>  (3)輸出信息</b></p><p>  輸入2進(jìn)入輸出信息模塊,該模塊分四項(xiàng): 如圖8所示:</p><p>  圖8輸出運(yùn)動(dòng)會(huì)分?jǐn)?shù)界面</p><p>  按學(xué)校編號(hào)輸出: 如圖9所示: </p><p>  圖9按學(xué)校編號(hào)輸出分

49、數(shù)界面</p><p>  按學(xué)??偡州敵觯喝鐖D10所示:</p><p>  圖9按學(xué)校總分輸出分?jǐn)?shù)界面</p><p>  按男團(tuán)總分輸出:如圖11所示:</p><p>  圖11按學(xué)校編號(hào)男團(tuán)總分輸出分?jǐn)?shù)界面</p><p>  按女團(tuán)總分輸出:如圖12所示:</p><p>  圖12

50、按女團(tuán)總分輸出分?jǐn)?shù)界面</p><p>  輸入2返回輸出信息模塊,輸入0返回主菜單。</p><p>  (4)查詢信息:如圖13所示:</p><p>  輸入3進(jìn)入信息查詢模塊: </p><p><b>  圖13查詢界面</b></p><p>  按學(xué)校編號(hào)查詢:

51、如圖14所示:</p><p>  圖14按學(xué)校編號(hào)查詢界面</p><p>  按項(xiàng)目編號(hào)查詢:如圖15所示:</p><p>  圖15按項(xiàng)目編號(hào)查詢界面</p><p>  輸入錯(cuò)誤信息時(shí)給出提示:如圖16、17所示:</p><p><b>  圖16錯(cuò)誤提示界面</b></p>

52、;<p><b>  圖17錯(cuò)誤提示界面</b></p><p>  輸入2繼續(xù)查詢,輸入0返回主菜單</p><p><b>  (5) 調(diào)用信息</b></p><p>  輸入4時(shí)顯示出所有的信息:如圖18、19所示:</p><p><b>  圖18調(diào)用信息界面&l

53、t;/b></p><p><b>  圖19調(diào)用信息界面</b></p><p><b>  附錄2-源程序</b></p><p>  #include<stdio.h></p><p>  #include<math.h></p><p>

54、  #include <conio.h></p><p>  #include <process.h></p><p>  #define n 2//學(xué)校數(shù)目 </p><p>  #define m 1//男子項(xiàng)目數(shù)目 </p><p>  #define w 1//女子項(xiàng)目數(shù)目</p><p&

55、gt;  #define null 0</p><p>  typedef struct</p><p><b>  { </b></p><p>  int itemnum; //項(xiàng)目編號(hào)</p><p>  int top; //取名次的數(shù)目</p><p>  int range[5]

56、; //名次</p><p>  int mark[5]; //分?jǐn)?shù)</p><p>  }itemnode; //定義項(xiàng)目結(jié)點(diǎn)的類型</p><p>  typedef struct</p><p><b>  {</b></p><p>  int schoolnum; //學(xué)校編號(hào)

57、</p><p>  int score; //學(xué)??偡?lt;/p><p>  int mscore; //男團(tuán)體總分</p><p>  int wscore; //女團(tuán)體總分</p><p>  itemnode c[m+w]; //項(xiàng)目數(shù)組</p><p>  }headnode;//定義頭結(jié)點(diǎn)類

58、型</p><p>  headnode h[n];//定義一個(gè)頭結(jié)點(diǎn)數(shù)組</p><p>  void inputinformation() //輸入信息,建立系統(tǒng)</p><p><b>  {</b></p><p>  int i,j,k,s;</p><p>  for(i=0;i&l

59、t;n;i++)</p><p><b>  { </b></p><p>  h[i].score=0;</p><p>  h[i].mscore=0;</p><p>  h[i].wscore=0;</p><p>  }

60、 //初始化頭結(jié)點(diǎn)</p><p>  for(i=0;i<n;i++)</p><p><b>  { </b></p><p>  printf("*****學(xué)校編號(hào):");</p><p>  scanf("%d",&h[i].schoolnu

61、m); //輸入頭結(jié)點(diǎn)信息</p><p>  for(j=0;j<m+w;j++)</p><p><b>  { </b></p><p>  printf("*****項(xiàng)目編號(hào):");</p><p>  scanf("%d",&h

62、[i].c[j].itemnum);</p><p>  printf("*****取前3名or前5名:");</p><p>  scanf("%d",&h[i].c[j].top);</p><p>  printf("*****獲得幾個(gè)名次:");</p><p>  

63、scanf("%d",&k); //輸入項(xiàng)目信息</p><p>  for(s=0;s<5;s++)</p><p>  h[i].c[j].range[s]=0, h[i].c[j].mark[s]=0; //初始化排名和分?jǐn)?shù)</p><p>  for(s=0;s<k;s++)

64、</p><p><b>  { </b></p><p>  printf("*****名次:");</p><p>  scanf("%d",&h[i].c[j].range[s]); //輸入所獲名次信息</p><p>  if(h[i].c[j

65、].top==3)</p><p>  switch(h[i].c[j].range[s])</p><p><b>  {</b></p><p>  case 0: h[i].c[j].mark[s]=0; break;</p><p>  case 1: h[i].c[j].mark[s]=5; break;<

66、;/p><p>  case 2: h[i].c[j].mark[s]=3; break;</p><p>  case 3: h[i].c[j].mark[s]=2; break;</p><p><b>  }</b></p><p><b>  else</b></p><p&

67、gt;  switch(h[i].c[j].range[s])</p><p><b>  {</b></p><p>  case 0: h[i].c[j].mark[s]=0; break;</p><p>  case 1: h[i].c[j].mark[s]=7; break;</p><p>  case 2:

68、 h[i].c[j].mark[s]=5; break;</p><p>  case 3: h[i].c[j].mark[s]=3; break;</p><p>  case 4: h[i].c[j].mark[s]=2; break;</p><p>  case 5: h[i].c[j].mark[s]=1; break;</p><p&

69、gt;<b>  }</b></p><p>  h[i].score=h[i].score+h[i].c[j].mark[s];</p><p>  //按取前三名還是取前五名分別記分</p><p>  if(j<=m-1)</p><p>  h[i].mscore=h[i].mscore+h[i].c[j]

70、.mark[s];</p><p>  //是男子項(xiàng)目則記到男子分?jǐn)?shù)里面去</p><p><b>  else</b></p><p>  h[i].wscore=h[i].wscore+h[i].c[j].mark[s];</p><p>  //是女子項(xiàng)目則記到女子項(xiàng)目里面去</p><p>

71、;<b>  }</b></p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p> 

72、 void output() //輸出函數(shù)</p><p><b>  { </b></p><p>  int choice,i,j,k;</p><p>  int remember[n];</p><p><b>  int sign;</b></p><p>

73、<b>  do</b></p><p><b>  {</b></p><p>  printf("*******************1.按學(xué)校編號(hào)輸出.*******************\n");</p><p>  printf("*******************2.按學(xué)校

74、總分輸出.*******************\n");</p><p>  printf("*******************3.按男團(tuán)總分輸出.*******************\n");</p><p>  printf("*******************4.按女團(tuán)總分輸出.*******************\n"

75、);</p><p>  printf("\n\n******************* 請(qǐng)選擇編號(hào)*************************\n\n:");</p><p>  scanf("%d",&choice);</p><p>  switch(choice)</p><p>

76、<b>  { </b></p><p><b>  case 1:</b></p><p>  for(i=0;i<n;i++)</p><p><b>  { </b></p><p>  printf("\n\n*****學(xué)校編號(hào):%d\n",h

77、[i].schoolnum);</p><p>  printf("*****學(xué)??偡?%d\n" ,h[i].score);</p><p>  printf("*****男團(tuán)總分:%d\n",h[i].mscore);</p><p>  printf("*****女團(tuán)總分: %d\n\n\n",h[i

78、].wscore);</p><p>  } //按編號(hào)順序輸出</p><p><b>  break;</b></p><p>  case 2: </p><p>  for(i=0;i<n;i++)</p>

79、<p>  remember[i]=i;</p><p>  for(i=0;i<n;i++)</p><p><b>  { </b></p><p>  for(j=i+1;j<n;j++)</p><p>  if(h[remember[i]].score<h[j].score)<

80、/p><p>  k=remember[i];</p><p>  remember[i]=remember[j],remember[j]=k;</p><p>  } // 用冒泡排序方法,用輔助數(shù)組記住頭結(jié)點(diǎn)下標(biāo)</p><p>  for(i=0;i<n;i++)</p><p>&l

81、t;b>  {</b></p><p>  Printf(“\n\n*****學(xué)校編號(hào):%d\n”,h[remember[i]].schoolnum); </p><p>  printf("*****學(xué)校總分:%d\n" ,h[remember[i]].score);

82、</p><p>  printf("*****男團(tuán)總分:%d\n",h[remember[i]].mscore);</p><p>  printf("*****女團(tuán)總分: %d\n\n\n",h[remember[i]].wscore);</p><p>  //按所記下標(biāo)順序輸出</p><p>

83、  } //按學(xué)??偡州敵?lt;/p><p>  break; </p><p>  case 3: </p><p>  for(i=0;i<n;i++)</p><p>  remember[i]=i;</p><

84、;p>  for(i=0;i<n;i++)</p><p><b>  { </b></p><p>  for(j=i+1;j<n;j++)</p><p>  if(h[remember[i]].mscore<h[j].mscore)</p><p>  k=remember[i];remem

85、ber[i]=remember[j];remember[j]=k;</p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  printf("\n\n*****學(xué)校編號(hào):%d\n"

86、;,h[remember[i]].schoolnum);</p><p>  printf("*****學(xué)??偡?%d\n" ,h[remember[i]].score);</p><p>  printf("*****男團(tuán)總分:%d\n",h[remember[i]].mscore);</p><p>  printf(&q

87、uot;*****女團(tuán)總分: %d\n\n\n",h[remember[i]].wscore);</p><p>  } //按男團(tuán)總分輸出</p><p><b>  break;</b></p><p>  case 4: </p>

88、<p>  for(i=0;i<n;i++)</p><p>  remember[i]=i;</p><p>  for(i=0;i<n;i++)</p><p><b>  { </b></p><p>  for(j=i+1;j<n;j++)</p><p> 

89、 if(h[remember[i]].wscore<h[j].wscore)</p><p>  k=remember[i];</p><p>  remember[i]=remember[j];remember[j]=k;</p><p><b>  }</b></p><p>  for(i=0;i<n;

90、i++)</p><p><b>  {</b></p><p>  printf("\n\n*****學(xué)校編號(hào):%d\n",h[remember[i]].schoolnum);</p><p>  printf("*****學(xué)??偡?%d\n" ,h[remember[i]].score);</p

91、><p>  printf("*****男團(tuán)總分:%d\n",h[remember[i]].mscore);</p><p>  printf("*****女團(tuán)總分: %d\n\n\n",h[remember[i]].wscore);</p><p><b>  }</b></p><p&

92、gt;  break; //按女團(tuán)總分輸出</p><p><b>  }</b></p><p>  printf("請(qǐng)選擇 2 繼續(xù),0 跳出\n");</p><p>  scanf("%d",&sign);</p&g

93、t;<p>  }while(sign==2); //循環(huán)執(zhí)行輸出語(yǔ)句</p><p><b>  }</b></p><p>  void inquiry() //查詢函數(shù)</p><p&g

94、t;<b>  {</b></p><p>  int choice;</p><p>  int i,j,k,s;</p><p>  printf("\n*****1:按學(xué)校編號(hào)查詢\n");</p><p>  printf("\n*****2:按項(xiàng)目編號(hào)查詢\n");&

95、lt;/p><p>  printf("\n\n*****請(qǐng)選擇查詢方式:"); //提供兩種查詢方式</p><p>  scanf("%d",&choice);</p><p>  switch(choice)</p><p><b>  { </

96、b></p><p><b>  case 1:</b></p><p><b>  do</b></p><p><b>  { </b></p><p>  printf("要查詢的學(xué)校編號(hào):");</p><p>  sc

97、anf("%d",&i);</p><p><b>  if(i>n)</b></p><p>  printf("錯(cuò)誤:這個(gè)學(xué)校沒(méi)有參加此次運(yùn)動(dòng)會(huì)!\n\n\n");</p><p><b>  else</b></p><p><b&g

98、t;  {</b></p><p>  printf("要查詢的項(xiàng)目編號(hào):");</p><p>  scanf("%d",&j);</p><p>  if(j>m+w||j==0)</p><p>  printf("此次運(yùn)動(dòng)會(huì)沒(méi)有這個(gè)項(xiàng)目\n\n\n"

99、);</p><p>  //學(xué)校編號(hào)超出范圍,則輸出警告</p><p><b>  else</b></p><p><b>  { </b></p><p>  printf("這個(gè)項(xiàng)目取前 %d名,該學(xué)校的成績(jī)?nèi)缦?\n", h[0].c[j-1].top);</

100、p><p>  for(k=0;k<5;k++)</p><p>  if(h[i-1].c[j-1].range[k]!=0)</p><p>  printf("名次:%d\n",h[i-1].c[j-1].range[k]);</p><p>  //輸出要查詢學(xué)校項(xiàng)目的成績(jī)</p><p>

101、;<b>  }</b></p><p><b>  }</b></p><p>  printf("請(qǐng)選擇 2 繼續(xù) , 0 跳出\n");</p><p>  scanf("%d",&s);</p><p>  printf("\n\n\

102、n");</p><p>  }while(s==2); //循環(huán)執(zhí)行輸出語(yǔ)句</p><p>  break; </p><p><b>  case 2:</b></p><p><b>  do</b>

103、;</p><p><b>  { </b></p><p>  printf("要查詢的項(xiàng)目編號(hào):");</p><p>  scanf("%d",&s);</p><p>  if(s>m+w||s==0)</p><p>  printf

104、("此次運(yùn)動(dòng)會(huì)不包括這個(gè)項(xiàng)目.\n\n\n");</p><p>  //項(xiàng)目編號(hào)超出范圍則輸出警告</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("該項(xiàng)目取前 %d名,取得名次的學(xué)校\n&quo

105、t;,h[0].c[s-1].top);</p><p>  for(i=0; i<n;i++)</p><p>  for(j=0;j<5;j++)</p><p>  if(h[i].c[s-1].range[j]!=0)</p><p>  printf("學(xué)校編號(hào):%d,名次:%d\n",h[i].sc

106、hoolnum,</p><p>  h[i].c[s-1].range[j]);</p><p>  } //輸出該項(xiàng)目取得名次學(xué)校的成績(jī)</p><p>  printf("\n\n\n繼續(xù) 2,跳出 0\n");</p><p>  scanf("%d&quo

107、t;,&i);</p><p>  printf("\n\n\n");</p><p>  }while(i==2);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  

108、}</b></p><p>  void writedata() //把數(shù)據(jù)存儲(chǔ)在文件中</p><p><b>  { </b></p><p>  FILE *report;</p><p><b>  int i; </

109、b></p><p>  if((report=fopen("sportsdata.txt","w"))==null)</p><p><b>  {</b></p><p>  printf("不能打開(kāi)文件\n");</p><p><b> 

110、 exit(1);</b></p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p>  fwrite(&h[i],sizeof(headnode),1,report);</p><p>  fclose(report);</p>

111、<p>  } //按頭結(jié)點(diǎn)塊寫(xiě)入 </p><p>  void readdata() //讀出文件中數(shù)據(jù)的函數(shù)</p><p><b>  { </b></p><p&

112、gt;  FILE *report;</p><p>  int i,j,k,s;</p><p>  if((report=fopen("sportsdata.txt","r"))==null)</p><p><b>  {</b></p><p>  printf("

113、;file can not be opened\n");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p><b>  { </b></p

114、><p>  printf("******學(xué)校編號(hào):");</p><p>  fread(&k,sizeof(int),1,report);</p><p>  printf("%d\n",k);</p><p>  printf("******學(xué)校總分:");</p&g

115、t;<p>  fread(&k,sizeof(int),1,report);</p><p>  printf("%d\n",k);</p><p>  printf("******男團(tuán)總分:");</p><p>  fread(&k,sizeof(int),1,report);</p&

116、gt;<p>  printf("%d\n",k);</p><p>  printf("******女團(tuán)總分:");</p><p>  fread(&k,sizeof(int),1,report);</p><p>  printf("%d\n",k);</p>&l

117、t;p>  printf("\n\n\n");</p><p><b>  getch();</b></p><p>  for(j=0;j<m+w;j++)</p><p><b>  {</b></p><p>  printf("******項(xiàng)目編號(hào):

118、");</p><p>  fread(&k,sizeof(int),1,report);</p><p>  printf("%d\n",k);</p><p>  printf("******所取名次數(shù)量:");</p><p>  fread(&k,sizeof(int)

119、,1,report);</p><p>  printf("%d\n",k);</p><p>  for(s=0;s<5;s++)</p><p><b>  { </b></p><p>  fread(&k,sizeof(int),1,report);</p><

120、;p><b>  if(k!=0)</b></p><p>  printf("******名次:"),</p><p>  printf("%d\n",k);</p><p><b>  }</b></p><p>  for(s=0;s<5;s

121、++)</p><p><b>  { </b></p><p>  fread(&k,sizeof(int),1,report);</p><p>  if(k!=0) printf("******分?jǐn)?shù):"),</p><p>  printf("%d\n",k);<

122、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("\n\n\n");</p><p><b>  getch();</b></p><p><b>  } <

123、;/b></p><p>  fclose(report); //關(guān)閉文件</p><p>  } //按照讀一個(gè)數(shù)據(jù)就輸出一個(gè)數(shù)據(jù)的方式顯示數(shù)據(jù)內(nèi)容</p><p>  void main()</p><p><b

124、>  { </b></p><p>  int choice;</p><p>  printf("======================歡迎使用======================\n"); printf("\n\n*****************運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)********************\n"

125、;);</p><p>  printf("\n\n********************1.輸入信息*************************\n");</p><p>  printf("********************2.輸出信息*************************\n");</p><p&g

126、t;  printf("********************3.查詢信息*************************\n");</p><p>  printf("********************4.調(diào)用信息*************************\n");</p><p>  printf("*********

127、***********5.退出系統(tǒng)*************************\n\n\n");</p><p>  printf("================================================\n\n");</p><p>  printf("********請(qǐng)選擇要實(shí)現(xiàn)步驟的編號(hào):\n\n");

128、</p><p>  scanf("%d",&choice);</p><p>  switch(choice)</p><p><b>  { </b></p><p><b>  case 1: </b></p><p>  inputinfo

129、rmation();writedata();readdata();main();</p><p><b>  case 2: </b></p><p>  output();main();</p><p><b>  case 3: </b></p><p>  inquiry();main();&

130、lt;/p><p><b>  case 4: </b></p><p>  readdata();main();</p><p><b>  case 5: </b></p><p><b>  exit(0);</b></p><p><b>

溫馨提示

  • 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)論