c語言課程設計--運動會分數統計系統_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程名稱 C語言課程設計 </p><p>  課題名稱 運動會分數統計系統 </p><p>  專 業(yè) 電氣工程及其自動化 </p><p>  班 級

2、 </p><p>  學 號 </p><p>  姓 名 </p><p>  指導教師 </p><p>  2012年 6 月 25 日&

3、lt;/p><p>  課 程 設 計 任 務 書</p><p>  課程名稱 C語言課程設計 </p><p>  課 題 運動會分數統計系統 </p><p>  專業(yè)班級 電氣工程及其自動化 </p><p>  學生姓名

4、 </p><p>  學 號 </p><p>  指導老師 </p><p>  審 批 </p><p>  

5、任務書下達日期 2012年6月16日</p><p>  任務完成日期 2012年6月25日</p><p><b>  運動會分數統計系統</b></p><p><b>  一、問題描述:</b></p><p>  參加運動會的n個學校編號為l~n。比賽分成m個男子項目和w個女子項目,項目編

6、號分別為l~m和m+1~m+w。由于各項目參加人數差別較大,有些項目取前五名,得分順序為7,5,3,2,1;還有些項目只取前三名,得分順序為5,3,2。設計一個統計程序按名次產生各種成績單、得分報表。</p><p><b>  二、基本要求:</b></p><p>  1.產生各學校的成績單,內容包括各校所取得的每項成績的項目號、名次、成績、姓名和得分;產生團體總

7、分報表,內容包括校號、男子團體總分、女子團體總分和團體總分;均按名次排序。</p><p>  2.比賽項目既要有徑賽,又要有田賽。</p><p><b>  三、測試數據:</b></p><p>  對于n=4,m=3,w=2,編號為奇數的項目取前五名,編號為偶數的項目取前三名,設計一組實例數據。</p><p>

8、<b>  四、實現提示:</b></p><p><b>  數據結構:線性表</b></p><p>  數據庫結構:下面四張表構成該系統的基本數據庫,全部輸出報表由系統根據基本表自動生成。</p><p>  3. 可以假設n≤20,m≤30,w≤20,姓名長度不超過20個字符。每個項目結束時,將其編號、類型符(區(qū)分

9、取前五名還是前三名)輸入,并輸入運動員編號、學校編號和成績等。</p><p><b>  五、選作內容:</b></p><p>  允許用戶指定某項目采取其他名次取法。</p><p><b>  前 言</b></p><p>  《C語言程序設計》課程設計是對學生的一種全面綜合訓練,它包括

10、問題分析,總體結構設計,用戶界面設計,程序設計基本技能和技巧,多人合作,以至</p><p>  一整套軟件工作規(guī)范的訓練和科學作風的培養(yǎng)。是與課堂聽講、自學和練習相輔相成的必不可少的一個教學環(huán)節(jié)。通常,課程設計的課題比平時的習題復雜得多,也更接近實際。課程設計著眼于與應用的結合點,使學生學會如何把書上學到的知識用于解決實際問題,培養(yǎng)軟件工作所需要的動手能力;另一方面,能使書上的知識變“活”,使學生更好地深化理解

11、和靈活掌握教學內容。為了達到上述目的,本課程設計安排了八個設計課題,訓練重點在于基本的程序設計方法和分析問題的能力,而不強調面面俱到。學生可任選其中一題進行設計,設計完畢寫出課程設計報告,用A4紙打印成冊;并將課程設計報告與源程序存盤。學習委員將課程設計報告與磁盤收齊后交指導老師。</p><p><b>  一、目的</b></p><p>  全面熟悉、掌握C語言

12、基本知識,掌握C程序設計中的順序、分支、循環(huán)三種結構及數組、函數和C語言基本圖形編程等方法,把編程和實際結合起來,增強對不同的問題運用和靈活選擇合適的數據結構以及算法描述的本領,熟悉編制和調試程序的技巧,掌握分析結果的若干有效方法,進一步提高上機動手能力,培養(yǎng)使用計算機解決實際問題的能力,養(yǎng)成提供文檔資料的習慣和規(guī)范編程的思想,為以后在專業(yè)課程中應用計算機系統解決計算、分析、實驗和設計等學習環(huán)節(jié)打下較扎實的基礎。</p>

13、<p><b>  二、設計要求</b></p><p>  掌握結構化程序設計的主體思想,以自頂向下逐步求精的方法編制程序解決一些實際的問題,為將來編寫軟件積累一些典型的案例處理經驗。</p><p>  設計正確,方案合理。</p><p>  界面友好,使用方便。</p><p>  程序精煉,結構清晰。

