運動會分數(shù)統(tǒng)計系統(tǒng)課程設(shè)計說明書_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p> 課程設(shè)計說明書</p><p> 課 程數(shù)據(jù)結(jié)構(gòu)</p><p> 題 目運動會分數(shù)統(tǒng)計系統(tǒng)</p><p> 姓 名</p><p> 學(xué) 號</p><p> 專業(yè)班級</p><p> 指導(dǎo)教師</p><p> 完成日期

2、2012年12月25日</p><p><b>  1、緒言</b></p><p>  21世紀是個信息化的時代,現(xiàn)代計算機技術(shù)的發(fā)展,為各行各業(yè)的發(fā)展創(chuàng)造了一個全新的時代背景——人們的生活、工作等已經(jīng)越來越離不開計算機科學(xué)的運用,體育作為個人、家庭、社會的一個主要實踐領(lǐng)域,大大小小的運動會也在各大中院校中展開,自從計算機科學(xué)涉及運動領(lǐng)域后,人們對運動會的管理也從人

3、工的向自動化轉(zhuǎn)變。運用數(shù)據(jù)結(jié)構(gòu)的知識解決運動會分數(shù)統(tǒng)計的問題,編寫一個程序來完成運動會分數(shù)統(tǒng)計系統(tǒng). 本程序設(shè)計中,可以輸入?yún)⒓舆\動會的學(xué)校編號及項目編號;根據(jù)具體情況選擇輸入?yún)⒓禹椖康哪信悇e和取成績名次類別;最后選擇輸入名次;實現(xiàn)數(shù)據(jù)統(tǒng)計,排序輸出,學(xué)院及項目查詢等功能。</p><p>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計是為數(shù)據(jù)結(jié)構(gòu)課程獨立開設(shè)的實踐性教學(xué)環(huán)節(jié)。課程設(shè)計的目的是要求學(xué)生達到熟練掌握C語言的基本知識和技能;

4、了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力;提高程序設(shè)計和調(diào)試能力。學(xué)生通過上機實習(xí),驗證自己設(shè)計的算法的正確性。學(xué)會有效利用基本調(diào)試方法,迅速找出程序代碼中的錯誤并且修改;培養(yǎng)算法分析能力,分析所設(shè)計算法的時間復(fù)雜度和空間復(fù)雜度,進一步提高程序設(shè)計水平;初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能。</p><p><b>  2、需求分析</b

5、></p><p><b>  2.1 功能需求 </b></p><p>  本系統(tǒng)主要是運動會分數(shù)統(tǒng)計方案設(shè)計。任務(wù):參加運動會有n個學(xué)校,學(xué)校編號為1……n。比賽分成m個男子項目,和w個女子項目。項目編號為男子1……m,女子m+1……m+w。不同的項目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五

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

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

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

9、gt;<p>  (2) 數(shù)據(jù)保存方式</p><p>  建立文件,數(shù)據(jù)保存在文件中。運動運分數(shù)統(tǒng)計程序</p><p><b>  (3) 數(shù)據(jù)類型</b></p><p><b>  采用結(jié)構(gòu)體類型。</b></p><p><b>  (4) 存儲結(jié)構(gòu)</b&g

10、t;</p><p>  采用結(jié)構(gòu)體類型數(shù)組存儲結(jié)構(gòu)存儲。</p><p><b>  (5) 算法設(shè)計</b></p><p>  輸入比賽結(jié)果模塊中運用了冒泡算法將輸入的數(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; //項目編號</p><p>  int top; //取名次的數(shù)目</p><p>  int range[

12、5]; //名次</p><p>  int mark[5]; //分數(shù)</p><p>  }itemnode; //定義項目結(jié)點的類型</p><p>  typedef struct</p><p><b>  {</b></p><p>  int schoolnum; //學(xué)校

13、編號</p><p>  int score; //學(xué)??偡?lt;/p><p>  int mscore; //男團體總分</p><p>  int wscore; //女團體總分</p><p>  itemnode c[m+w]; //項目數(shù)組</p><p>  }headnode;//定義頭結(jié)

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

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

16、學(xué)校編號、項目編號、取前3名or前5名、獲得幾個名次,使用switch語句實現(xiàn)對輸入的各個名次賦予對應(yīng)的分數(shù)。</p><p><b>  比賽成績輸出模塊</b></p><p>  實現(xiàn)按要求輸出相應(yīng)的數(shù)據(jù)。有以下輸出選項:按學(xué)校編號輸出、按學(xué)校總分輸出、按男團總分輸出、按女團總分輸出。</p><p>  模塊定義了int choice,

17、i,j,k;int remember[n];int sign變量,do…while包括switch語句,選擇輸出按學(xué)校編號輸出、按學(xué)??偡州敵?、按男團總分輸出、按女團總分輸出相應(yīng)的數(shù)據(jù)。for循環(huán)實現(xiàn)輸出各個方式輸出的每個數(shù)據(jù)。</p><p><b>  查詢比賽成績模塊</b></p><p>  查詢比賽成績模塊包括:按學(xué)校編號查詢,按項目編號查詢。</p

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

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

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

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

22、t;*****名次:");</p><p>  scanf("%d",&h[i].c[j].range[s]);</p><p> ?。?)在輸出模塊不能將全部的學(xué)校信息輸出,屬于算法編寫錯誤,正確的程序應(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)用文件時出現(xiàn)問題,后來一步步調(diào)試,最終可以運行。</p><p><b>  5、小結(jié)</b></p><p><b>  

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

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

