2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(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> 課程設(shè)計(jì)說(shuō)明書(shū)</p><p> 課 程數(shù)據(jù)結(jié)構(gòu)</p><p> 題 目運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)</p><p> 姓 名</p><p> 學(xué) 號(hào)</p><p> 專業(yè)班級(jí)</p><p> 指導(dǎo)教師</p><p> 完成日期

2、2012年12月25日</p><p><b>  1、緒言</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ì)的管理也從人

3、工的向自動(dòng)化轉(zhuǎn)變。運(yùn)用數(shù)據(jù)結(jié)構(gòu)的知識(shí)解決運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)的問(wèn)題,編寫一個(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)目的男女類別和取成績(jī)名次類別;最后選擇輸入名次;實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì),排序輸出,學(xué)院及項(xiàng)目查詢等功能。</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ì)的目的是要求學(xué)生達(dá)到熟練掌握C語(yǔ)言的基本知識(shí)和技能;

4、了解并掌握數(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><p><b>  2、需求分析</b

5、></p><p><b>  2.1 功能需求 </b></p><p>  本系統(tǒng)主要是運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)方案設(shè)計(jì)。任務(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,前三名的積分分別為:5、3、2;哪些取前五

6、名或前三名由學(xué)生自己設(shè)定。(m<=20,n<=20)</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),取得的名次,以及哪些名

7、次。</p><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、系統(tǒng)設(shè)計(jì)</b></p><p

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

9、gt;<p>  (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&g

10、t;</p><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ù)結(jié)構(gòu)定義</b></p><p><b>

11、  建立結(jié)構(gòu)體如下:</b></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[

12、5]; //名次</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é)校

13、編號(hào)</p><p>  int score; //學(xué)校總分</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é)

14、點(diǎn)類型</p><p><b>  3.3功能模塊設(shè)計(jì)</b></p><p>  根據(jù)分析整個(gè)系統(tǒng)主要?jiǎng)澐譃?個(gè)功能模塊,分別執(zhí)行要求中的功能。該系統(tǒng)分為比賽成績(jī)輸入、比賽成績(jī)輸出、查詢比賽成績(jī)和調(diào)用統(tǒng)計(jì)結(jié)果。比賽成績(jī)輸出模塊有四個(gè)子模塊,分別是:按學(xué)校編號(hào)輸出模塊、按學(xué)校總分輸出模塊、安南員總分輸出模塊和按女團(tuán)總分輸出模塊;查詢比賽成績(jī)模塊分為按學(xué)校編號(hào)查詢模塊和

15、按項(xiàng)目編號(hào)查詢兩個(gè)子模塊。</p><p><b>  比賽成績(jī)輸入模塊</b></p><p>  比賽成績(jī)輸入模塊分為:創(chuàng)建信息部分,該部分需輸入學(xué)校編號(hào),項(xiàng)目編號(hào),取得的名次,以及哪些名次;算法部分,得到排序結(jié)果。</p><p>  此模塊定義變量i, j, k, s ;先初始化儲(chǔ)存分?jǐn)?shù)的數(shù)組各元素,for循環(huán)實(shí)現(xiàn)各學(xué)校信息的輸入,包括

16、學(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><b>  比賽成績(jī)輸出模塊</b></p><p>  實(shí)現(xiàn)按要求輸出相應(yīng)的數(shù)據(jù)。有以下輸出選項(xiàng):按學(xué)校編號(hào)輸出、按學(xué)??偡州敵?、按男團(tuán)總分輸出、按女團(tuán)總分輸出。</p><p>  模塊定義了int choice,

17、i,j,k;int remember[n];int sign變量,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><b>  查詢比賽成績(jī)模塊</b></p><p>  查詢比賽成績(jī)模塊包括:按學(xué)校編號(hào)查詢,按項(xiàng)目編號(hào)查詢。</p

18、><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>  功能模塊圖如圖1所示。 </p

19、><p><b>  圖1功能模塊圖</b></p><p>  4、系統(tǒng)的實(shí)現(xiàn)與調(diào)試</p><p><b>  4.1 系統(tǒng)實(shí)現(xiàn)</b></p><p>  建立數(shù)據(jù)庫(kù)、應(yīng)用系統(tǒng)的編碼開(kāi)發(fā)、系統(tǒng)的運(yùn)行。</p><p>  1:主菜單界面,首先運(yùn)行文件運(yùn)動(dòng)會(huì)統(tǒng)計(jì)分?jǐn)?shù)。<