14、</p><p>  設計報告5000字以上,含程序設計說明,用戶使用說明,源程序清單及程序框圖。</p><p><b>  上機演示。</b></p><p>  按學號順序選課題號,并在規(guī)定的時間內獨自完成相關課題的C源程序編寫、調整和運行。源程序及編譯生成各文件均保存在軟盤中;</p><p>  按本任務書的要

15、求,按附錄的要求編寫《課程設計報告》(Word文檔格式)。并用A4的復印紙打印并裝訂; </p><p>  在2012年6月25日之前,請各班學習委員收齊課程設計報告和源程序軟盤交王穎老師 ,聯系電話:8883238。</p><p><b>  三、進度安排</b></p><p>  第一周 星期四: 課題講解,查閱資料</p

16、><p>  第二周 星期一: 總體設計,詳細設計</p><p>  星期二: 編程,上機調試、修改程序</p><p>  星期三:上機調試、完善程序</p><p>  星期四:上機調試、完善程序</p><p>  星期五: 答辯</p><p>  星期六-星期天:撰寫課程設計

17、報告</p><p><b>  目 錄</b></p><p>  第一章 問題描述1</p><p><b>  1.1問題描述1</b></p><p><b>  1.2基本要求1</b></p><p><b>  1.3測試

18、數據2</b></p><p><b>  1.4實現提示2</b></p><p><b>  1.5選作內容2</b></p><p>  第二章 需求分析3</p><p><b>  2.1需求陳述3</b></p><p&g

19、t;  2.1.1 開發(fā)語言3</p><p>  2.1.2 運行環(huán)境3</p><p>  2.2 建立對象模型3</p><p>  2.3 建立功能模型4</p><p>  第三章 概要設計5</p><p>  3.1 系統設計5</p><p>  3.1.1

20、 系統分析5</p><p>  3.1.2 系統設計思想5</p><p>  3.2 系統類層次及結構圖6</p><p>  第四章 詳細設計7</p><p>  4.1 類與對象的設計7</p><p>  4.1.1 類屬性的詳細設計8</p><p>  第五章

21、 測試與維護9</p><p>  第六章 用戶手冊13</p><p><b>  設計總結15</b></p><p><b>  參考文獻15</b></p><p><b>  致 謝16</b></p><p><b>

22、  附錄:源代碼17</b></p><p><b>  第一章 問題描述</b></p><p>  本課程設計主要解決在運動會上,將各個比賽項目所有獲得名次的同學的成績輸入,成績查詢,成績修改,成績刪除,以及成績輸出。 該程序用于運動會上,涉及到比賽項目成績的錄入,某個學校在某個項目中獲得成績的查詢,某個學校在某個運動項目中獲得的成績的修改,某個學

23、校在某個運動項目中獲得的成績的刪除,以及某個學校所有獲得成績的得分報表以及團體成績的得分報表。其中比賽成績的錄入可以按照運動項目舉行的次序輸入,也可以輸入自己指定的運動項目的成績;自己擴展的功能是“某個學校在某個項目中獲得成績的查詢,某個學校在某個運動項目中獲得的成績的修改,某個學校在某個運動項目中獲得的成績的刪除”三項,這三項都要求輸入學校以及運動項目編號,通過這兩項作為參數具體的函數可以查詢、修改成績或者是刪除某項成績記錄,進而影響

24、到最后得分報表的輸出。</p><p><b>  1.1問題描述</b></p><p>  參加運動會的n個學校編號為l~n。比賽分成m個男子項目和w個女子項目,項目編號分別為l~m和m+1~m+w。由于各項目參加人數差別較大,有些項目取前五名,得分順序為7,5,3,2,1;還有些項目只取前三名,得分順序為5,3,2。設計一個統計程序按名次產生各種成績單、得分報表

25、。</p><p><b>  1.2基本要求</b></p><p>  1.產生各學校的成績單,內容包括各校所取得的每項成績的項目號、名次、成績、姓名和得分;產生團體總分報表,內容包括校號、男子團體總分、女子團體總分和團體總分;均按名次排序。</p><p>  2.比賽項目既要有徑賽,又要有田賽。</p><p>

26、<b>  1.3測試數據</b></p><p>  對于n=4,m=3,w=2,編號為奇數的項目取前五名,編號為偶數的項目取前三名,設計一組實例數據。</p><p><b>  1.4實現提示</b></p><p><b>  數據結構:線性表</b></p><p>

27、  數據庫結構:下面四張表構成該系統的基本數據庫,全部輸出報表由系統根據基本表自動生成。</p><p>  3. 可以假設n≤20,m≤30,w≤20,姓名長度不超過20個字符。每個項目結束時,將其編號、類型符(區(qū)分取前五名還是前三名)輸入,并輸入運動員編號、學校編號和成績等。</p><p><b>  1.5選作內容</b></p><p&g

