




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課 程 設(shè) 計 報 告課程名稱 C語言程序設(shè)計 課題名稱 運動會分數(shù)統(tǒng)計系統(tǒng) 專 業(yè) 機械設(shè)計及其自動化 班 級 1185班 學(xué) 號 2 姓 名 譚信 指導(dǎo)教師 王穎 2012年6月22日湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書課程名稱 C語言程序設(shè)計 課 題 運動會分數(shù)統(tǒng)計系統(tǒng) 專業(yè)班級 機械設(shè)計1185 學(xué)生姓名 譚信 學(xué) 號 2 指導(dǎo)老師 王穎 審 批 王穎 任務(wù)書下達日期 2012 年 6 月 1 日任務(wù)完成日期 2012 年 6 月 22 日前 言現(xiàn)代科學(xué)飛速發(fā)展,世界也不斷的變化,人類的生活隨著科技的發(fā)展也發(fā)生著驚天動地的變化。作為新時代的大學(xué)生,我們應(yīng)該不斷努力學(xué)習(xí)科學(xué)文化知識,以
2、適應(yīng)社會的發(fā)展要求,以現(xiàn)代化的科學(xué)知識為祖國做貢獻。而C語言作為一種計算機語言,無疑是我們將來工作不可缺少的一門技能,所以我們應(yīng)該認真學(xué)好C語言。但只是課本上的知識是不夠的,我們應(yīng)該將從課本上學(xué)到的理論知識應(yīng)用到實踐中,通過不斷的實踐,在實踐中發(fā)現(xiàn)錯誤解決錯誤,并不斷創(chuàng)新,最后能熟練的運用所學(xué)的知識,充分掌握這種工具。就現(xiàn)有知識水平、經(jīng)驗來看,對我來說,本程序的算法設(shè)計上已經(jīng)是最精簡的了。C語言知識博大精深,有必要對C語言的專著進行研究學(xué)習(xí),多閱讀別人的程序代碼、多動手實踐操作與設(shè)計,這樣便對程序算法精簡改進提供了可能。想學(xué)的更深更透徹的話就必須進一步掌握運用C進行程序設(shè)計的能力;進一步理解和
3、運用面向過程程序設(shè)計的思想和方法;初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;學(xué)會調(diào)試一個較長程序的基本方法;學(xué)會利用互聯(lián)網(wǎng)查找相關(guān)的知識并學(xué)習(xí);學(xué)海之路何其寬廣,有必要讓我們孜孜不倦的求索下去。目 錄緒 論.1第一章 需求分析1.1 程序的功能及要求.51.2 系統(tǒng)的性能要求.51.3 測試數(shù)據(jù).6第二章 概要設(shè)計2.1 結(jié)構(gòu)體.62.2 主程序(main).62.3 模塊的功能.62.4 程序模塊機之間的調(diào)用關(guān)系.7第三章 詳細設(shè)計3.1 宏定義.83.2 數(shù)據(jù)類型定義.83.3 函數(shù)之間的調(diào)用關(guān)系圖.83.4 算法設(shè)計 .9第四章 調(diào)試分析4.1 不足之處.104.2 錯誤規(guī)范.104.3
4、算法的時空分析.104.4 存在的問題.10第五章 測試結(jié)果.11第六章 用戶使用手冊6.1 運行環(huán)境.126.2 用戶界面.126.3 操作過程.13第七章 參考文獻.14第八章 設(shè)計體會.15第九章 附錄.17課程設(shè)計評分表.29緒 論運動會分數(shù)統(tǒng)計系統(tǒng)是一個方便管理各項分數(shù)標準的一個程序,有了這個程序,可以吧每一個同學(xué)的信息及成績都保留下來,為評比成績和得優(yōu)提供方便,程序的順利及簡便運行時現(xiàn)在科學(xué)不可缺少的一部分,有了程序的幫助,我們做任何事都能事半功倍,提高效率,節(jié)省時間。根據(jù)任務(wù)書的綜合要求,本系統(tǒng)的開發(fā)主要完成以下功能和性能。(1) 學(xué)生成績查詢系統(tǒng),成績錄入、增加、刪除、修改,數(shù)
5、據(jù)查詢,排序顯示構(gòu)成。(2) 按學(xué)生總分及學(xué)校編號,分為有男女組,有團體組,有前三名和前五名之分。(3) 按項目編號查詢即奇偶性取得前三或前五名的學(xué)?;蛘呔幪杹聿樵兯每偡郑?) 另外還涉及包括系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計、程序流程圖或結(jié)構(gòu)框圖、邏輯結(jié)構(gòu)設(shè)計,數(shù)據(jù)庫中的表、視圖等各功能板塊。一、目的全面熟悉、掌握C語言基本知識,掌握C程序設(shè)計中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)和C語言基本圖形編程等方法,把編程和實際結(jié)合起來,增強對不同的問題運用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進一步提高上機動手能力,培養(yǎng)使用計算機解決
6、實際問題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后在專業(yè)課程中應(yīng)用計算機系統(tǒng)解決計算、分析、實驗和設(shè)計等學(xué)習(xí)環(huán)節(jié)打下較扎實的基礎(chǔ)。二、設(shè)計要求掌握結(jié)構(gòu)化程序設(shè)計的主體思想,以自頂向下逐步求精的方法編制程序解決一些實際的問題,為將來編寫軟件積累一些典型的案例處理經(jīng)驗。1. 設(shè)計正確,方案合理。2. 界面友好,使用方便。3. 程序精煉,結(jié)構(gòu)清晰。4. 設(shè)計報告5000字以上,含程序設(shè)計說明,用戶使用說明,源程序清單及程序框圖。5. 上機演示。6. 按學(xué)號順序選課題號,并在規(guī)定的時間內(nèi)獨自完成相關(guān)課題的C源程序編寫、調(diào)整和運行。源程序及編譯生成各文件均保存在軟盤中;7. 按本任務(wù)書的要求
7、,按附錄的要求編寫課程設(shè)計報告(Word文檔格式)。并用A4的復(fù)印紙打印并裝訂; 8. 在2012年6月24日之前,請各班學(xué)習(xí)委員收齊課程設(shè)計報告和源程序軟盤交王穎老師 ,聯(lián)系電話:。三、進度安排第一周 星期四: 課題講解,查閱資料第二周星期一: 總體設(shè)計,詳細設(shè)計星期二: 編程,上機調(diào)試、修改程序星期三: 上機調(diào)試、完善程序星期四: 上機調(diào)試、完善程序星期五: 答辯星期六-星期天:撰寫課程設(shè)計報告一、問題描述:參加運動會的n個學(xué)校編號為ln。比賽分成m個男子項目和w個女子項目,項目編號分別為lm和m1mw。由于各項目參加人數(shù)差別較大,有些項目取前五名,得分順序為7,5,3,2,1;還有些項目
8、只取前三名,得分順序為5,3,2。設(shè)計一個統(tǒng)計程序按名次產(chǎn)生各種成績單、得分報表。二、基本要求:1.產(chǎn)生各學(xué)校的成績單,內(nèi)容包括各校所取得的每項成績的項目號、名次、成績、姓名和得分;產(chǎn)生團體總分報表,內(nèi)容包括校號、男子團體總分、女子團體總分和團體總分;均按名次排序。2.比賽項目既要有徑賽,又要有田賽。三、測試數(shù)據(jù):對于n=4,m=3,w=2,編號為奇數(shù)的項目取前五名,編號為偶數(shù)的項目取前三名,設(shè)計一組實例數(shù)據(jù)。四、實現(xiàn)提示:1 數(shù)據(jù)結(jié)構(gòu):線性表2 數(shù)據(jù)庫結(jié)構(gòu):下面四張表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫,全部輸出報表由系統(tǒng)根據(jù)基本表自動生成。表 1-1floatcharcharcharcharchar成績
9、類型性別項目編號學(xué)校編號運動員編號 表 1-2姓名運動員編號初始化時完成錄入校名學(xué)校編號項目名項目編號3. 可以假設(shè)n20,m30,w20,姓名長度不超過20個字符。每個項目結(jié)束時,將其編號、類型符(區(qū)分取前五名還是前三名)輸入,并輸入運動員編號、學(xué)校編號和成績等。五、選作內(nèi)容:允許用戶指定某項目采取其他名次取法。比如例圖法,結(jié)構(gòu)圖系法,樹狀法,等等。每個人的思維都是有所不同的,程序的設(shè)計故也是千差萬別,有簡單與復(fù)雜之分。編號的不同也是選取方法不同的標準之一,運用數(shù)組和指針我覺得是比較實用的,對于各種數(shù)據(jù)的組合來說。所以,只要程序符合,方法不一。第一章 需求分析1. 程序的功能及要求參加運動會
10、有n個學(xué)校,學(xué)校編號為1n。比賽分成m個男子項目,和w個女子項目。項目編號為男子1m,女子m+1m+w。不同的項目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些項目取前五名或前三名由學(xué)生自己設(shè)定。(m<=20,n<=20)1) 可以輸入各個項目的前三名或前五名的成績;2) 能統(tǒng)計各學(xué)??偡?; 3) 可以按學(xué)校編號、學(xué)??偡?、男女團體總分排序輸出; 4) 可以按學(xué)校編號查詢學(xué)校某個項目的情況;5) 可以按項目編號查詢即奇偶性取得前三或前五名的學(xué)校。根據(jù)C+課程所學(xué)的概念、理論和方法,按照C+程序設(shè)計的基本步驟,設(shè)計出一個適當(dāng)規(guī)模的
11、程序來實現(xiàn)設(shè)計課程內(nèi)容中的全部功能;設(shè)計主控模塊程序?qū)o出的程序源代碼要給出各部分的詳細注釋自己根據(jù)能力及需要添加相應(yīng)功能模塊,增強模擬系統(tǒng)功能。包括系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計、程序流程圖或結(jié)構(gòu)框圖、邏輯結(jié)構(gòu)設(shè)計,數(shù)據(jù)庫中的表、視圖(如果使用)、索引的結(jié)構(gòu)和定義、觸發(fā)器、存儲過程、課程設(shè)計體會。2. 系統(tǒng)性能要求:a. 系統(tǒng)安全、可靠;b. 功能齊全;c. 操作方便、界面友好;d. 易于維護和擴充。3.測試數(shù)據(jù)1)首先進入成績錄入界面,先輸入學(xué)校編號1,再輸入學(xué)校1各個項目成績0或1(0表示沒獲得該項目的該名次,1表示獲得了該項目的該名次);然后再輸入第二個學(xué)校編號2,再輸入成績;當(dāng)輸
12、入其他的學(xué)校編號和成績會提示錯誤輸入,重新輸入。 2)然后進入總目錄,輸入 :1 統(tǒng)計各學(xué)??偡植⑤敵觯?3)輸入:2 按學(xué)校編號排序輸出; 4)輸入:3 按學(xué)??偡峙判蜉敵?; 5)輸入:4 按男團體總分排序輸出; 6)輸入: 5 按女團體總分排序輸出; 7) 輸入:6 按學(xué)校編號查詢學(xué)校某個項目情況; 8)輸入:7 按項目編號查詢?nèi)〉妹蔚膶W(xué)校; 9)輸入:0 退出系統(tǒng); 10)輸入其他數(shù)據(jù)會提示錯誤輸入,重新輸入。第二章 概要設(shè)計 1. 結(jié)構(gòu)體運動項目 項目編號 ;名次;學(xué)校 學(xué)校編號;項目;團體總分;男團體總分;女團體總分;2. 主程序(main) 包括登陸歡迎程序,分數(shù)錄入程序,查詢程
13、序,退出程序3. 系統(tǒng)功能模塊學(xué)生成績查詢系統(tǒng)有:成績錄入、增加、刪除、修改,數(shù)據(jù)查詢,排序顯示構(gòu)成。4. 程序模塊機之間的調(diào)用關(guān)系 流程圖 啟動程序 錄入分數(shù) 顯示主目錄統(tǒng)計各學(xué)校總分按學(xué)校編號排序按學(xué)??偡峙判虬磁畧F體總分排序按學(xué)校編號查詢學(xué)校某個項目情況查詢學(xué)校某個項目情況按男團體總分排序按項目編號查詢?nèi)〉妹蔚膶W(xué)校退出系統(tǒng)用戶選擇某命令,產(chǎn)生相應(yīng)的操作顯示結(jié)果,用戶選擇返回主目錄或退出退出程序圖1第三章 詳細設(shè)計1、宏定義:#define N 2#define bm 4#define gm 32、數(shù)據(jù)類型定義 (1) 運動項目的定義: struct matchint matchnum;
14、int rank3;matbm+gm;(2) 學(xué)校的定義: struct schoolint schoolnum;struct match matbm+gm;int total;int boytotal;int girltotal;schN;3、 函數(shù)之間的調(diào)用關(guān)系表 1-3mainxunhuantotaljisuaninputhuanyingnifunct4funct6funct5funct3funct2funct1funct0mulufunct7system4、 算法設(shè)計 主要算法的設(shè)計思想:本程序主要是使用順序表來實現(xiàn)操作。一個運動會包括運動項目和參加運動會的學(xué)校。因此構(gòu)造順序表matc
15、h,school。為了操作的方便,設(shè)計了一個總目錄,選擇相應(yīng)序號進入各個操作,并有錯誤提示,每完成一個操作程序會提示選擇返回目錄或退出程序,對于總分的排序使用了冒泡排序。為了使整個程序界面看起來更加愜意,又添加了背景和字體顏色設(shè)置的程序語句。每個操作前都有操作指南,易于使用。第四章 調(diào)試分析 1、不足之處。由于剛開始程序比較簡單,雖能運行,但處理錯誤的能力很低,后來經(jīng)過反復(fù)的添加修改,使程序能處理了錯誤,提高了健壯性。課程設(shè)計中我遇到了很多的問題,剛剛開始的時候問題特別多。看起來簡單的句子往往也會出錯,比如剛開始的時候用for語句時,總會報錯;說用的不對。但檢查了好幾遍也看不出問題,問了旁邊的
16、同學(xué)他也不知道怎么回事,最后去問老師,才知道原來我的for語句中用的是“,”號,而事實上應(yīng)該用“;”號。開始做的題目,問題簡單思路清晰,但我總在語句上出錯,我只好對著書本一個一個檢查我的語句,了解它的用法。慢慢的各種語句運用使就不再出錯了。但是到了后來題目漸漸變難,有時都沒有思路,這讓我只好慢慢想,通過和同學(xué)的討論和對相關(guān)例題的解讀才慢慢有了思路。再通過不斷的修改實驗,最終得到了正確結(jié)果。2、錯誤規(guī)范。開始編時由于不太規(guī)范,編譯出錯后由于程序長,很難找到錯誤,后來規(guī)范了格式,錯誤容易找到了,以后編程要規(guī)范。3、算法的時空分析。線性表使用的是順序結(jié)構(gòu),各種算法的時間復(fù)雜度相對比較合理4、存在的問
17、題。本程序相對來說比較容易看明白,其中涉及到的一些函數(shù)相對來說比較容易。通過調(diào)試,運行,基本上達到了要求,但還存在一些缺點。如:不夠人性化等。第五章 測試結(jié)果<1>數(shù)據(jù)輸入(輸入成績?nèi)鐖D)圖1- 1輸入:請輸入學(xué)校編號:1項目編號1234567第<1>名: 1 1 1 1 1 1 0第<2>名: 1 1 1 1 1 0 0第<3>名: 1 1 1 1 0 0 0請輸入學(xué)校編號: 2項目編號 1 2 3 4 5 6 7第<1>名: 1 1 1 0 0 1 0第<2>名: 0 0 1 0 1 1 1第<3>名: 0
18、 1 0 1 1 1 0輸入成績后出現(xiàn)總目錄(下圖);圖1- 2(1) 輸入:1 輸出:圖1- 3(2) 輸入:1 返回總目錄,再輸入:2輸出:圖1- 4(3) 輸入:1 返回總目錄,再輸入:3輸出:圖1- 5(4) 輸入:1 返回總目錄,再輸入:4輸出:圖1- 6(5) 輸入:1 返回總目錄,再輸入:5輸出:圖1- 7(6) 輸入:1 返回總目錄,再輸入:6,學(xué)校編號輸入:1,項目編號輸入:5輸出:圖1- 8(7) 輸入:2,返回上一級,再輸入學(xué)校編號:2,項目編號:1輸出:圖1- 9(8) 輸入:1,返回總目錄;再輸入:7,輸入項目編號:7輸出:圖1 10-(9) 如果輸入提示外的數(shù)字,例
19、如輸入:4則輸出錯誤提示:圖1- 11(10) 輸入:0 輸出:圖1- 12第六章 用戶使用手冊 1、運行環(huán)境 Windows,VC+6.0 2、用戶界面 圖1- 13圖1- 143、 操作過程 (1)用戶進入運動會分數(shù)統(tǒng)計系統(tǒng)程序歡迎界面 (2)錄入成績,先輸入要輸入的學(xué)校編號,1或2;再輸入對應(yīng)學(xué)校的1-7項目的成績(成績用0或1:0表示沒獲得該項目的該名次,1表示獲得了該項目的該名次)當(dāng)成績錄入錯誤時會有錯誤提示。 (3)進入總目錄,按提示,輸入0-7中的一個數(shù); 輸入:0 則推出系統(tǒng); 輸入:1 統(tǒng)計各學(xué)??偡植⑤敵?;然后選擇0或1(0表示退出系統(tǒng),1表示返回總目錄); 輸入:2 按學(xué)
20、校編號排序輸出;然后選擇0或1(0表示退出系統(tǒng),1表示返回總目錄); 輸入:3 按學(xué)??偡峙判蜉敵?;然后選擇0或1(0表示退出系統(tǒng),1表示返回總目錄); 輸入:4 按男團體總分排序輸出;然后選擇0或1(0表示退出系統(tǒng),1表示返回總目錄); 輸入:5 按女團體總分排序輸出;然后選擇0或1(0表示退出系統(tǒng),1表示返回總目錄); 輸入:6 按學(xué)校編號查詢學(xué)校某個項目編號;選擇學(xué)校編號1或2;然后選擇項目編號1-7;輸出項目成績;然后選擇0或1或2(0表示退出系統(tǒng),1表示返回總目錄,2表示返回上一級); 輸入:7 按項目編號查詢?nèi)〉妹蔚膶W(xué)校;選擇項目編號1-7;輸出成績;然后選擇0或1或2(0表示退
21、出系統(tǒng),1表示返回總目錄,2表示返回上一級);第七章 參考文獻(1) C程序設(shè)計 (第三版) 作者:譚浩強 清華大學(xué)出版社(2) 數(shù)據(jù)結(jié)構(gòu) (C語言版) 作者:嚴蔚敏,吳偉民 出版社:清華大學(xué)出版社(3) 數(shù)據(jù)結(jié)構(gòu)題集 (C語言版)作者:嚴蔚敏,吳偉民 出版社:清華大學(xué)出版社(4) c語言程序設(shè)計 (c語言版) 作者:陳世清 出版社:浙江大學(xué)出版社(5) C語言程序設(shè)計教程 作者:譚浩強等 出版社:高等教育出版社(6) C程序設(shè)計 作者:譚浩強 出版社:北京清華大學(xué)出版社(7) C語言程序設(shè)計 作者:郭浩志 出版社:北京郵電大學(xué)出版社(8) C陷阱與缺陷 作者:譚浩強、張基溫 出版社:人民郵電
22、出版社(9) C程序設(shè)計經(jīng)典教程 作者:譚浩強 出版社:清華大學(xué)出版社第八章 設(shè)計體會通過這次為期一周的課程設(shè)計,正確的寫出一個程序需要平時不斷地努力,不斷地實踐,從實踐中了解經(jīng)常犯的錯誤。我們不能知識著手于書本上的理論知識,還應(yīng)該不斷實驗,有些東西是書本上沒有的,只能通過時間學(xué)習(xí)到。但同時我們也不能離開書本上的理論,理論可以使我們更加了解它的工作原理。更加準確的把握各種算法和語言。有了理論的基礎(chǔ),我們在實踐上也就更容易上手。所以我們應(yīng)該理論聯(lián)系實踐,學(xué)好C語言,提高編程能力。本次課程設(shè)計檢驗了我的實踐能力,感覺自己還有許多東西要學(xué)習(xí),并不僅限于課本上的知識,實踐才是真理,在學(xué)習(xí)中實踐,實踐中
23、去學(xué)習(xí)。學(xué)習(xí)的路很長。再有要多問,幾個人共同討論會有意想不到的效果。其實這些通過最近的課程設(shè)計覺得最重要一點就是:我們一定要自己動手,這樣才能真正的學(xué)到東西。書本知識固然重要,但我們更要學(xué)會將書本知識應(yīng)用到實際中才會發(fā)現(xiàn)錯誤,也才能改進,才能達到學(xué)習(xí)的最終目的。而且我也總結(jié)出了一點點的經(jīng)驗如下:1、要對系統(tǒng)的功能和要求做出詳細的分析,并合理分解任務(wù)。 2、把分解出來的子任務(wù),做給一個相對獨立的模塊。 3、在設(shè)計一個模塊之前,要簡單構(gòu)想一下總界面的顯視情況。 4、針對構(gòu)想出來的界面進行程序的編寫。如此我對C語言的編程實踐更有所認識。在遇到程序調(diào)試不通過時,會通過縮小范圍的分析來鎖定問題所在。通過
24、這次實驗,熟悉了從自然語言轉(zhuǎn)換成偽代碼再轉(zhuǎn)換為流程圖的過程。在程序中設(shè)定合適的全局變量,可以簡化程序的編寫難度。運用函數(shù)可以減少編寫時的代碼量,也使程序條理清晰。通過本次C語言上機實驗,我對這個介于人類與非人類之間的計算機編程語言有了一定的體驗。隨著實驗的成功與報告的完成,有點微微的成就感使人難忘。伴隨著學(xué)習(xí)的深入,我發(fā)現(xiàn)高深的東西還有很多很多,等待著我自己去挖掘。對C語言的學(xué)習(xí),我會加倍努力。這次課程設(shè)計雖然只有短短的兩周時間,但此過程中我得到的收獲卻沒有時間的界限。在這期間,我有剛開始對于設(shè)計的茫然,也有設(shè)計過程中面對不熟悉的知識的焦急,更有面對程序運行出錯時的惆悵,同時還有當(dāng)自己把設(shè)計的
25、思路一點點想清楚,把程序代碼上出現(xiàn)的錯誤一個個改正確,把程序成功運行出來的那份難以表述的喜悅!成功的背后有過一絲絲彷徨,但撥開烏云的天空通??吹降氖敲利惖牟屎纾×硗鈱τ谖揖裆系氖斋@確實不少,學(xué)習(xí)上也受益匪淺。通過這次“運動會分數(shù)統(tǒng)計系統(tǒng)”課題的設(shè)計,通過這個階段的實踐,使我對C語言進行了深入的學(xué)習(xí)。同時設(shè)計的過程中,為了實現(xiàn)預(yù)期的功能,我利用了圖書館內(nèi)相關(guān)的資料進行參考,也使我懂得一些初次學(xué)習(xí)過程中不太熟悉的知識。在實踐中,我利用圖書館和網(wǎng)絡(luò),查找了相關(guān)的信息。也明確在以后的學(xué)習(xí)過程中,我應(yīng)該多利用這些有效的途徑來充實自己的知識點,學(xué)習(xí)得更深入,“善假于物”也是一種有效的學(xué)習(xí)方法。在程序調(diào)試
26、的過程中,遇到了好幾個自己沒能及時解決的問題,我選擇的是請教老師和同學(xué),在你們的指導(dǎo)下,我成功調(diào)試出程序。學(xué)習(xí)的過程除了需要自己要獨立思考問題之外,還應(yīng)該要有與他人的互動。我想這也就是集體的智慧,團結(jié)的力量!在此過程中,我也發(fā)現(xiàn)了許多自己的不足。在我剛開始設(shè)計的時候,頭腦里沒有一點清晰的思路,這就與平時自己看得少,練得少有關(guān)系。所以我覺得學(xué)習(xí)任何一門語言還是需要多看書,多編寫程序,特別是當(dāng)自己突然有一絲靈感的時候,最好記錄下來,甚至把它想出來,想明白。實踐的過程中,要明確自己寫這些程序是為了達到什么目的,實踐后,要考慮這樣編寫是不是最好的,還能不能做其它方法來做,在編寫這個程序中遇到了什么樣的
27、錯誤,為什么會遇到,以后應(yīng)該怎樣避免。這樣的學(xué)習(xí),就會更深入,學(xué)習(xí)得更好!雖然我的課程設(shè)計師存在許多的問題,究其原因還是因為自己平時沒有認真聽老師講課,但是我還是希望老師能夠白忙中抽空看看我的課程設(shè)計的報告,我將非常感謝第九章 附錄1、 源程序#include<stdio.h>#include<process.h>#define N 2 /學(xué)校個數(shù)#define bm 4 /男團體個數(shù)#define gm 3 /女團體個數(shù)void xuanze();void xunhuan();struct match /項目int matchnum;int rank3;matbm+g
28、m;struct school /學(xué)校int schoolnum;struct match matbm+gm;int total;int boytotal;int girltotal;schN;void huanyingni() /*開始界面,歡迎使用*/printf("nn 湖南工程應(yīng)用技術(shù)學(xué)院機設(shè)1185班 譚信nnn");printf("t*_ _ _ _ _ _ _ _ _ _ _ _ _ _*nn");printf(" 歡迎使用運動會分數(shù)統(tǒng)計系統(tǒng)nn");printf("t*_ _ _ _ _ _ _ _ _ _
29、_ _ _ _*nn ");void input() /輸入成績int i,j,k;for(i=0;i<N;i+) /初始化分數(shù)schi.total=0;schi.boytotal=0;schi.girltotal=0;for(k=0;k<bm+gm;k+)schi.matk.rank0=0;schi.matk.rank1=0;schi.matk.rank2=0;schi.matk.matchnum=k+1;printf("*輸入成績*n"); printf("#輸入說明:n"); printf(" 1.學(xué)校編號為1-%d
30、; 項目編號為1-%d (1-%d為男子項目,%d-%d為女子項目).n",N,bm+gm,bm,bm+1,bm+gm); printf(" 2. 成績只能是'0'或'1'n('0'表示沒獲得該項目的該名次,'1'表示獲得了該項目的該名次.以'Tab'鍵前進。)n",N);for(i=0;i<N;i+) printf("*請輸入學(xué)校編號: ");loop3:scanf("%d",&schi.schoolnum); if(schi.s
31、choolnum<0|schi.schoolnum>N) printf("輸入錯誤(只能是1-%d)請重新輸入:",N); goto loop3; printf("項目編號"); for(k=0;k<bm+gm;k+) printf("%d",schi.matk.matchnum); printf("n"); for(j=0;j<3;j+) loop: printf("第(%d)名:",j+1); for(k=0;k<bm+gm;k+) scanf("%d
32、",&schi.matk.rankj); for(k=0;k<bm+gm;k+) if(schi.matk.rankj!=0&&schi.matk.rankj!=1) printf("輸入錯誤,請重新輸入,成績只能是'0'或'1'n"); goto loop; void totaljisuan()int i,k,b; for(i=0;i<N;i+)for(k=0,b=0;k<bm+gm;k+) b=schi.matk.rank0*5+schi.matk.rank1*3+schi.matk.r
33、ank2*2; schi.total=schi.total+b;if(k<bm) schi.boytotal=schi.boytotal+b;if(k>=bm)schi.girltotal=schi.girltotal+b;void mulu()printf("nn *系統(tǒng)目錄*n"); /目錄printf("tt *n");printf("tt* 1.統(tǒng)計各學(xué)校總分 *t n");printf("tt* 2.按學(xué)校編號排序輸出 *t n");printf("tt* 3.按學(xué)??偡峙判蜉敵?*
34、t n");printf("tt* 4.按男團體總分排序輸出 *t n");printf("tt* 5.按女團體總分排序輸出 *t n");printf("tt* 6.按學(xué)校編號查詢學(xué)校某個項目情況 *t n");printf("tt* 7.按項目編號查詢?nèi)〉妹蔚膶W(xué)校 *t n");printf("tt* 0.退出 *t n");printf("tt *n");void funct0() /退出系統(tǒng)printf("ntt* 謝謝使用! *n")
35、;printf("ntt* 謝謝使用! *n");exit(0);void funct1() /統(tǒng)計各學(xué)校總分 int i,q;printf("*統(tǒng)計各學(xué)??偡?n"); printf("*學(xué)校編號*tttt*總分*n"); for(i=0;i<N;i+) printf("t%dtttt%dn",schi.schoolnum,schi.total);printf("n");printf("n");printf("# 0:退出;1:返回目錄。n");p
36、rintf("*請選擇: ");loop2:scanf("%d",&q);if(q=0) funct0();if(q=1) xunhuan(); else printf("輸入錯誤(只能是0或1),請重新輸入:"); goto loop2;void funct2() /按學(xué)校編號排序struct school sch1;int i,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(schi.schoolnum>schi+1.schoolnum)sch1=schi;schi=
37、schi+1;schi+1=sch1; printf("*按學(xué)校編號排序*n");printf("*學(xué)校編號*tttt*總分*n"); for(i=0;i<N;i+) printf("t%dtttt%dn",schi.schoolnum,schi.total);printf("n");printf("n");printf("# 0:退出;1:返回目錄。n");printf("*請選擇: ");loop2:scanf("%d",&a
38、mp;q);if(q=0) funct0();if(q=1) xunhuan(); else printf("輸入錯誤(只能是0或1),請重新輸入:"); goto loop2; void funct3() /按學(xué)??偡峙判?struct school sch1;int i,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(schi.total<schi+1.total)sch1=schi;schi=schi+1;schi+1=sch1; printf("*按學(xué)??偡峙判?n");printf(&qu
39、ot;*學(xué)校編號*tttt*總分*n"); for(i=0;i<N;i+) printf("t%dtttt%dn",schi.schoolnum,schi.total); printf("n");printf("n");printf("# 0:退出;1:返回目錄。n");printf("*請選擇: ");loop2:scanf("%d",&q);if(q=0) funct0();if(q=1) xunhuan(); else printf("
40、輸入錯誤(只能是0或1),請重新輸入:"); goto loop2;void funct4() /按男團體總分排序 struct school sch1;int i,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(schi.boytotal<schi+1.boytotal)sch1=schi;schi=schi+1;schi+1=sch1; printf("*按男團體總分排序*n");printf(" *學(xué)校編號*tt*總分*n"); for(i=0;i<N;i+) printf(&
41、quot;t%dtttt%dn",schi.schoolnum,schi.boytotal); printf("n");printf("n");printf("# 0:退出;1:返回目錄。n");printf("*請選擇: ");loop2:scanf("%d",&q);if(q=0) funct0();if(q=1) xunhuan(); else printf("輸入錯誤(只能是0或1),請重新輸入:"); goto loop2;void funct5(
42、) /按女團體總分排序 struct school sch1;int i,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(schi.girltotal<schi+1.girltotal)sch1=schi;schi=schi+1;schi+1=sch1; printf("*按女團體總分排序*n");printf(" *學(xué)校編號*tt*總分*n"); for(i=0;i<N;i+) printf("t%dtttt%dn",schi.schoolnum,schi.girltot
43、al); printf("n");printf("n");printf("# 0:退出;1:返回目錄。n");printf("*請選擇: ");loop2:scanf("%d",&q);if(q=0) funct0();if(q=1) xunhuan();else printf("輸入錯誤(只能是0或1),請重新輸入:"); goto loop2;void funct6() /按學(xué)校編號查詢學(xué)校某個項目情況int i,n,m,q;printf("*按學(xué)校編號
44、查詢學(xué)校某個項目情況*n");loop1:printf("*請輸入所要查詢的學(xué)校編號: ");scanf("%d",&n);if(n!=1&&n!=2) printf("!輸入錯誤,學(xué)校編號只能是'0'或'1',請重新輸入!n"); goto loop1;printf("*請輸入所要查詢的項目編號: ");scanf("%d",&m);for(i=0;i<N;i+)if(n=schi.schoolnum) print
45、f("學(xué)校編號: %d 項目編號: %dn",n,m);if(schi.matm.rank0=1)printf("第一名(獲得) "); if(schi.matm.rank1=1)printf("第二名(獲得) "); if(schi.matm.rank2=1)printf("第三名(獲得) ");elseprintf("本校該項目未進入前三名");printf("n");printf("n");printf("# 0:退出;1:返回目錄;2:返
46、回上一級。n");printf("*請選擇: ");loop2:scanf("%d",&q);if(q=1) xunhuan();if(q=0) funct0();if(q=2) goto loop1; else printf("輸入錯誤(只能是0或1或2),請重新輸入:"); goto loop2;void funct7() /按項目編號查詢?nèi)〉妹蔚膶W(xué)校 int i,t,q;printf("*按項目編號查詢?nèi)〉妹蔚膶W(xué)校*n");loop1: printf("*請輸入所要查詢的項目編號: ") ;scanf("%d",&t);printf("項目編號:%dn",t) ;for(i=0;i<N;i+)if(schi.matt-1.rank0=1)printf("獲得第一名的學(xué)校編號是
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工圖標知識培訓(xùn)課件
- 酒店經(jīng)營特許合同
- 一站式居民服務(wù)解決方案協(xié)議
- 倉儲物流合作協(xié)議簽署細則說明
- 建筑裝飾設(shè)計服務(wù)合同
- 網(wǎng)絡(luò)安全風(fēng)險評估與解決實施協(xié)議
- 2025年高考地理復(fù)習(xí)策略講座
- IT設(shè)備維護與更新表格
- 醫(yī)藥研發(fā)及產(chǎn)品推廣協(xié)議
- 廣告車輛租賃合同
- 科技創(chuàng)新大賽教師培訓(xùn)課件
- 幼兒跳繩的培訓(xùn)課件
- 銷貨清單-模板
- 《金融反欺詐與大數(shù)據(jù)風(fēng)控研究報告(2023)》
- GB/T 15558.1-2023燃氣用埋地聚乙烯(PE)管道系統(tǒng)第1部分:總則
- 公路工程安全風(fēng)險辨識與防控手冊
- 實驗室安全檢查表
- 初中政治答題卡模板A4
- 供應(yīng)商滿意度調(diào)查表
- 無圍標、串標行為承諾書
- 第三次全國國土調(diào)查土地分類
評論
0/150
提交評論