26、lt;p>  輸出形式:有中文提示,各學(xué)校分數(shù)為整形</p><p>  界面要求:有合理的提示,每個功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。</p><p>  存儲結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計,但是要求運動會的相關(guān)數(shù)據(jù)要存儲在數(shù)據(jù)文件中。</p><p>  5.3 存在的問題與改進方向</p><p>  功

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

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

29、組、指針、文件等的綜合運用,各個部分間緊密聯(lián)系。同時,他們的使用使程序更加靈活、簡潔、方便。單純掌握課本上的知識是不夠的,還需課外的閱讀。</p><p> ?、持豢總€人的努力是不夠的,小組成員之間的合作、明確的分工可使工作完成得更快。</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、 //男子項目數(shù)目 </p><p>  #define w 2 //女子項目數(shù)目</p><p>  #define null 0</p><p>  typedef struct</p><p><b>  { </b></p><p>  int itemn

32、um; //項目編號</p><p>  int top; //取名次的數(shù)目</p><p>  int range[5]; //名次</p><p>  int mark[5]; //分數(shù)</p><p>  }itemnode; //定義項目結(jié)點的類型&

33、lt;/p><p>  typedef struct</p><p><b>  {</b></p><p>  int schoolnum; //學(xué)校編號</p><p>  int score; //學(xué)??偡?lt;/p><p>  int mscore;

34、 //男團體總分</p><p>  int wscore; //女團體總分</p><p>  itemnode c[m+w]; //項目數(shù)組</p><p>  }headnode; //定義頭結(jié)點類型</p><p>  headnode h[n]; //定義一個頭結(jié)點數(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é)點</p><p>  for(i=0;

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

38、 for(j=0;j<m+w;j++)</p><p><b>  { </b></p><p>  printf("*****項目編號:");</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("*****獲得幾個名次:");</p><p>  scanf("%d",&k);

40、 //輸入項目信息</p><p>  for(s=0;s<5;s++)</p><p>  h[i].c[j].range[s]=0, h[i].c[j].mark[s]=0; //初始化排名和分數(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>  //是男子項目則記到男子分數(shù)里面去

47、</p><p><b>  else</b></p><p>  h[i].wscore=h[i].wscore+h[i].c[j].mark[s];</p><p>  //是女子項目則記到女子項目里面去</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é)校編號輸出.*******************\n");</p><p>  printf("*******************2.按學(xué)校總分輸出.*******************\n");</p><

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

52、************ 請選擇編號*************************\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é)校編號:%d\n",h[i].schoolnum);</p><p>  printf(&quo

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

55、 //按編號順序輸出</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é)點下標(biāo)</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p

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

59、p>  printf("*****男團總分:%d\n",h[remember[i]].mscore);</p><p>  printf("*****女團總分: %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é)校編號:%d\n",h[remember[i]].schoolnum);</p><p>  printf("*****學(xué)校總分:%d\n" ,h[remember[i]].score);</p><p>  printf("*****男團總分:%d\n",h[remember[i]].mscore);&l

64、t;/p><p>  printf("*****女團總分: %d\n\n\n",h[remember[i]].wscore);</p><p>  } //按男團總分輸出</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é)校編號:%d\n",h[remember[i]].schoolnum);</p><p>  printf(&qu

68、ot;*****學(xué)??偡?%d\n" ,h[remember[i]].score);</p><p>  printf("*****男團總分:%d\n",h[remember[i]].mscore);</p><p>  printf("*****女團總分: %d\n\n\n",h[remember[i]].wscore);</p&g

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

70、<p>  scanf("%d",&sign);</p><p>  }while(sign==2); //循環(huán)執(zhí)行輸出語句</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é)校編號查詢\n");</p>

72、<p>  printf("\n*****2:按項目編號查詢\n");</p><p>  printf("\n\n*****請選擇查詢方式:"); //提供兩種查詢方式</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é)校編號:");</p><p>  scanf("%d",&i);</p><p><b>  if(i>n)</b></p><p>  printf("錯誤:這個學(xué)校沒有參加此次運動會!\n\n\n");</p><p>

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

76、><p>  printf("此次運動會沒有這個項目\n\n\n");</p><p>  //學(xué)校編號超出范圍,則輸出警告</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("這

77、個項目取前 %d名,該學(xué)校的成績?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é)校項目的成績</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("請選擇 2 繼續(xù) , 0 跳出\n");</p><p>  scanf("%d"

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

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

81、t;  if(s>m+w||s==0)</p><p>  printf("此次運動會不包括這個項目.\n\n\n"); //項目編號超出范圍則輸出警告</p><p><b>  else</b></p><p><b>  {</b></p

82、><p>  printf("該項目取前 %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é)校編號:%d,名次:%d\n",h[i].schoolnum,h[i].c[s-1].range[j]);</p><p>  } //輸出該項目取得名次學(xué)校的成績</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ù)存儲在文件中</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("不能打開文件\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é)點塊寫入 </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é)校編號:");</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("******男團總分:");</p><p>  fre

93、ad(&k,sizeof(int),1,report);</p><p>  printf("%d\n",k);</p><p>  printf("******女團總分:");</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("******項目編號:");</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("******分數(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、個數(shù)據(jù)就輸出一個數(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*****************運動會分數(shù)統(tǒng)計系統(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("********請選擇要實現(xiàn)步驟的編號:\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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論