28、t;  允許用戶指定某項目采取其他名次取法。</p><p><b>  第二章 需求分析</b></p><p><b>  2.1需求陳述</b></p><p>  本課程設計主要解決在運動會上,將各個比賽項目所有獲得名次的同學的成績輸入,成績查詢,成績修改,成績刪除,以及成績輸出。</p><

29、p>  2.1.1 開發(fā)語言</p><p>  本課程涉及主要采用了C++。C++語言代表著對以往語言之精華的發(fā)展和提煉,既支持面向對象的程序設計,也支持結構化的程序設計。它修補了C語言中的一些漏洞,提供更好的類型檢查和編譯時的分析,提供了異常處理機制,簡化了程序的出錯處理,利用throw、try和catch關鍵字,提高了程序的可靠性和可讀性。 函數重載允許相同的函數名具有不同參數表,系統根據參數的個數

30、和類型匹配相應的函數。提供了模板機制。模板包括類模板和函數模板兩種,它們將數據類型作為參數。</p><p>  2.1.2 運行環(huán)境</p><p>  Microsoft Visual C++ 6.0。Visual C++(簡稱VC)是Microsoft公司推出的目前使用極為廣泛的基于Windows平臺的C++可視化開發(fā)環(huán)境。 “可視”的資源編輯器與MFC類以及應用程序向導,為快速高效

31、地開發(fā)出功能強大的Windows應用程序提供了極大的方便。利用Visual C++ 6.0進行Internet、數據庫及多媒體等多方面的程序開發(fā)也很容易。</p><p>  2.2 建立對象模型</p><p>  將各個比賽項目所有獲得名次的同學的成績輸入,成績查詢,成績修改,成績刪除,以及成績輸出封裝為一個類,通過函數調用將這些對象連接起來。</p><p>

32、  2.3 建立功能模型</p><p>  1) 可以輸入各個項目的前三名或前五名的成績;2) 能統計各學校總分;3) 可以按學校編號、學校總分、男女團體總分排序輸出;4) 可以按學校編號查詢學校某個項目的情況;</p><p>  5) 可以按項目編號查詢取得前三或前五名的學校。</p><p>  第三章 概要設計</p><p&

33、gt;<b>  3.1 系統設計</b></p><p>  3.1.1 系統分析</p><p>  1)首先進入成績錄入界面,先輸入學校編號1,再輸入學校1各個項目成績0或1(‘0’表示沒獲得該項目的該名次,‘1’表示獲得了該項目的該名次)。然后再輸入第二個學校編號2,再輸入成績;當輸入其他的學校編號和成績會提示錯誤輸入,重新輸入。</p>&

34、lt;p>  2)然后進入總目錄,輸入 :1 統計各學??偡植⑤敵觯?lt;/p><p>  3)輸入:2 按學校編號排序輸出;</p><p>  4)輸入:3 按學校總分排序輸出;</p><p>  5)輸入:4 按男團體總分排序輸出;</p><p>  6)輸入: 5 按女團體總分排序輸出;</p><p&g

35、t;  7) 輸入:6 按學校編號查詢學校某個項目情況;</p><p>  8)輸入:7 按項目編號查詢取得名次的學校;</p><p>  9)輸入:0 退出系統;</p><p>  10)輸入其他數據會提示錯誤輸入,重新輸入。</p><p>  3.1.2 系統設計思想</p><p>  本程序主要是使用順

36、序表來實現操作。一個運動會包括運動項目和參加運動會的學校。因此構造順序表match,school。為了操作的方便,設計了一個總目錄,選擇相應序號進入各個操作,并有錯誤提示,每完成一個操作程序會提示選擇返回目錄或退出程序,對于總分的排序使用了冒泡排序。為了使整個程序界面看起來更加愜意,又添加了背景和字體顏色設置的程序語句。每個操作前都有操作指南,易于使用。</p><p>  3.2 系統類層次及結構圖<

37、/p><p>  圖 3.2 系統流程圖</p><p><b>  第四章 詳細設計</b></p><p>  4.1 類與對象的設計</p><p><b>  詳細設計:</b></p><p><b>  宏定義:</b></p>

38、<p>  #define N 2</p><p>  #define bm 4</p><p>  #define gm 3</p><p><b>  數據類型定義: </b></p><p><b>  運動項目的定義:</b></p><p>  struc

39、t match</p><p><b>  {</b></p><p>  int matchnum;</p><p>  int rank[3];</p><p>  mat[bm+gm];</p><p><b>  }</b></p><p>&

