

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p> 課程名稱 C語言課程設(shè)計(jì) </p><p> 課題名稱 班級成績管理系統(tǒng) </p><p><b> 目錄</b></p><p> 前 言- 2 -</p>
2、<p> 課程設(shè)計(jì)報(bào)告規(guī)范- 3 -</p><p> 第一章 緒論- 4 -</p><p> 1.1 課程背景- 4 -</p><p> 1.2 本文所作工作- 4 -</p><p> 第二章 需求分析- 4 -</p><p> 第三章 總體設(shè)計(jì)- 5 -</p>
3、<p> 3.1 文字描述- 5 -</p><p> 3.1.1成績輸入- 5 -</p><p> 3.1.2 成績查詢- 5 -</p><p> 3.1.3 成績修改- 5 -</p><p> 3.1.4 成績統(tǒng)計(jì)- 5 -</p><p> 3.1.5 成績查看- 5
4、-</p><p> 3.1.6 成績保存- 6 -</p><p> 3.1.7 成績添加- 6 -</p><p> 3.1.8 成績刪除- 6 -</p><p> 3.1.9 退出系統(tǒng)- 6 -</p><p> 3.2 模板劃分圖- 6 -</p><p> 3.
5、2.1 總層次圖- 7 -</p><p> 3.2.2 基本總流程圖- 7 -</p><p> 3.3 功能介紹圖- 8 -</p><p> 3.3.1 成績查詢流程圖- 8 -</p><p> 3.3.2 成績添加功能- 8 -</p><p> 第四章 詳細(xì)設(shè)計(jì)- 8 -</p&
6、gt;<p> 4.1 系統(tǒng)模塊函數(shù)- 8 -</p><p> 4.1.1 模塊函數(shù)組成- 8 -</p><p> 4.1.2 模塊函數(shù)介紹- 9 -</p><p> 4.2學(xué)生信息數(shù)組- 9 -</p><p> 第五章 測試- 10 -</p><p> 5.1 測試圖展示
7、- 10 -</p><p> 5.2 系統(tǒng)調(diào)試- 14 -</p><p> 5.3 分析結(jié)果- 14 -</p><p> 第六章 使用說明- 14 -</p><p> 第七章 總結(jié)- 15 -</p><p> 附1:源程序代碼- 16 -</p><p> 附2
8、:參考文獻(xiàn)- 31 -</p><p> 計(jì)算機(jī)與通信學(xué)院課程設(shè)計(jì)評分表- 32 -</p><p><b> 前 言</b></p><p> 《C語言程序設(shè)計(jì)》課程設(shè)計(jì)是對學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),用戶界面設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。是與課堂聽
9、講、自學(xué)和練習(xí)相輔相成的必不可少的一個(gè)教學(xué)環(huán)節(jié)。通常,課程設(shè)計(jì)的課題比平時(shí)的習(xí)題復(fù)雜得多,也更接近實(shí)際。課程設(shè)計(jì)著眼于與應(yīng)用的結(jié)合點(diǎn),使學(xué)生學(xué)會如何把書上學(xué)到的知識用于解決實(shí)際問題,培養(yǎng)軟件工作所需要的動(dòng)手能力;另一方面,能使書上的知識變“活”,使學(xué)生更好地深化理解和靈活掌握教學(xué)內(nèi)容。為了達(dá)到上述目的,本課程設(shè)計(jì)安排了八個(gè)設(shè)計(jì)課題,訓(xùn)練重點(diǎn)在于基本的程序設(shè)計(jì)方法和分析問題的能力,而不強(qiáng)調(diào)面面俱到。學(xué)生可任選其中一題進(jìn)行設(shè)計(jì),設(shè)計(jì)完畢寫出
10、課程設(shè)計(jì)報(bào)告,用A4紙打印成冊;并將課程設(shè)計(jì)報(bào)告與源程序存盤。學(xué)習(xí)委員將課程設(shè)計(jì)報(bào)告與磁盤收齊后交指導(dǎo)老師。</p><p><b> 一、目的</b></p><p> 全面熟悉、掌握C語言基本知識,掌握C程序設(shè)計(jì)中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)和C語言基本圖形編程等方法,把編程和實(shí)際結(jié)合起來,增強(qiáng)對不同的問題運(yùn)用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本
11、領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后在專業(yè)課程中應(yīng)用計(jì)算機(jī)系統(tǒng)解決計(jì)算、分析、實(shí)驗(yàn)和設(shè)計(jì)等學(xué)習(xí)環(huán)節(jié)打下較扎實(shí)的基礎(chǔ)。</p><p><b> 二、設(shè)計(jì)要求</b></p><p> 掌握結(jié)構(gòu)化程序設(shè)計(jì)的主體思想,以自頂向下逐步求精的方法編
12、制程序解決一些實(shí)際的問題,為將來編寫軟件積累一些典型的案例處理經(jīng)驗(yàn)。</p><p> 設(shè)計(jì)正確,方案合理。</p><p> 界面友好,使用方便。</p><p> 程序精煉,結(jié)構(gòu)清晰。</p><p> 設(shè)計(jì)報(bào)告5000字以上,含程序設(shè)計(jì)說明,用戶使用說明,源程序清單及程序框圖。</p><p><b
13、> 上機(jī)演示。</b></p><p> 按學(xué)號順序選課題號,并在規(guī)定的時(shí)間內(nèi)獨(dú)自完成相關(guān)課題的C源程序編寫、調(diào)整和運(yùn)行。源程序及編譯生成各文件均保存在軟盤中;</p><p> 按本任務(wù)書的要求,按附錄的要求編寫《課程設(shè)計(jì)報(bào)告》(Word文檔格式)。并用A4的復(fù)印紙打印并裝訂; </p><p> 在2014年6月30日之前,請各班學(xué)
14、習(xí)委員收齊課程設(shè)計(jì)報(bào)告和源程序交王穎老師 ,聯(lián)系電話:18607323600。</p><p><b> 三、進(jìn)度安排</b></p><p> 第一周 星期四: 課題講解,查閱資料</p><p> 第二周 星期一: 總體設(shè)計(jì),詳細(xì)設(shè)計(jì)</p><p> 星期二: 編程,上機(jī)調(diào)試、修改程序</p&
15、gt;<p> 星期三:上機(jī)調(diào)試、完善程序</p><p> 星期四:上機(jī)調(diào)試、完善程序</p><p> 星期五: 答辯</p><p> 星期六-星期天:撰寫課程設(shè)計(jì)報(bào)告</p><p><b> 課程設(shè)計(jì)報(bào)告規(guī)范</b></p><p><b> 需
16、求分析</b></p><p><b> 1、程序的功能。</b></p><p> 2、輸入輸出的要求。</p><p><b> 概要設(shè)計(jì)</b></p><p> 1、程序由哪些模塊組成以及一個(gè)模塊之間的層次結(jié)構(gòu)、模塊的調(diào)用關(guān)系;每個(gè)模塊的功能。</p>&l
17、t;p> 2、課題的總體數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu);即要存儲什么數(shù)據(jù),這些數(shù)據(jù)是什么樣的結(jié)構(gòu),它們之間有什么關(guān)系等。</p><p><b> 詳細(xì)設(shè)計(jì)</b></p><p> 1、采用C語言定義相關(guān)的數(shù)據(jù)類型。</p><p> 2、寫出各模塊的類C碼算法。</p><p> 3、畫出函數(shù)的調(diào)用關(guān)系圖。&l
18、t;/p><p> 調(diào)試分析以及設(shè)計(jì)體會</p><p> 1、測試數(shù)據(jù):準(zhǔn)備典型的測試數(shù)據(jù)和測試方案,包括正確的輸入及輸出結(jié)果和含有錯(cuò)誤的輸入及輸出結(jié)果。</p><p> 2、程序調(diào)試中遇到的問題以及解決問題的方法。</p><p> 3、課程設(shè)計(jì)過程經(jīng)驗(yàn)教訓(xùn)、心得體會。</p><p><b>
19、使用說明</b></p><p> 用戶使用手冊:說明如何使用你編寫的程序,詳細(xì)列出每一步的操作步驟。</p><p><b> 書寫格式</b></p><p> 設(shè)計(jì)報(bào)告要求用A4紙打印成冊:</p><p> 標(biāo)題和正文要求見附1</p><p><b> 封
20、面格式如下頁。</b></p><p><b> 附錄</b></p><p><b> 1、參考書目</b></p><p> 2、源程序清單(帶注釋)</p><p><b> 第一章 緒論</b></p><p><b&g
21、t; 1.1 課程背景</b></p><p> 現(xiàn)代社會是飛速發(fā)展的信息社會,各行各業(yè)皆離不開信息管理與信息處理,正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大優(yōu)點(diǎn)在于利用它的信息管理,使用計(jì)算機(jī)進(jìn)行信息控制。不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。而C語言是一門高級計(jì)算機(jī)編程語言,設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級
22、存儲器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。C語言也很適合搭配匯編語言來使用(往往可以通過內(nèi)聯(lián)匯編語言或與匯編語言目標(biāo)文件一起連接。對于任何一種操作系統(tǒng)環(huán)境。盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級電腦等作業(yè)平臺。</p><p> 本程序可以在短時(shí)間
23、內(nèi)得到總成績并且得到相應(yīng)的排名,節(jié)省時(shí)間。在多名同學(xué)參加多門科目考試時(shí)很便捷,只要考試成績出來,輸入電腦就可以在短時(shí)間內(nèi)得到總成績,并知道了某學(xué)生在班級的排名,班級的最高分與最底分的情況以及某門課程的平均分,提高了工作效率。</p><p> 1.2 本文所作工作</p><p> 與同組同學(xué)一起審閱題目,認(rèn)真分析該系統(tǒng)需要進(jìn)行哪些步驟,如何操作,在草稿紙上定好提綱,將功能逐個(gè)解析。遇
24、到不懂或解決不了的地方,查閱書籍,參考文獻(xiàn),上網(wǎng)查資料和上機(jī)時(shí)向老師尋求幫助等。</p><p><b> 第二章 需求分析</b></p><p> 對一個(gè)有N名學(xué)生,每個(gè)學(xué)生有M門課程的班級做一個(gè)系統(tǒng),實(shí)現(xiàn)對班級學(xué)生的成績的管理。該系統(tǒng)應(yīng)具備成績輸入,成績查看,成績查找,成績統(tǒng)計(jì),成績排序,成績修改,成績添加,成績刪除,成績保存,退出程序等功能。輸入和顯示的信
25、息應(yīng)該為學(xué)生的姓名,學(xué)號,各科成績等內(nèi)容。</p><p><b> 第三章 總體設(shè)計(jì)</b></p><p><b> 3.1 文字描述</b></p><p><b> 3.1.1成績輸入</b></p><p> 依次輸入學(xué)生的姓名,學(xué)號和成績,如果該生的信息在學(xué)
26、生文件中沒有記錄,給出提示,完善學(xué)生信息,然后保存至學(xué)生文件中。最后返回主菜單。數(shù)據(jù)類型定義如下:姓名 char,學(xué)號 char,課程名稱 char,成績char。</p><p> 3.1.2 成績查詢</p><p> 打開學(xué)生文件或輸入相關(guān)學(xué)生信息后,可以按照學(xué)生的“學(xué)號”查詢成績,顯示該名學(xué)生的成績與信息;如果查詢記錄不存在,給出提示信息找不到該學(xué)生信息。然后任意鍵返回主菜單。
27、</p><p> 3.1.3 成績修改</p><p> 開打?qū)W生文件或輸入相關(guān)學(xué)生信息后前,用戶需輸入密碼,密碼錯(cuò)誤無權(quán)修改;密碼正確則可以按照“學(xué)號”,查詢信息,依次修改學(xué)生的“學(xué)號”,“姓名”,“語文成績”,“數(shù)學(xué)成績”,“英語成績”和“計(jì)算機(jī)成績”。先將修改后的學(xué)生信息預(yù)覽,最后保存至學(xué)生文件。沒有找到需要修改的信息,給出提示, 然后按任意鍵返回主菜單。</p>
28、<p> 3.1.4 成績統(tǒng)計(jì)</p><p> 打開學(xué)生文件或輸入相關(guān)學(xué)生信息后,對所有科目進(jìn)行統(tǒng)計(jì),然后顯示學(xué)生的“學(xué)號”,“姓名”以及各科“成績”最高分的同學(xué)的信息和顯示該科的平均分。然后任意鍵返回主菜單。</p><p> 3.1.5 成績查看</p><p> 打開學(xué)生文件或輸入相關(guān)學(xué)生信息后,按“科目名次”查詢,進(jìn)行“排序;如果查詢信
29、息不存在,給出提示。然后任意鍵返回主菜單。</p><p> 3.1.6 成績保存</p><p> 其他功能的運(yùn)行都需要從保存的學(xué)生文件中調(diào)用,對學(xué)生文件操作步驟后,利用指針與地址的作用,經(jīng)過一系列操作,會將信息資料保存成.txt格式。然后任意鍵返回主菜單。</p><p> 3.1.7 成績添加</p><p> 打開學(xué)生文件或輸
30、入相關(guān)學(xué)生信息發(fā)現(xiàn)遺漏的學(xué)生后,輸入遺漏學(xué)生人數(shù),然后依次輸入學(xué)生的“學(xué)號”,“姓名”,“語文成績”,“數(shù)學(xué)成績”,“英語成績”和“計(jì)算機(jī)成績”,然后任意鍵返回主菜單。</p><p> 3.1.8 成績刪除</p><p> 通過輸入學(xué)生學(xué)號,然后顯示該名同學(xué)信息,并提示是否刪除。操作完成后任意鍵返回主菜單。</p><p> 3.1.9 退出系統(tǒng)</
31、p><p> 每執(zhí)行一個(gè)具體的功能,程序重新顯示菜單;完成相關(guān)程序后,退出系統(tǒng)。如果此前沒有進(jìn)行“保存文件”步驟,給出提示是否保存成功,然后任意鍵返回主菜單。</p><p><b> 3.2 模板劃分圖</b></p><p> 3.2.1 總層次圖</p><p> 3.2.2 基本總流程圖</p>
32、<p><b> 3.3 功能介紹圖</b></p><p> 3.3.1 成績查詢流程圖</p><p> 3.3.2 成績添加功能</p><p><b> 第四章 詳細(xì)設(shè)計(jì)</b></p><p> 根據(jù)功能模塊設(shè)計(jì)思路,主要功能模塊的算法設(shè)計(jì)思路,班級內(nèi)同學(xué)的相關(guān)信息應(yīng)
33、包括“學(xué)號”,“姓名”,“各科成績”。此程序應(yīng)具備“成績輸入”,“成績查看”,“成績查找”,“成績統(tǒng)計(jì)”,“成績排序”,“成績修改”,“成績添加”,“成績刪除”,“成績保存”,“退出程序”等功能。詳情如下:</p><p> 4.1 系統(tǒng)模塊函數(shù)</p><p> 4.1.1 模塊函數(shù)組成</p><p> 01.主函數(shù) void main()</p&g
34、t;<p> 02.成績輸入函數(shù) enter()</p><p> 03.成績查詢函數(shù) find()</p><p> 04.成績修改函數(shù) modify()</p><p> 05.成績統(tǒng)計(jì)函數(shù) count()</p><p> 06.成績察看函數(shù) look()</p><p> 07.文件保
35、存函數(shù) save()</p><p> 08.成績添加函數(shù) add()</p><p> 09.成績刪除函數(shù) deleted()</p><p> 主界面函數(shù) home()</p><p> 11.退出系統(tǒng)函數(shù) exit()</p><p> 4.1.2 模塊函數(shù)介紹</p><p>
36、 01.menu():用switch執(zhí)行功能選項(xiàng);用do...while執(zhí)行每種功能完成后返回菜單。</p><p> 02.enter():用scanf一一對應(yīng)輸入學(xué)生的信息;用for循環(huán)輸入多門成績;最后用save()函數(shù)保存。(參考3.1.1)</p><p> 03.find():用于查詢?nèi)喔骺瞥煽?,與學(xué)生姓名,學(xué)號,科目相對應(yīng)。為了美觀采用5%換行輸出,使信息簡潔明了。(
37、參考3.1.2)</p><p> 04.modify():用于修改成績或?qū)W生信息。定義好一個(gè)密碼以及mm=0;如果密碼錯(cuò)誤mm=1,用do...while執(zhí)行是否重新輸入密碼;密碼正確獲得修改信息的權(quán)限。(參考.1.3)</p><p> 05.count():調(diào)用一個(gè)menu1()執(zhí)行菜單功能,用switch執(zhí)行用戶想進(jìn)行的排序,調(diào)用paixu1(),paixu2(),再用menu
38、()函數(shù)轉(zhuǎn)回菜單。(參考3.1.4)</p><p> 06.look():定義choice1(),根據(jù)用戶需要對信息執(zhí)行所需的排序(參考3.1.5)</p><p> 07.save():用于使用系統(tǒng)功能對學(xué)生文件產(chǎn)生變化后,保存學(xué)生文件。(參考3.1.6)</p><p><b> 4.2學(xué)生信息數(shù)組</b></p>&
39、lt;p> typedef struct student</p><p><b> {</b></p><p> char number[10];</p><p> char name[20];</p><p> float score[M];</p><p> float av
40、er;</p><p><b> }STU;</b></p><p><b> 第五章 測試</b></p><p><b> 5.1 測試圖展示</b></p><p><b> 圖.1</b></p><p><b
41、> 主界面。</b></p><p><b> 圖.2</b></p><p><b> 菜單欄。</b></p><p><b> 圖.3</b></p><p><b> 查看成績。</b></p><p
42、><b> 圖.4</b></p><p><b> 查詢欄。</b></p><p><b> 圖.5</b></p><p><b> 平均成績。</b></p><p><b> 圖.6</b></p>
43、;<p><b> 添加功能。</b></p><p><b> 圖.7</b></p><p><b> 刪除功能。</b></p><p><b> 圖.8</b></p><p><b> 保存功能。</b&g
44、t;</p><p><b> 5.2 系統(tǒng)調(diào)試</b></p><p> 01:在enter()函數(shù)中對學(xué)生成績的輸入用scanf(“%d”,s);當(dāng)輸入一門成績后就會跳回,使接下來的程序無法運(yùn)行,改為for(j=1;j<=M;j++) scanf(“%d”,&s[i].score[j]);將錯(cuò)誤解決。</p><p>
45、02:在enter函數(shù)中,輸入姓名用scanf(“%s”,&s[i].name);錯(cuò)誤,在scanf函數(shù)中的輸入項(xiàng)如果是字符數(shù)組名代表該數(shù)組的起始地址.則應(yīng)改為scanf(“%d”,s[i].name); </p><p> 03:在運(yùn)行find()函數(shù)時(shí),第四門課顯示出來的分?jǐn)?shù)并非輸入項(xiàng):錯(cuò)誤,在定義時(shí)將j=1,要改為j=0。</p><p> 04:學(xué)生成績定義為浮點(diǎn)型,但
46、與scanf連接不起來。是由于所使用的系統(tǒng)不支持該項(xiàng)操作。</p><p> 05:在count()函數(shù)中,paixu3();輸出的人數(shù)比實(shí)際的多一人,因?yàn)閎++:在循環(huán)結(jié)束之后會自增一次,則比實(shí)際的大一。</p><p><b> 5.3 分析結(jié)果</b></p><p> 01:為了使調(diào)試程序簡便,先定義班級的人數(shù)N為2人,編譯連接后
47、,顯示出菜單桌面,先輸入學(xué)生成績保存起來。 </p><p> 2:選擇2.在用循環(huán)輸出學(xué)生的基本信息的最后加printf(“\n”);,則輸出學(xué)生的基本信息是每行顯示一位同學(xué)的信息。</p><p> 3:選擇5.修改函數(shù)中用getchar()來覆蓋原有的,則就可輸出修改的信息。</p><p> 4:在modify( )函數(shù)中,當(dāng)輸入一個(gè)錯(cuò)誤的密碼時(shí)會出現(xiàn)
48、死循環(huán),因?yàn)樘龅奈恢缅e(cuò)誤了。</p><p><b> 第六章 使用說明</b></p><p> 運(yùn)行系統(tǒng)以后,主界面需要輸入帳號和密碼,分別為“jintong”,“123456”。進(jìn)入菜單后,按“1”鍵進(jìn)入“輸入想添加的學(xué)生人數(shù),相關(guān)信息與成績”,按任意鍵返回主菜單;按“2”鍵進(jìn)入“查看全班學(xué)生的信息與成績”功能,可以按任意鍵返回主菜單;按“3”鍵進(jìn)入“按學(xué)
49、號查詢班級內(nèi)某個(gè)同學(xué)的信息與成績”功能,可以按任意鍵返回主菜單;按“4”鍵進(jìn)入“查詢班級平均分與各科平均分”功能,可以按任意鍵返回主菜單;按“5”鍵進(jìn)入“按學(xué)號查看和修改班級內(nèi)某個(gè)同學(xué)的信息和成績”功能,可以按任意鍵返回主菜單;按“6”鍵進(jìn)入“想添加的人數(shù)和相關(guān)學(xué)生信息與成績”功能,可以按任意鍵返回主菜單;按“7”鍵進(jìn)入“按學(xué)號查詢到班級內(nèi)某個(gè)同學(xué)的相關(guān)信息并提示是否刪除改名學(xué)生信息”功能,可以按任意鍵返回主菜單;按“8”鍵進(jìn)入“保存全
50、班同學(xué)信息”功能;按“9”鍵退出程序。</p><p><b> 第七章 總結(jié)</b></p><p> 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在是生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握計(jì)算機(jī)開發(fā)技術(shù)十分重要
51、的。</p><p> 我的題目是班級成績管理系統(tǒng)的設(shè)計(jì),對于我們這些新手來說,這是很大的考驗(yàn),我一千次一萬次的問自己,怎么才能找到課堂所學(xué)與實(shí)際應(yīng)用的最佳結(jié)合點(diǎn)?怎么才能讓自己的程序在篇幅上簡單,在使用價(jià)值上豐富?怎樣讓自己的業(yè)余更靠近專業(yè)?怎樣讓自己的計(jì)劃更具有序性,而不會忙無一用?機(jī)會是老師,學(xué)校,以及無數(shù)代教育工作者給的,而能力是自己的,耐性是需要的。經(jīng)過自己的琢磨,還查閱了很多書籍,才做到了心中有數(shù),
52、才了解了C語言課程設(shè)計(jì)的真正用意——培養(yǎng)自學(xué)能力,養(yǎng)成程序編輯的好習(xí)慣。我從來不相信車到山前必有路的說法,認(rèn)為那只是懶惰者自尋懶惰的借口,我要積極,要把握,要努力。</p><p> 回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)學(xué)期的日子里,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我
53、懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體等等。通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識重新溫故。<
54、/p><p> 這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在郭老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在郭老師的身上我學(xué)得到很多實(shí)用的知識,在次我表示感謝!同時(shí),對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝。</p><p> 做完這個(gè)課程設(shè)計(jì),我們的自信一下子提高了,我們也會寫程序了;盡管對于有些人這種程序會很簡單,可對于我們C語言初學(xué)者來說,已經(jīng)很不容易了。這
55、次體驗(yàn)為以后的學(xué)習(xí)計(jì)算機(jī)的我們增強(qiáng)了信心。享受勞動(dòng)成果的滋味實(shí)在美妙啊!</p><p> 在課程設(shè)計(jì)過程中,我學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒,黑夜過去了,我們收獲的是黎明。在本次實(shí)踐中,給我印象最為深刻的是在文件刪除程序的編譯過程中,先有我的各個(gè)子程序都已經(jīng)編輯成功,那么這最后的程序就將是我成功的關(guān)鍵。老天不會讓我太過順利,他
56、在這最后的時(shí)刻設(shè)置的障礙,是要考驗(yàn)我的能力,他要置我于死地?在這個(gè)問題的解決上,我打了退堂鼓,我不能忍受長時(shí)間的無功而反,時(shí)間正在消磨我的意志。沒有了柳暗花明的一天,那么我怎么能說經(jīng)受住了考驗(yàn)?謝謝老師的那句話,她說:人力有所不能及,然而,人的精神是不會敗倒的。我鼓起勇氣,到處問,到處查資料,黃天不負(fù)有心人,在一篇文章上,終于看到了我所特別要求的函數(shù),我實(shí)現(xiàn)了組合是關(guān)鍵的理論。不得不說這是精神的勝利,是永不言敗的精神讓我的程序重見天日。
57、謝謝給我指點(diǎn)迷津的老師。</p><p><b> 附1:源程序代碼</b></p><p> #include<stdio.h></p><p> #include<string.h></p><p> #include<windows.h></p><p
58、> #include<process.h></p><p> #include<conio.h></p><p> #define N 20</p><p> #define M 4</p><p> typedef struct student</p><p><b>
59、; {</b></p><p> char number[10];</p><p> char name[20];</p><p> float score[M];</p><p> float aver;</p><p><b> }STU;</b></p>
60、<p> STU stu[N];</p><p><b> int n;</b></p><p> void enter();//輸入</p><p> void save();//保存</p><p> void avergescore();//平均分</p><p>
61、void home();//主界面 </p><p> void look();//查看</p><p> void find();//查找</p><p> void count();//統(tǒng)計(jì)</p><p> void add();//添加</p><p> void modify();//修
62、改</p><p> void deleted();//刪除</p><p> void menu();//菜單</p><p> void exit();//退出</p><p> void main()//主函數(shù)開始</p><p><b> {</b></p><
63、;p> int i,k=0;</p><p> char username[15],pwd[6];</p><p> printf("\n\n");</p><p> printf(" \t┏━━━━━━━━━━━━━━━━━━━━━┓\n");</p><p> printf(&qu
64、ot; \t┃******************************************┃\n");</p><p> printf(" \t┃*** ****┃\n");</p><p> printf(" \t┃*** 歡迎使用班級成績管理系統(tǒng)
65、 ****┃\n");</p><p> printf(" \t┃*** ****┃\n");</p><p> printf(" \t┃*** 湖南工程學(xué)院 ****┃\n");</p><p>
66、 printf(" \t┃*** ****┃\n");</p><p> printf(" \t┃*** 指導(dǎo)老師:王穎 ****┃\n");</p><p> printf(" \t┃***
67、 ****┃\n");</p><p> printf(" \t┃*** 操作學(xué)生:金潼 ****┃\n");</p><p> printf(" \t┃*** ****┃\n");</
68、p><p> printf(" \t┃******************************************┃\n");</p><p> printf(" \t┗━━━━━━━━━━━━━━━━━━━━━┛\n");</p><p> for(i=0;i<3;i++)</p><
69、p><b> {</b></p><p> printf("\n請輸入我的名字:");</p><p> gets(username);</p><p> printf("\n請輸入權(quán)限密碼:");</p><p> gets(pwd);</p>&l
70、t;p> if((strcmp(username,"jintong")==0)&&(strcmp(pwd,"123456")==0))</p><p><b> {</b></p><p> printf("\n您已經(jīng)成功登錄\n");</p><p>&l
71、t;b> k=1;</b></p><p> for(i=0;i<20;i++)</p><p><b> {</b></p><p> printf(".");</p><p> Sleep(100);</p><p><b>
72、}</b></p><p> system("cls");</p><p><b> home();</b></p><p><b> break;</b></p><p><b> }</b></p><p>&
73、lt;b> else</b></p><p> printf("\n用戶名或密碼無效 請重新輸入:\n");</p><p><b> continue;</b></p><p><b> }</b></p><p><b> if(k==0
74、)</b></p><p> printf("\n連續(xù)輸入錯(cuò)誤3次 將退出程序\n");</p><p> Sleep(2000);</p><p><b> exit(0);</b></p><p><b> }</b></p><p&g
75、t; void home() /*功能選項(xiàng)調(diào)用*/</p><p><b> {</b></p><p><b> int mm=0;</b></p><p><b> menu();</b></p><p><b> do</b></
76、p><p><b> {</b></p><p><b> mm=1;</b></p><p> switch(getch())</p><p><b> {</b></p><p> case '1' : enter();brea
77、k; /*成績輸入*/</p><p> case '2' : look();break; /*成績查看*/</p><p> case '3' : find();break; /*成績查找*/</p><p> case '4' : count();break;
78、 /*成績統(tǒng)計(jì)*/</p><p> case '5' : modify();break; /*成績修改*/</p><p> case '6' : add();break; /*成績添加*/</p><p> case '7' : deleted();break; /*成績刪
79、除*/</p><p> case '8' : save();break; /*成績保存*/</p><p> case '9' : exit(0); /*退出程序*/</p><p> default : printf("輸入有誤\n");</p><p>
80、;<b> }</b></p><p> printf("按任意鍵繼續(xù)\n");</p><p><b> getch();</b></p><p><b> menu();</b></p><p> }while (mm==1);</p&g
81、t;<p><b> }</b></p><p> void menu() /*進(jìn)入菜單*/</p><p><b> {</b></p><p> system("cls");</p><p> printf("\n");<
82、/p><p> printf("\n");</p><p> printf("┃**********歡迎進(jìn)入學(xué)生成績管理系統(tǒng)**********┃\n");</p><p> printf("┃ 菜單 ┃\n");</p&g
83、t;<p> printf("┃ 1、成績輸入 ┃\n");</p><p> printf("┃ 2、成績查看 ┃\n");</p><p> printf("┃ 3
84、、成績查詢 ┃\n");</p><p> printf("┃ 4、成績統(tǒng)計(jì) ┃\n");</p><p> printf("┃ 5、成績修改 ┃\n");</p>&
85、lt;p> printf("┃ 6、成績添加 ┃\n");</p><p> printf("┃ 7、成績刪除 ┃\n");</p><p> printf("┃ 8、成績保存
86、 ┃\n");</p><p> printf("┃ 9、退出系統(tǒng) ┃\n");</p><p> printf("┃********請選擇相應(yīng)的功能號(1---9):*******┃\n");</p><p><
87、b> }</b></p><p> void enter()/*輸入信息和成績功能*/</p><p><b> {</b></p><p><b> int i,j;</b></p><p> system("cls");</p>&l
88、t;p> printf("輸入班級學(xué)生人數(shù):\n");</p><p> scanf("%d",&n);</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> printf("請輸入學(xué)
89、生%d的學(xué)號 姓名:\n",i+1);</p><p> scanf("%s%s",stu[i].number,stu[i].name);</p><p> printf("請輸入學(xué)生成績:\n");</p><p> printf("語文\t數(shù)學(xué)\t英語\t計(jì)算機(jī)\n");</p&g
90、t;<p> for(j=0;j<M;j++)</p><p> scanf("%f",&stu[i].score[j]);</p><p><b> }</b></p><p> printf("成功輸入\n");</p><p><b&
91、gt; }</b></p><p> void avergescore()/*計(jì)算平均分功能*/</p><p><b> {</b></p><p><b> int i,j;</b></p><p> for(i=0;i<n;i++)</p><
92、p><b> {</b></p><p> stu[i].aver=0;</p><p> for(j=0;j<M;j++)</p><p><b> {</b></p><p> stu[i].aver+=stu[i].score[j];</p><p&
93、gt;<b> }</b></p><p> stu[i].aver=stu[i].aver/M;</p><p><b> }</b></p><p><b> }</b></p><p> void look()/*查看及排序功能*/</p><
94、;p><b> {</b></p><p> int i,j,k;</p><p><b> STU t;</b></p><p> avergescore();</p><p> system("cls");</p><p> for(
95、i=0;i<n-1;i++)</p><p><b> {</b></p><p> for(k=i,j=i+1;j<n;j++)</p><p> if(stu[j].aver>stu[k].aver)</p><p><b> k=j;</b></p>&
96、lt;p><b> if(k!=j)</b></p><p><b> {</b></p><p><b> t=stu[k];</b></p><p> stu[k]=stu[i];</p><p><b> stu[i]=t;</b>&
97、lt;/p><p><b> }</b></p><p><b> }</b></p><p> printf("名次\t學(xué)號\t姓名\t語文\t數(shù)學(xué)\t英語\t計(jì)算機(jī)\t平均分\n");</p><p> for(i=0;i<n;i++)</p><
98、;p><b> {</b></p><p> printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);</p><p> for(j=0;j<M;j++)</p><p> printf("%4.2f\t",stu[i].score[j
99、]);</p><p> printf("%4.2f",stu[i].aver);</p><p> printf("\n");</p><p><b> }</b></p><p><b> }</b></p><p> v
100、oid find()/*查找功能*/</p><p><b> {</b></p><p> char a[10];</p><p><b> int i,j;</b></p><p> system("cls");</p><p> print
101、f("請輸入需查詢的學(xué)生學(xué)號\n");</p><p> scanf("%s",a);</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> if(strcmp(a,stu[i].number)==0)</p
102、><p><b> {</b></p><p> printf("名次\t學(xué)號\t姓名\t語文\t數(shù)學(xué)\t英語\t計(jì)算機(jī)\t平均分\n");</p><p> printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);</p><p&
103、gt; for(j=0;j<M;j++)</p><p> printf("%4.2f\t",stu[i].score[j]);</p><p> printf("%4.2f",stu[i].aver);</p><p> printf("\n");</p><p>&
104、lt;b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p> printf("未找到該學(xué)生信息\n");</p><p><b> }</b><
105、/p><p><b> }</b></p><p> void count()/*統(tǒng)計(jì)功能*/</p><p><b> {</b></p><p> STU *p=stu;</p><p><b> int i,j;</b></p>
106、<p> float aver[M]={0};</p><p> float count=0.0,sum=0.0;</p><p> system("cls");</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p>
107、<p> sum+=(p+i)->aver;</p><p><b> }</b></p><p> printf("班級平均分為:%4.2f分\n下列依次為語文\t數(shù)學(xué)\t英語\t計(jì)算機(jī)的平均分:\n",sum/n);/*平均分計(jì)算*/</p><p> for(i=0;i<M;i++)&l
108、t;/p><p> for(j=0;j<n;j++)</p><p> aver[i]=aver[i]+stu[j].score[i]/n;</p><p> for(i=0;i<M;i++)</p><p> printf("%f\n",aver[i]);</p><p> pr
109、intf("\n");</p><p><b> }</b></p><p> void modify()/*修改功能*/</p><p><b> {</b></p><p> char a[10];</p><p><b> int
110、 i,j;</b></p><p> system("cls");</p><p> printf("請輸入需要修改成績的學(xué)生學(xué)號\n");</p><p> scanf("%s",a);</p><p> for(i=0;i<n;i++)</p>
111、;<p><b> {</b></p><p> if(strcmp(a,stu[i].number)==0)</p><p><b> {</b></p><p> printf("名次\t學(xué)號\t姓名\t語文\t數(shù)學(xué)\t英語\t計(jì)算機(jī)\t平均分\n");</p>
112、<p> printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);</p><p> for(j=0;j<M;j++)</p><p> printf("%4.2f\t",stu[i].score[j]);</p><p> printf("
113、%4.2f",stu[i].aver);</p><p> printf("\n");</p><p> printf("請重新輸入該學(xué)生的學(xué)號 姓名:\n");</p><p> scanf("%s%s",stu[i].number,stu[i].name);</p><
114、;p> printf("請重新輸入學(xué)生成績:\n");</p><p> printf("\t語文\t數(shù)學(xué)\t英語\t計(jì)算機(jī)\n");</p><p> for(j=0;j<M;j++)</p><p> scanf("%f",&stu[i].score[j]);/*找到該學(xué)生成
115、績后進(jìn)行修改,跳出for循環(huán)*/</p><p> printf("修改成功\n");</p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p
116、> printf("未找到該學(xué)生信息\n");</p><p><b> }</b></p><p><b> }</b></p><p> void add()/*添加功能*/</p><p><b> {</b></p>
117、<p> int a,i,j;</p><p> system("cls");</p><p> printf("請輸入新增加的學(xué)生人數(shù):\n");</p><p> scanf("%d",&a);</p><p><b> n=n+a;<
118、/b></p><p> for(i=n-a;i<n;i++)</p><p><b> {</b></p><p> printf("請輸入學(xué)生%d的學(xué)號 姓名:\n",i+1);</p><p> scanf("%s%s",stu[i].number,stu
119、[i].name);</p><p> printf("請輸入學(xué)生成績:\n");</p><p> printf("\t語文數(shù)學(xué)\t英語\t計(jì)算機(jī)\n");</p><p> for(j=0;j<M;j++)</p><p> scanf("%f",&stu[
120、i].score[j]);</p><p> printf("添加成功\n");</p><p><b> }</b></p><p><b> }</b></p><p> void deleted()/*刪除功能*/</p><p><b
121、> {</b></p><p> int i,j,c;</p><p> char m,a[10];</p><p> system("cls");</p><p> printf("請輸入學(xué)生學(xué)號\n");</p><p> scanf("
122、;%s",a);</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> if(strcmp(a,stu[i].number)==0)</p><p><b> {</b></p><p> pri
123、ntf("名次\t學(xué)號\t姓名\t語文\t數(shù)學(xué)\t英語\t計(jì)算機(jī)\t平均分\n");</p><p> printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);</p><p> for(j=0;j<M;j++)</p><p> printf("%4.
124、2f\t",stu[i].score[j]);</p><p> printf("%4.2f",stu[i].aver);</p><p> printf("\n");</p><p><b> c=i;</b></p><p><b> break;&
125、lt;/b></p><p><b> }</b></p><p><b> else</b></p><p> printf("未找到該學(xué)生信息\n");</p><p><b> }</b></p><p> pr
126、intf("是否刪除該學(xué)生成績(y/n)\n");</p><p> scanf("%s",&m);</p><p> if(m=='y')</p><p><b> {</b></p><p> for(i=c;i<n-1;i++)<
127、/p><p> stu[i]=stu[i+1];/*結(jié)構(gòu)體整體賦值將后一位學(xué)生成績信息拷貝進(jìn)入前一位學(xué)生信息的存儲位置*/</p><p> n=n-1;/*刪除該學(xué)生信息后學(xué)生總數(shù)減一*/</p><p> printf("刪除成績成功\n");</p><p><b> }</b&
128、gt;</p><p><b> else</b></p><p> printf("刪除成績失敗\n");</p><p><b> }</b></p><p> void save()/*保存功能*/</p><p><b> {&
129、lt;/b></p><p><b> FILE *fp;</b></p><p> int i,mm=1;</p><p><b> char m;</b></p><p> system("cls");</p><p> puts(&q
130、uot;是否保存學(xué)生成績(y/n)");</p><p> scanf("%s",&m);</p><p> if(m=='y')</p><p><b> {</b></p><p> if((fp=fopen("score.dat",&
131、quot;wb"))==NULL)</p><p><b> {</b></p><p> printf("文件打開失敗\n");</p><p><b> return;</b></p><p><b> }</b></p>
132、<p> for(i=0;i<n;i++)</p><p> if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)</p><p><b> {</b></p><p> printf("保存失敗\n");</p><p&g
133、t;<b> mm=0;</b></p><p><b> }</b></p><p><b> if(mm==1)</b></p><p> printf("保存成功!\n");</p><p> fclose(fp);</p>&
134、lt;p><b> }</b></p><p><b> else</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> 附2:參考文獻(xiàn)</b><
135、;/p><p><b> 1、C語言程序設(shè)計(jì)</b></p><p><b> 2、軟件工程</b></p><p><b> 3、C語言項(xiàng)目開發(fā)</b></p><p> 計(jì)算機(jī)與通信學(xué)院課程設(shè)計(jì)評分表</p><p> 課題名稱: 班級成
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)—班級成績管理系統(tǒng)
- 《班級成績管理系統(tǒng)》c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)---班級成績管理系統(tǒng) (2)
- c語言課程設(shè)計(jì)--班級成績分析系統(tǒng)
- c語言課程設(shè)計(jì)-成績管理系統(tǒng)
- 班級成績管理系統(tǒng)c語言課程方案
- c語言課程設(shè)計(jì)報(bào)告--成績管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- 課程設(shè)計(jì)-- 班級成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)(成績管理系統(tǒng))源程序
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)--c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論