20、/p><p><b>  2:輸入信息:</b></p><p>  程序首先賦初值,定義學(xué)校的個(gè)數(shù)為2,男生項(xiàng)目為1,女生項(xiàng)目為1。</p><p>  3:查詢信息(例如按編號(hào)查詢)</p><p><b>  4.2 調(diào)試</b></p><p>  調(diào)試過(guò)程主要是運(yùn)行編制

21、好的程序,然后遇到錯(cuò)誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問(wèn)題所在。本系統(tǒng)調(diào)試過(guò)程中遇到的主要問(wèn)題、原因和解決方法如下面介紹。</p><p>  調(diào)試過(guò)程中出現(xiàn)的問(wèn)題和處理方式:</p><p> ?。?)程序出現(xiàn)語(yǔ)法錯(cuò)誤</p><p>  發(fā)現(xiàn)是輸入名次信息的地方忘帶地址符&。 添加取地址符。</p><p>  printf(&quo

22、t;*****名次:");</p><p>  scanf("%d",&h[i].c[j].range[s]);</p><p> ?。?)在輸出模塊不能將全部的學(xué)校信息輸出,屬于算法編寫錯(cuò)誤,正確的程序應(yīng)該為:if(h[remember[i]].mscore<h[j].mscore)</p><p>  k=rememb

23、er[i];</p><p>  remember[i]=remember[j];</p><p>  remember[j]=k;</p><p> ?。?)在調(diào)用文件時(shí)出現(xiàn)問(wèn)題,后來(lái)一步步調(diào)試,最終可以運(yùn)行。</p><p><b>  5、小結(jié)</b></p><p><b>  

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

25、;/p><p>  3.查詢比賽成績(jī)模塊</p><p>  按照查詢比賽結(jié)果菜單和其查詢方式子菜單查詢需要的數(shù)據(jù)。</p><p><b>  4.調(diào)用統(tǒng)計(jì)結(jié)果</b></p><p>  將輸入的各學(xué)校運(yùn)動(dòng)會(huì)成績(jī)排序輸出。</p><p>  5.2 系統(tǒng)及開(kāi)發(fā)過(guò)程的特點(diǎn)</p>&

26、lt;p>  輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整形</p><p>  界面要求:有合理的提示,每個(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>  5.3 存在的問(wèn)題與改進(jìn)方向</p><p>  功

27、能上有對(duì)分?jǐn)?shù)信息的輸入、輸出、查詢、調(diào)用等簡(jiǎn)單的功能。</p><p>  缺點(diǎn)是:輸入大量的信息時(shí)比較麻煩,但由于對(duì)知識(shí)掌握不熟練,所以做的不是很好,下次努力改進(jìn);在輸入信息的時(shí)候都是按數(shù)字輸入,沒(méi)能實(shí)現(xiàn)用學(xué)校和運(yùn)動(dòng)員的名字輸入,這點(diǎn)做的不是很好,下次改進(jìn);指針的概念復(fù)雜,使用較靈活,但容易出錯(cuò);對(duì)文件的使用掌握不熟練,編寫時(shí)比較困難,在打開(kāi)文件時(shí)出現(xiàn)問(wèn)題雖然不影響運(yùn)行結(jié)果但不知如何解決。</p>

28、<p><b>  5.4 自我體會(huì)</b></p><p>  1.自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。今后我必需扎實(shí)基礎(chǔ)理論、認(rèn)真思考,一步一個(gè)腳印的走下去,才可以達(dá)到我們預(yù)期的彼岸!</p><p> ?、惨粋€(gè)復(fù)雜的程序需要函數(shù)調(diào)用、結(jié)構(gòu)體、數(shù)

29、組、指針、文件等的綜合運(yùn)用,各個(gè)部分間緊密聯(lián)系。同時(shí),他們的使用使程序更加靈活、簡(jiǎn)潔、方便。單純掌握課本上的知識(shí)是不夠的,還需課外的閱讀。</p><p> ?、持豢總€(gè)人的努力是不夠的,小組成員之間的合作、明確的分工可使工作完成得更快。</p><p>  附錄1:程序源代碼 </p><p>  #include<stdio.h></p>

30、<p>  #include<math.h></p><p>  #include <conio.h></p><p>  #include <process.h></p><p>  #define n 3 //學(xué)校數(shù)目 </p><p>  #define m 2