40、lt;b>  學校的定義:</b></p><p>  struct school</p><p><b>  {</b></p><p>  int schoolnum;</p><p>  struct match mat[bm+gm];</p><p>  int tota

41、l;</p><p>  int boytotal;</p><p>  int girltotal; </p><p><b>  sch[N];</b></p><p><b>  }</b></p><p><b>  函數之間的調用關系</b>&

42、lt;/p><p>  圖4.1函數調用關系圖</p><p>  4.1.1 類屬性的詳細設計</p><p>  類的屬性包括靜態(tài)屬性和動態(tài)屬性。該程序用于運動會上,其中類的靜態(tài)屬性包括:運動項目的編號,參加比賽的學??倲?,涉及到的動態(tài)屬性包括:比賽項目成績的錄入,某個學校在某個項目中獲得成績的查詢,某個學校在某個運動項目中獲得的成績的修改,某個學校在某個運動項目

43、中獲得的成績的刪除,以及某個學校所有獲得成績的得分報表以及團體成績的得分報表。其中比賽成績的錄入可以按照運動項目舉行的次序輸入,也可以輸入自己指定的運動項目的成績;自己擴展的功能是“某個學校在某個項目中獲得成績的查詢,某個學校在某個運動項目中獲得的成績的修改,某個學校在某個運動項目中獲得的成績的刪除”三項,這三項都要求輸入學校以及運動項目編號,通過這兩項作為參數具體的函數可以查詢、修改成績或者是刪除某項成績記錄,進而影響到最后得分報表的

44、輸出。</p><p>  第五章 測試與維護</p><p>  <1>數據輸入(輸入成績如圖)</p><p><b>  圖5.1.1 </b></p><p><b>  輸入:</b></p><p><b>  請輸入學校編號:1</

45、b></p><p>  項目編號1234567</p><p>  第<1>名: 1 0 0 1 1 0 0</p><p>  第<2>名: 1 1 1 0 0

46、 1 0</p><p>  第<3>名: 0 0 0 0 1 1 1</p><p>  請輸入學校編號: 2</p><p>  項目編號 1 2 3 4 5 6

47、 7</p><p>  第<1>名: 0 1 1 0 0 1 1</p><p>  第<2>名: 0 0 0 1 1 0 1</p><p>  第<3

48、>名: 1 1 1 1 0 0 0</p><p>  輸入成績后出現總目錄(下圖);</p><p><b>  圖5.1.2</b></p><p><b>  輸入:1</b></p><p><

49、;b>  輸出:</b></p><p><b>  圖5.1.3</b></p><p>  輸入:1 返回總目錄,再輸入:2</p><p><b>  輸出:</b></p><p><b>  圖5.1.4</b></p><p&g

50、t;  輸入:1 返回總目錄,再輸入:3</p><p><b>  輸出:</b></p><p><b>  圖5.1.5</b></p><p>  輸入:1 返回總目錄,再輸入:4</p><p><b>  輸出:</b></p><p>&l

51、t;b>  圖5.1.6</b></p><p>  輸入:1 返回總目錄,再輸入:5</p><p><b>  輸出:</b></p><p><b>  圖5.1.7</b></p><p>  輸入:1 返回總目錄,再輸入:6,學校編號輸入:1,項目編號輸入:5</p

52、><p><b>  輸出:</b></p><p><b>  圖5.1.8</b></p><p>  輸入:2,返回上一級,再輸入學校編號:2,項目編號:1</p><p><b>  輸出:</b></p><p><b>  圖5.1.9

53、</b></p><p>  輸入:1,返回總目錄;再輸入:7,輸入項目編號:7</p><p><b>  輸出:</b></p><p><b>  圖5.1.10</b></p><p>  如果輸入提示外的數字,例如輸入:4</p><p><b&g

54、t;  則輸出錯誤提示:</b></p><p><b>  圖5.1.11</b></p><p><b>  輸入:0</b></p><p><b>  輸出:</b></p><p><b>  圖5.1.12</b></p>

55、;<p><b>  第六章 用戶手冊</b></p><p><b>  1、運行環(huán)境 </b></p><p>  Windows,VC++6.0</p><p><b>  2、用戶界面 </b></p><p><b>  圖6.2.1</

56、b></p><p><b>  圖6.2.2</b></p><p><b>  操作過程</b></p><p> ?。?)用戶進入運動會分數統計系統程序歡迎界面</p><p>  (2)錄入成績,先輸入要輸入的學校編號,1或2;再輸入對應學校的1-7項目的成績(成績用0或1:‘0’表示

57、沒獲得該項目的該名次,‘1’表示獲得了該項目的該名次)當成績錄入錯誤時會有錯誤提示。</p><p>  (3)進入總目錄,按提示,輸入0--7中的一個數;</p><p>  輸入:0 則推出系統;</p><p>  輸入:1 統計各學??偡植⑤敵?;然后選擇‘0’或‘1’(‘0’表示退出系統,‘1’表示返回總目錄);</p><p>

58、  輸入:2 按學校編號排序輸出;然后選擇‘0’或‘1’(‘0’表示退出系統,‘1’表示返回總目錄);</p><p>  輸入:3 按學??偡峙判蜉敵觯蝗缓筮x擇‘0’或‘1’(‘0’表示退出系統,‘1’表示返回總目錄);</p><p>  輸入:4 按男團體總分排序輸出;然后選擇‘0’或‘1’(‘0’表示退出系統,‘1’表示返回總目錄);</p><p> 

59、 輸入:5 按女團體總分排序輸出;然后選擇‘0’或‘1’(‘0’表示退出系統,‘1’表示返回總目錄);</p><p>  輸入:6 按學校編號查詢學校某個項目編號;選擇學校編號1或2;然后選擇項目編號1--7;輸出項目成績;然后選擇0或1或2(‘0’表示退出系統,‘1’表示返回總目錄,‘2’表示返回上一級);</p><p>  輸入:7 按項目編號查詢取得名次的學校;選擇項目編號1--

60、7;輸出成績;然后選擇0或1或2(‘0’表示退出系統,‘1’表示返回總目錄,‘2’表示返回上一級);</p><p><b>  設計總結</b></p><p>  本次課程設計,使我對課程設計的設計方法、步驟、思路、有一定的了解與認識。它相當于實際設計工作的模擬。在課程設計過程中,基本能按照規(guī)定的程序進行,先針對表達式算法為背景,通過調研、分析現有的管理模式和已有

61、的管理軟件,建立系統模型;收集、調查有關資料,然后進入草案階段,其間與指導教師進行幾次方案的討論、修改,再討論、再修改,最后定案。</p><p>  通過此次課程設計,我了解了編寫應用軟件的一般步驟,獲得了很多寶貴的經驗。特別是怎么樣通過理論與實踐相結合,把書本上的內容應用到我們做的程序上去。怎樣使各個子模塊實施其的詳細功能,特別是各個子模塊之間的接口,一定要相當清晰,達到相互協調的作用其次,我熟悉了所學的各種

62、知識。學會了很多關于程序設計的經驗和技巧,明白了程序的使用性和通用性是程序生存周期長短的關鍵,學會了調試程序的一般方法。重要的是,通過這次設計,逐步我具備了走向程序員的基本素質。知道應如何在困難重重中一步一步細心的發(fā)現問題,解決問題。并深刻體會到了團體合作精神的重要性,知道了在軟件設計中對界面和功能如何平衡,如何達到相對的完美。</p><p><b>  參考文獻</b></p>

63、;<p>  [1]陳維興,林小茶.c++面向對象程序設計教程. 北京: 清華大學出版社,1996.2004.</p><p>  [2]張國峰. C++程序設計實用教程. 北京: 清華大學出版社,1996. </p><p>  [3]張松梅. C++語言教程. 電子科技大學出版社,1993. </p><p>  [4]閻龍. C程序員的C++指南

64、. 北京航空航天大學出版社,1992.</p><p>  [5]王博. 面向對象的建模、設計技術與方法. 北京希望電腦公司,1990. </p><p>  [6]汪成為. 面向對象分析、設計及應用. 國防工業(yè)出版社,1992. </p><p>  [7]江明德. 面向對象程序設計. 電子工業(yè)出版社,1993. </p><p>  [8

65、]呂鳳翥.C++語言程序設計.電子工業(yè)出版社,2001.</p><p><b>  致 謝</b></p><p>  首先感謝我的指導老師王穎老師,他在我的課程設計過程中提出了指導性的方案和架構,并指引我閱讀相關的資料和書籍,使我在不熟悉的領域中仍能迅速掌握新的技術。</p><p>  在這幾節(jié)課程設計中,對課本中所學的各種知識進一步理

66、解和掌握,學會了如何把學到的知識用于解決實際問題,鍛煉了自己動手的能力。</p><p>  一個人要完成所有的工作是非常困難和耗時的。在以后的學習中我會更加注意各個方面的能力的協調發(fā)展。在課程設計時遇到了很多的問題,在老師的幫助,和對各種資料的查閱中,將問題解決,培養(yǎng)了我自主動手,獨立研究的能力,為今后在學習工作中能更好的發(fā)展打下了堅實的基礎。</p><p>  我的同學在我的課程設計

67、中也給了我很多無私的幫助和支持,在此一并表示感謝。</p><p><b>  附錄:源代碼</b></p><p>  #include<stdio.h></p><p>  #include<process.h></p><p>  #define N 100 //學校個數</p&g