31、 //男子項(xiàng)目數(shù)目 </p><p>  #define w 2 //女子項(xiàng)目數(shù)目</p><p>  #define null 0</p><p>  typedef struct</p><p><b>  { </b></p><p>  int itemn

32、um; //項(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; //定義項(xiàng)目結(jié)點(diǎn)的類型&

33、lt;/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;

34、 //男團(tuán)體總分</p><p>  int wscore; //女團(tuán)體總分</p><p>  itemnode c[m+w]; //項(xiàng)目數(shù)組</p><p>  }headnode; //定義頭結(jié)點(diǎn)類型</p><p>  headnode h[n]; //定義一個(gè)頭結(jié)點(diǎn)數(shù)組

35、</p><p>  void inputinformation() //輸入信息,建立系統(tǒng)</p><p><b>  {</b></p><p>  int i,j,k,s;</p><p>  for(i=0;i<n;i++)</p><p><b>  { </b&

36、gt;</p><p>  h[i].score=0;</p><p>  h[i].mscore=0;</p><p>  h[i].wscore=0;</p><p>  } //初始化頭結(jié)點(diǎn)</p><p>  for(i=0;

37、i<n;i++)</p><p><b>  { </b></p><p>  printf("*****學(xué)校編號(hào):");</p><p>  scanf("%d",&h[i].schoolnum); //輸入頭結(jié)點(diǎn)信息</p><p> 

38、 for(j=0;j<m+w;j++)</p><p><b>  { </b></p><p>  printf("*****項(xiàng)目編號(hào):");</p><p>  scanf("%d",&h[i].c[j].itemnum);</p><p>  printf(&

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

40、 //輸入項(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++)</p><p><b>  { </b>

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

42、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;</p><p>  case 2: h[i].c[j].mark[s]=3;

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

44、gt;<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: h[i].c[j].mark[s]=5; break;</p><p>

45、  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><b>  }</b></p><p>  h

46、[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].mark[s];</p><p>  //是男子項(xiàng)目則記到男子分?jǐn)?shù)里面去

47、</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><b>  }</b></p><p>  pri

48、ntf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void output() //輸出函數(shù)</p><p><

49、;b>  { </b></p><p>  int choice,i,j,k;</p><p>  int remember[n];</p><p><b>  int sign;</b></p><p><b>  do</b></p><p><b

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

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

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

53、>  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[i].schoolnum);</p><p>  printf(&quo

54、t;*****學(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].wscore);</p><p>  }

55、 //按編號(hào)順序輸出</p><p><b>  break;</b></p><p>  case 2: </p><p>  for(i=0;i<n;i++)</p><p>  remember[i]=i;</p><p>  f

56、or(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)</p><p>  k=remember[i];</p><

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

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

59、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>  }

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

61、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];</p><p>

62、  remember[i]=remember[j];</p><p>  remember[j]=k;</p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  printf

63、("\n\n*****學(xué)校編號(hào):%d\n",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);&l

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

65、gt;  case 4: </p><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&l

66、t;n;j++)</p><p>  if(h[remember[i]].wscore<h[j].wscore)</p><p>  k=remember[i];</p><p>  remember[i]=remember[j];</p><p>  remember[j]=k;</p><p><b&g

67、t;  }</b></p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  printf("\n\n*****學(xué)校編號(hào):%d\n",h[remember[i]].schoolnum);</p><p>  printf(&qu

68、ot;*****學(xué)??偡?%d\n" ,h[remember[i]].score);</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&g

69、t;<p><b>  }</b></p><p>  break; //按女團(tuán)總分輸出</p><p><b>  }</b></p><p>  printf("請(qǐng)選擇 2 繼續(xù),0 跳出\n");</p>

70、<p>  scanf("%d",&sign);</p><p>  }while(sign==2); //循環(huán)執(zhí)行輸出語(yǔ)句</p><p><b>  }</b></p><p>  void inquiry()

71、 //查詢函數(shù)</p><p><b>  {</b></p><p>  int choice;</p><p>  int i,j,k,s;</p><p>  printf("\n*****1:按學(xué)校編號(hào)查詢\n");</p>

72、<p>  printf("\n*****2:按項(xiàng)目編號(hào)查詢\n");</p><p>  printf("\n\n*****請(qǐng)選擇查詢方式:"); //提供兩種查詢方式</p><p>  scanf("%d",&choice);</p><p>  s