68、t;<p>  #define bm 50 //男團體個數</p><p>  #define gm 50 //女團體個數</p><p>  void xuanze();</p><p>  void xunhuan();</p><p>  struct match //項目</p><p

69、><b>  {</b></p><p>  int matchnum;</p><p>  int rank[3];</p><p><b>  }</b></p><p>  mat[bm+gm];</p><p>  struct school //學校&

70、lt;/p><p><b>  {</b></p><p>  int schoolnum;</p><p>  struct match mat[bm+gm];</p><p>  int total;</p><p>  int boytotal;</p><p>  in

71、t girltotal;</p><p><b>  }sch[N];</b></p><p>  void huanyingni() /*開始界面,歡迎使用*/</p><p><b>  {</b></p><p>  printf("\n\n 湖南工

72、程學院電氣1182班 趙巖 \n\n\n\n\n");</p><p>  printf("\t***^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^***\n\n");</p><p>  printf(" 歡迎使用運動會分數

73、統計系統\n\n");</p><p>  printf("\t***^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^***\n\n ");</p><p><b>  }</b></p><p>  void input() //輸入成績</

74、p><p><b>  {</b></p><p>  int i,j,k;</p><p>  for(i=0;i<N;i++) //初始化分數</p><p><b>  {</b></p><p>  sch[i].total=0;</p>&l

75、t;p>  sch[i].boytotal=0;</p><p>  sch[i].girltotal=0;</p><p>  for(k=0;k<bm+gm;k++)</p><p><b>  {</b></p><p>  sch[i].mat[k].rank[0]=0;</p><

76、;p>  sch[i].mat[k].rank[1]=0;</p><p>  sch[i].mat[k].rank[2]=0;</p><p>  sch[i].mat[k].matchnum=k+1;</p><p><b>  }</b></p><p><b>  }</b></

77、p><p>  printf("*********輸入成績**********\n");</p><p>  printf("###輸入說明:\n");</p><p>  printf(" 1.學校編號為1--%d; 項目編號為1--%d (1-%d為男子項目,%d-%d為女子項目).\n",N,bm+g

78、m,bm,bm+1,bm+gm);</p><p>  printf(" 2. 成績只能是'0'或'1'\n('0'表示沒獲得該項目的該名次,'1'表示獲得了該項目的該名次.以'Tab'鍵前進。)\n",N);</p><p>  for(i=0;i<N;i++)</p>

79、<p><b>  {</b></p><p>  printf("******請輸入學校編號: ");</p><p>  loop3:scanf("%d",&sch[i].schoolnum);</p><p>  if(sch[i].schoolnum<0||sch[i].

80、schoolnum>N)</p><p><b>  {</b></p><p>  printf("輸入錯誤(只能是1-%d)請重新輸入:",N);</p><p>  goto loop3;</p><p><b>  }</b></p><p>

81、;  printf("項目編號");</p><p>  for(k=0;k<bm+gm;k++)</p><p>  printf("%d",sch[i].mat[k].matchnum);</p><p>  printf("\n");</p><p>  for(j=

82、0;j<3;j++) </p><p>  { </p><p>  loop: printf("第(%d)名:",j+1); </p><p>  for(k=0;k<bm+gm;k++)</p><p>  scanf("%d",&sch[i].mat[k].r

83、ank[j]);</p><p>  for(k=0;k<bm+gm;k++)</p><p>  if(sch[i].mat[k].rank[j]!=0&&sch[i].mat[k].rank[j]!=1)</p><p><b>  {</b></p><p>  printf("輸入

84、錯誤,請重新輸入,成績只能是'0'或'1'\n");</p><p>  goto loop;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

85、<p><b>  }</b></p><p>  void totaljisuan()</p><p><b>  {</b></p><p>  int i,k,b;</p><p>  for(i=0;i<N;i++)</p><p>  for(k=

86、0,b=0;k<bm+gm;k++)</p><p><b>  { </b></p><p>  b=sch[i].mat[k].rank[0]*5+sch[i].mat[k].rank[1]*3+sch[i].mat[k].rank[2]*2;</p><p>  sch[i].total=sch[i].total+b;</p

87、><p><b>  if(k<bm)</b></p><p>  sch[i].boytotal=sch[i].boytotal+b;</p><p><b>  if(k>=bm)</b></p><p>  sch[i].girltotal=sch[i].girltotal+b;<

88、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void mulu(){</p><p>  printf("\n\n **系統目錄**\n"); //目錄<

89、/p><p>  printf("\t\t ************************************\n");</p><p>  printf("\t\t* 1.統計各學??偡?*\t \n");</p><p>  printf("\t\t* 2.按學校編號排序

90、輸出 *\t \n");</p><p>  printf("\t\t* 3.按學??偡峙判蜉敵?*\t \n");</p><p>  printf("\t\t* 4.按男團體總分排序輸出 *\t \n");</p><p>  print

91、f("\t\t* 5.按女團體總分排序輸出 *\t \n");</p><p>  printf("\t\t* 6.按學校編號查詢學校某個項目情況 *\t \n");</p><p>  printf("\t\t* 7.按項目編號查詢取得名次的學校 *\t \n");</p>&l

92、t;p>  printf("\t\t* 0.退出 *\t \n");</p><p>  printf("\t\t ************************************\n");</p><p><b>  }</b></p><

93、;p>  void funct0() //退出系統</p><p><b>  {</b></p><p>  printf("\n\t\t******* 謝謝使用! *******\n");</p><p>  printf("\n\t\t*******

94、 謝謝使用! *******\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  void funct1() //統計各學校總分</p><p><b>  {</b><

95、/p><p><b>  int i,q;</b></p><p>  printf("**********統計各學??偡?*********\n");</p><p>  printf("**學校編號**\t\t\t\t**總分**\n");</p><p>  for(i=0

96、;i<N;i++)</p><p>  printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].total);</p><p>  printf("\n");printf("\n");</p><p>  printf("##########

97、 0:退出;1:返回目錄。\n");</p><p>  printf("****請選擇: ");</p><p>  loop2:scanf("%d",&q);</p><p>  if(q==0) funct0();</p><p>  if(q==1) xunhuan(); &l

98、t;/p><p><b>  else </b></p><p><b>  {</b></p><p>  printf("輸入錯誤(只能是0或1),請重新輸入:");</p><p>  goto loop2;</p><p><b>  }&l

99、t;/b></p><p><b>  }</b></p><p>  void funct2() //按學校編號排序</p><p><b>  {</b></p><p>  struct school sch1;</p><p> 

100、 int i,j,q;</p><p>  for(j=0;j<N-1;j++)</p><p>  for(i=0;i<N-j-1;i++)</p><p>  if(sch[i].schoolnum>sch[i+1].schoolnum)</p><p><b>  {</b></p>

101、<p>  sch1=sch[i];</p><p>  sch[i]=sch[i+1];</p><p>  sch[i+1]=sch1;</p><p><b>  }</b></p><p>  printf("**********按學校編號排序**********\n");&

102、lt;/p><p>  printf("**學校編號**\t\t\t\t**總分**\n");</p><p>  for(i=0;i<N;i++)</p><p>  printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].total);</p><p>

103、;  printf("\n");printf("\n");</p><p>  printf("########## 0:退出;1:返回目錄。\n");</p><p>  printf("****請選擇: ");</p><p>  loop2:scanf("%d&qu

104、ot;,&q);</p><p>  if(q==0) funct0();</p><p>  if(q==1) xunhuan(); </p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("

105、;輸入錯誤(只能是0或1),請重新輸入:");</p><p>  goto loop2;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void funct3() //按學??偡峙判?lt;/p>

106、<p><b>  {</b></p><p>  struct school sch1;</p><p>  int i,j,q;</p><p>  for(j=0;j<N-1;j++)</p><p>  for(i=0;i<N-j-1;i++)</p><p>  i

107、f(sch[i].total<sch[i+1].total)</p><p><b>  {</b></p><p>  sch1=sch[i];</p><p>  sch[i]=sch[i+1];</p><p>  sch[i+1]=sch1;</p><p><b>  }

108、</b></p><p>  printf("**********按學??偡峙判?*********\n");</p><p>  printf("**學校編號**\t\t\t\t**總分**\n");</p><p>  for(i=0;i<N;i++)</p><p>  

109、printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].total);</p><p>  printf("\n");printf("\n");</p><p>  printf("########## 0:退出;1:返回目錄。\n");</p>&

110、lt;p>  printf("****請選擇: ");</p><p>  loop2:scanf("%d",&q);</p><p>  if(q==0) funct0();</p><p>  if(q==1) xunhuan(); </p><p><b>  else&

111、lt;/b></p><p><b>  {</b></p><p>  printf("輸入錯誤(只能是0或1),請重新輸入:");</p><p>  goto loop2;</p><p><b>  }</b></p><p><b&g

112、t;  }</b></p><p>  void funct4() //按男團體總分排序</p><p><b>  {</b></p><p>  struct school sch1;</p><p>  int i,j,q;</p><p>

113、  for(j=0;j<N-1;j++)</p><p>  for(i=0;i<N-j-1;i++)</p><p>  if(sch[i].boytotal<sch[i+1].boytotal)</p><p><b>  {</b></p><p>  sch1=sch[i];</p>

114、<p>  sch[i]=sch[i+1];</p><p>  sch[i+1]=sch1;</p><p><b>  }</b></p><p>  printf("**********按男團體總分排序**********\n");</p><p>  printf(&quo

115、t; **學校編號**\t\t**總分**\n");</p><p>  for(i=0;i<N;i++)</p><p>  printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].boytotal);</p><p>  printf("\n");pr

116、intf("\n");</p><p>  printf("########## 0:退出;1:返回目錄。\n");</p><p>  printf("****請選擇: ");</p><p>  loop2:scanf("%d",&q);</p><

117、p>  if(q==0) funct0();</p><p>  if(q==1) xunhuan(); </p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("輸入錯誤(只能是0或1),請重新輸入:");

118、</p><p>  goto loop2;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void funct5() //按女團體總分排序</p><p><b>  {</b

119、></p><p>  struct school sch1;</p><p>  int i,j,q;</p><p>  for(j=0;j<N-1;j++)</p><p>  for(i=0;i<N-j-1;i++)</p><p>  if(sch[i].girltotal<sch[i

120、+1].girltotal)</p><p><b>  {</b></p><p>  sch1=sch[i];</p><p>  sch[i]=sch[i+1];</p><p>  sch[i+1]=sch1;</p><p><b>  }</b></p>

121、;<p>  printf("**********按女團體總分排序**********\n");</p><p>  printf(" **學校編號**\t\t**總分**\n");</p><p>  for(i=0;i<N;i++)</p><p>  printf("\t%

122、d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].girltotal);</p><p>  printf("\n");printf("\n");</p><p>  printf("########## 0:退出;1:返回目錄。\n");</p><p>  pri

123、ntf("****請選擇: ");</p><p>  loop2:scanf("%d",&q);</p><p>  if(q==0) funct0();</p><p>  if(q==1) xunhuan();</p><p><b>  else</b></p

124、><p><b>  {</b></p><p>  printf("輸入錯誤(只能是0或1),請重新輸入:");</p><p>  goto loop2;</p><p><b>  }</b></p><p><b>  }</b>

125、</p><p>  void funct6() //按學校編號查詢學校某個項目情況</p><p><b>  {</b></p><p>  int i,n,m,q;</p><p>  printf("**********按學校編號查詢學校某個項目情況**********\n&q

126、uot;);</p><p>  loop1:printf("*******請輸入所要查詢的學校編號: ");</p><p>  scanf("%d",&n);</p><p>  if(n!=1&&n!=2)</p><p><b>  {</b>&l

127、t;/p><p>  printf("!!!!輸入錯誤,學校編號只能是'0'或'1',請重新輸入?。。?!n");</p><p>  goto loop1;</p><p><b>  }</b></p><p>  printf("*******請輸入所要查詢的

128、項目編號: ");</p><p>  scanf("%d",&m);</p><p>  for(i=0;i<N;i++)</p><p>  if(n==sch[i].schoolnum)</p><p><b>  { </b></p><p>

129、;  printf("學校編號: %d 項目編號: %d\n",n,m);</p><p>  if(sch[i].mat[m].rank[0]==1)</p><p>  printf("第一名(獲得) ");</p><p>  if(sch[i].mat[m].rank[1]==1)

130、</p><p>  printf("第二名(獲得) ");</p><p>  if(sch[i].mat[m].rank[2]==1)</p><p>  printf("第三名(獲得) ");</p><p><b>  else</b></p><

131、;p>  printf("本校該項目未進入前三名");</p><p><b>  }</b></p><p>  printf("\n");printf("\n");</p><p>  printf("########## 0:退出;1:返回目錄;2:返回上一級。

132、\n");</p><p>  printf("****請選擇: ");</p><p>  loop2:scanf("%d",&q);</p><p>  if(q==1) xunhuan();</p><p>  if(q==0) funct0();</p><

133、;p>  if(q==2) goto loop1;</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("輸入錯誤(只能是0或1或2),請重新輸入:");</p><p>  goto loop2;<

134、/p><p><b>  }</b></p><p><b>  }</b></p><p>  void funct7() //按項目編號查詢取得名次的學校</p><p><b>  { </b></p><p>  int

135、 i,t,q;</p><p>  printf("**********按項目編號查詢取得名次的學校**********\n");</p><p>  loop1: printf("*****請輸入所要查詢的項目編號: ") ;</p><p>  scanf("%d",&t);</p>

136、;<p>  printf("項目編號:%d\n",t) ;</p><p>  for(i=0;i<N;i++)</p><p><b>  {</b></p><p>  if(sch[i].mat[t-1].rank[0]==1)</p><p>  printf("

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論