73、witch(choice)</p><p><b>  { </b></p><p><b>  case 1:</b></p><p><b>  do</b></p><p><b>  { </b></p><p>  pr

74、intf("要查詢的學(xué)校編號(hào):");</p><p>  scanf("%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>

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

76、><p>  printf("此次運(yùn)動(dòng)會(huì)沒(méi)有這個(gè)項(xiàng)目\n\n\n");</p><p>  //學(xué)校編號(hào)超出范圍,則輸出警告</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("這

77、個(gè)項(xiàng)目取前 %d名,該學(xué)校的成績(jī)?nèi)缦?\n", h[0].c[j-1].top);</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

78、><p>  //輸出要查詢學(xué)校項(xiàng)目的成績(jī)</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("請(qǐng)選擇 2 繼續(xù) , 0 跳出\n");</p><p>  scanf("%d"

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

80、t;/b></p><p><b>  do</b></p><p><b>  { </b></p><p>  printf("要查詢的項(xiàng)目編號(hào):");</p><p>  scanf("%d",&s);</p><p&g

81、t;  if(s>m+w||s==0)</p><p>  printf("此次運(yùn)動(dòng)會(huì)不包括這個(gè)項(xiàng)目.\n\n\n"); //項(xiàng)目編號(hào)超出范圍則輸出警告</p><p><b>  else</b></p><p><b>  {</b></p

82、><p>  printf("該項(xiàng)目取前 %d名,取得名次的學(xué)校\n",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>

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

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

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

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

87、");</p><p><b>  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>

88、<p>  fclose(report);</p><p>  } //按頭結(jié)點(diǎn)塊寫入 </p><p>  void readdata() //讀出文件中數(shù)據(jù)的函數(shù)</p><p>&l

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

90、></p><p>  printf("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>&

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

92、rintf("******學(xué)??偡?");</p><p>  fread(&k,sizeof(int),1,report);</p><p>  printf("%d\n",k);</p><p>  printf("******男團(tuán)總分:");</p><p>  fre

93、ad(&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><p>  pr

94、intf("%d\n",k);</p><p>  printf("\n\n\n");</p><p><b>  getch();</b></p><p>  for(j=0;j<m+w;j++)</p><p><b>  {</b></p&g

95、t;<p>  printf("******項(xiàng)目編號(hào):");</p><p>  fread(&k,sizeof(int),1,report);</p><p>  printf("%d\n",k);</p><p>  printf("******所取名次數(shù)量:");</p&g

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

97、k,sizeof(int),1,report);</p><p><b>  if(k!=0)</b></p><p>  printf("******名次:"),</p><p>  printf("%d\n",k);</p><p><b>  }</b>

98、</p><p>  for(s=0;s<5;s++)</p><p><b>  { </b></p><p>  fread(&k,sizeof(int),1,report);</p><p><b>  if(k!=0)</b></p><p>  pri

99、ntf("******分?jǐn)?shù):"),</p><p>  printf("%d\n",k);</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("\n\n\n");</p&

100、gt;<p><b>  getch();</b></p><p><b>  } </b></p><p>  fclose(report); //關(guān)閉文件</p><p>  } //按照讀一

101、個(gè)數(shù)據(jù)就輸出一個(gè)數(shù)據(jù)的方式顯示數(shù)據(jù)內(nèi)容</p><p>  void main()</p><p><b>  { </b></p><p>  int choice;</p><p>  printf("======================歡迎使用======================\n&q

102、uot;); </p><p>  printf("\n\n*****************運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)********************\n");</p><p>  printf("\n\n*************編程員:朱茜 史雯 劉金玉****************\n");</p><p>

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

104、**************3.查詢信息*************************\n");</p><p>  printf("********************4.調(diào)用信息*************************\n");</p><p>  printf("********************5.退出系統(tǒng)******

105、*******************\n\n\n");</p><p>  printf("================================================\n\n");</p><p>  printf("********請(qǐng)選擇要實(shí)現(xiàn)步驟的編號(hào):\n\n");</p><p>  

106、scanf("%d",&choice);</p><p>  switch(choice)</p><p><b>  { </b></p><p><b>  case 1: </b></p><p>  inputinformation();writedata();r

107、eaddata();main();</p><p><b>  case 2: </b></p><p>  output();main();</p><p><b>  case 3: </b></p><p>  inquiry();main();</p><p><

108、;b>  case 4: </b></p><p>  readdata();main();</p><p><b>  case 5: </b></p><p><b>  exit(0);</b></p><p><b>  default: </b>&l

溫馨提示

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