班級成績管理系統(tǒng)_第1頁
班級成績管理系統(tǒng)_第2頁
班級成績管理系統(tǒng)_第3頁
班級成績管理系統(tǒng)_第4頁
班級成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 課 程 設(shè) 計 報 告課程名稱 C語言程序設(shè)計 課題名稱 班級成績管理系統(tǒng) 專 業(yè) 機(jī)械設(shè)計制造及其自動化 班 級 0983班 學(xué) 號 4 姓 名 指導(dǎo)教師 王穎 20010年6月30日湖南工程學(xué)院 課 程 設(shè) 計 任 務(wù) 書課程名稱 C語言程序設(shè)計 課 題 班級成績管理系統(tǒng) 專業(yè)班級 機(jī)械設(shè)計0983 學(xué)生姓名 學(xué) 號 4 指導(dǎo)老師 王穎 審 批 任務(wù)書下達(dá)日期 年 月 日任務(wù)完成日期 年 月 日目錄第一章 緒論-第二章 需求分析- 2.1 程序的功能- 2.2 輸入輸出的要求-第三章 概要設(shè)計- 3.1程序的模塊組成- 3.2學(xué)生信息結(jié)構(gòu)數(shù)組- 3.3各個程序的功能介紹-第四章 詳細(xì)設(shè)計

2、- 4.1總流程圖- 4.2統(tǒng)計函數(shù)流程圖-第五章 測試- 5.1系統(tǒng)調(diào)試- 5.2結(jié)果分析-第六章 使用說明-第七章 總結(jié)-附錄-評分表-第一章:緒論 一課題描述: C語言程序設(shè)計課程設(shè)計是對學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計,用戶界面設(shè)計,程序設(shè)計基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。是與課堂聽講、自學(xué)和練習(xí)相輔相成的必不可少的一個教學(xué)環(huán)節(jié)。通常,課程設(shè)計的課題比平時的習(xí)題復(fù)雜得多,也更接近實際。課程設(shè)計著眼于與應(yīng)用的結(jié)合點,使學(xué)生學(xué)會如何把書上學(xué)到的知識用于解決實際問題,培養(yǎng)軟件工作所需要的動手能力;另一方面,能使書上的知識變“活”,使

3、學(xué)生更好地深化理解和靈活掌握教學(xué)內(nèi)容。為了達(dá)到上述目的,本課程設(shè)計安排了八個設(shè)計課題,訓(xùn)練重點在于基本的程序設(shè)計方法和分析問題的能力,而不強(qiáng)調(diào)面面俱到。學(xué)生可任選其中一題進(jìn)行設(shè)計,設(shè)計完畢寫出課程設(shè)計報告,用A4紙打印成冊;并將課程設(shè)計報告與源程序存盤。學(xué)習(xí)委員將課程設(shè)計報告與磁盤收齊后交指導(dǎo)老師。二.課程設(shè)計內(nèi)容問題描述:一個有N個學(xué)生的班級,每個學(xué)生有M門課程。該系統(tǒng)實現(xiàn)對班級成績的錄入、顯示、修改、排序、保存等操作的管理。功能要求:、本系統(tǒng)采用一個結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:學(xué)號、姓名、M門課程名稱。、本系統(tǒng)顯示這樣的菜單:請選擇系統(tǒng)功能項:a、 成績錄入b、 成績顯示c、 成績

4、保存d、 成績排序e、 成績修改(要求先輸入密碼)f、 成績統(tǒng)計、顯示每門課程成績最高的學(xué)生的基本信息、顯示每門課程的平均成績g、 退出系統(tǒng)、執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示菜單。、將學(xué)生成績保存到文件中。算法提示:、數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組。、數(shù)據(jù)庫結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫。 姓名學(xué)號課程名稱1課程名稱2charCharfloatfloat 測試數(shù)據(jù):學(xué)生人數(shù)N=10課程門數(shù)M=4課程名:數(shù)學(xué)、語文、英語、政治其它該系統(tǒng)有興趣的同學(xué)可以在實現(xiàn)上述基本功能后,完善系統(tǒng)的其它功能。三.課程設(shè)計要求及分組安排。 1. 課程設(shè)計要求1)設(shè)計正確,方案合理。2)界面友好,使用方便。3)程

5、序精煉,結(jié)構(gòu)清晰。4)設(shè)計報告5000字以上,含程序設(shè)計說明、用戶使用說明,系統(tǒng)的功能框圖、流程圖、源程序清單等。5)上機(jī)演示。6)每個學(xué)生在規(guī)定的時間內(nèi)獨自完成相關(guān)課題的C源程序編寫,調(diào)整和運行。源程序及編譯生成各文件均保存在軟盤中;7)實際操作過程中遇到的問題及解決方法:設(shè)計總結(jié)及心得體會.8)按任務(wù)書的要求,按附錄的要求編寫課程設(shè)計報告(Word文檔格式)。并用A4的復(fù)印紙打印并裝訂。2.分組及安排所選題目(共8題)根據(jù)學(xué)生學(xué)號順序選課題號,四個人一道題,相鄰四個學(xué)號的同學(xué)選同一道題,32號以后的同學(xué)按學(xué)號每人選一題。如你的學(xué)號為15,則所選題目號為:第四題。3成績評定程序設(shè)計方案是否合

6、理;程序設(shè)計是否正確;調(diào)試結(jié)果;設(shè)計說明書的質(zhì)量高低;答辯時回答問題情況;課程設(shè)計周表現(xiàn)情況;總評成績記入“課程設(shè)計成績評分表”。四. 進(jìn)度安排第 一 周 星期四 :熟悉這次課程設(shè)計的目的和課程設(shè)計的要求,通過圖書館或因特網(wǎng)查找與幀封裝課題相關(guān)的資料,明確了解一些要用到的文件和調(diào)用函數(shù)等,然后再把整個程序設(shè)計的總體框架、流程圖等構(gòu)思出來,并進(jìn)行書面程序設(shè)計。第 二 周 星期一 :機(jī)房上機(jī),在計算機(jī)上編輯源程序。調(diào)試程序,在改正錯誤的同時不斷完善程序,使源代碼滿足課程設(shè)計的要求和實現(xiàn)課程設(shè)計的基本功能。第 二 周 星期二 :尋找資料完善和調(diào)試程序。第 二 周 星期三:繼續(xù)修改、編輯、調(diào)試程序。不

7、斷改正錯誤后,要保證程序能成功編譯成目標(biāo)文件,鏈接成功成為可執(zhí)行文件,再運行能顯示出“幀封裝已完成”的信息,這樣才能算已經(jīng)完成了本課題的基本功能。之后,開始撰寫課程設(shè)計報告。第 二 周 星期四:上機(jī)調(diào)試,完善程序。第 二 周 星期五:答辯。第 二 周 星期六星期天: 撰寫課程設(shè)計報告。第二章:系統(tǒng)需求分析一. 摘要 1. 開發(fā)系統(tǒng)的名稱:班級成績管理系統(tǒng)。 2. 開發(fā)系統(tǒng)的目標(biāo):開發(fā)出一個操作簡便、界面友好、靈活實用、安全可靠的學(xué)生成績管理系統(tǒng)。該系統(tǒng)的開發(fā)可以提高班級對學(xué)生成績的統(tǒng)計分析效率、減輕教務(wù)管理人員對學(xué)生成績管理和統(tǒng)計的負(fù)擔(dān)、提高班級對學(xué)生成績的規(guī)范化管理。結(jié)合班級管理的實際需要,

8、實現(xiàn)對學(xué)生成績等數(shù)據(jù)進(jìn)行有效的管理,提供查詢分析功能等。 二. 成績管理系統(tǒng)的背景分析: 當(dāng)今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理, 正是計算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境.計算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理.使用計算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性.尤其對于復(fù)雜的信息管理,計算機(jī)能夠充分發(fā)揮它的優(yōu)越性. 隨著科學(xué)技術(shù)的不斷提高,計算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能在人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用. 學(xué)生成績管理系統(tǒng)提供了強(qiáng)大的學(xué)生成績管理管理功能,方便系統(tǒng)管理員對學(xué)生成績等信息的添加,修改,刪除,查詢,留言等操作,同時一樣的方面學(xué)

9、生對自己各科成績查詢,學(xué)習(xí)的交流.本系統(tǒng)是班級教學(xué)管理的一個功能模塊,可以快速方便地對學(xué)生成績進(jìn)行管理、輸入、顯示、查詢、和統(tǒng)計等功能。二開發(fā)學(xué)生成績管理的必要性: 開發(fā)一個學(xué)生成績管理系統(tǒng),采用計化.現(xiàn)在我國的大中專院校的學(xué)生成績檔案管理水平普遍都不是很高,有的還停留在全用紙介質(zhì)基礎(chǔ)上,這種管理方式已不能適應(yīng)時代的發(fā)展,社會的需求,因為它浪費了大量的人力物力,也存在著許多不足的因素.在今天信息時代這種傳統(tǒng)的管理方法必然會被計算機(jī)為基礎(chǔ)的信息管理系統(tǒng)所代替.一個高效的學(xué)生成績管理系統(tǒng)可以存儲歷屆的學(xué)生成績檔案,不需要大量的人力,只需要幾名專門錄入員即可操作系統(tǒng),節(jié)省大量人力,可以迅速查到所需信

10、息,高效,安全,學(xué)生在能方便的查看自己的成績.算機(jī)對學(xué)生成績進(jìn)行管理,進(jìn)一步提高了辦學(xué)效益和現(xiàn)代化水平.為廣大教師和學(xué)生提高工作效率,實現(xiàn)學(xué)生成績信息管理工作流程的系統(tǒng)化,規(guī)范化和自動三 系統(tǒng)的功能需求: 1. 系統(tǒng)需要實現(xiàn)的功能包括以下幾個方面: 1.1 學(xué)生查詢功能:為了方便學(xué)生查找成績等信息,將所有信息按照需要進(jìn)行分類。這樣學(xué)生就能很方便的找到自己所需要的信息。 1.2 管理員查詢功能:管理員可以通過條件選擇查詢所有信息,并進(jìn)行排序。 1.3 添加功能:管理員可以輸入學(xué)生成績等相關(guān)信息。 1.4 修改功能:輸入密碼后管理員可以對數(shù)據(jù)庫中的信息進(jìn)行修改,系統(tǒng)能夠通過管理員的給出的條件查找出

11、所要修改的信息,對修改后的信息進(jìn)行保存。 1.5 統(tǒng)計功能:管理員可以通過此功能對信息進(jìn)行統(tǒng)計。 四. 系統(tǒng)的數(shù)據(jù)需求1. 通過查閱資料以及對程序的理解,總結(jié)出用戶對數(shù)據(jù)的需求如下:1)學(xué)生信息: 包括:學(xué)號、學(xué)生姓名等信息。2)課程信息: 包括:課程編號、課程名稱等。3)基本數(shù)據(jù)維護(hù)功能: 1. 錄入學(xué)生的成績信息。 2. 顯示學(xué)生的成績信息。 3. 保存學(xué)生的成績信息。 4. 排序?qū)W生的成績信息。 5. 統(tǒng)計學(xué)生的成績信息。五系統(tǒng)的性能分析 1. 系統(tǒng)的高速性、穩(wěn)定性、安全性。2. 系統(tǒng)人機(jī)界面友好,易學(xué)易用。3. 系統(tǒng)維護(hù)成本較低。六. 輸入輸出要求:在菜單選項中1-7,選擇功能項,進(jìn)行

12、對應(yīng)選項的函數(shù)調(diào)用.1)、每一條記錄包括一個學(xué)生的學(xué)號、姓名、4門成績、平均成績;2) 輸入功能:輸入學(xué)生的基本信息存入磁盤文件中;3)、顯示功能:輸出已存盤的學(xué)生信息;4)、排序功能:輸出用戶所要選擇科目的提問,輸入科目后輸出該科目一排好的學(xué)生成績,并按學(xué)生平均成績進(jìn)行排序;6)、插入功能:插入新的信息;7)修改功能,輸入密碼.錯誤輸出是否繼續(xù)輸入密碼.正確則逐個輸出是否想要修改學(xué)生信息;8)、保存功能:將學(xué)生記錄保存在任何自定義的文件中;9)、退出功能:有一個清晰美觀界面來調(diào)用各個功能。 七體框架結(jié)構(gòu)主程序初始化 錄入 顯示 排序 插入 修改 保存 退出八學(xué)生成績業(yè)務(wù)管理圖輸出結(jié)果學(xué)生數(shù)據(jù)

13、庫查詢輸入學(xué)號和密碼學(xué)生新數(shù)據(jù)統(tǒng)計匯總成績數(shù)據(jù)庫數(shù)據(jù)修改或添加管理員輸出結(jié)果圖3第三章:系統(tǒng)概要設(shè)計1程序的模塊組成第一個模塊:先定義好一些必要的全局變量以及調(diào)用的函數(shù)和結(jié)構(gòu)體數(shù)組。第二個模塊:設(shè)計一個菜單函數(shù)menu();實現(xiàn)能供用戶選擇功能項。第三個模塊:用enter()函數(shù)實現(xiàn)成績的輸入。第四個模塊:用save()函數(shù)實現(xiàn)成績的保存。第五個模塊:用print()函數(shù)實現(xiàn)成績輸出。第六個模塊:用cort()函數(shù)實現(xiàn)成績排序功能。第七個模塊:用modify()函數(shù)實現(xiàn)成績修改功能。第八個模塊:用count()函數(shù)實現(xiàn)成績統(tǒng)計功能。main函數(shù)實現(xiàn)總的控制臺界面,調(diào)用void enter(),

14、void cort(), void modify(),void count(),print(), void save(),函數(shù)實現(xiàn)各種用戶功能要求。2.學(xué)生信息結(jié)構(gòu)數(shù)組 struct stuchar name20; int num; int scoreM;3.各個程序的主要功能介紹:1:為便于用戶使用,先定義一個常數(shù)N表示人數(shù),學(xué)生信息的結(jié)構(gòu)體數(shù)組,以及調(diào)用功能項的函數(shù)。2:void main(): 利用swithch()實現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項來調(diào)用相應(yīng)的函數(shù)。 3:void Enter() :用來執(zhí)行學(xué)生成績記錄的輸入。4:void Print(): 顯示所有學(xué)生的信息。5

15、: void save(): 這是一個不返回值的有參函數(shù),形參為“鏈表頭的指針”,可以把學(xué)生記錄保存在電腦上由自己任意命名的二進(jìn)制文件6:void Cort():要排序的 科目的 序號,用選擇排序法實現(xiàn)函數(shù)學(xué)生成績的排序。7: void Modify():需要通過密碼驗證,進(jìn)入菜單后可實現(xiàn)對學(xué)生資料的修改.8: void Count()可以顯示學(xué)生的平均成績以及科目最高分.第四章:系統(tǒng)詳細(xì)設(shè)計一 . 整個系統(tǒng)除了主函數(shù)外,另外還有7個函數(shù),實現(xiàn)六大功能:輸入功能、顯示功能、排序功能、修改功能、刪除功能、保存功能。各個函數(shù)的詳細(xì)設(shè)計說明分別如下: 1、主函數(shù)main() 利用swithch()實

16、現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項來調(diào)用相應(yīng)的函數(shù)。主要實現(xiàn)“功能選擇”的界面,在這個界面里有顯示系統(tǒng)的九大功能,根據(jù)每個功能前面的序號進(jìn)行選擇。等執(zhí)行完每一個函數(shù)功能后,按任一鍵回到主界面也要通過這個函數(shù)來實現(xiàn)! 2、void Enter()函數(shù)用scanf依次輸入學(xué)生信息,在輸入多門成績成績時,用for循環(huán)來實現(xiàn),結(jié)尾調(diào)用save()函數(shù)保存。3、void Print()函數(shù)為了使界面美觀對學(xué)生成績用%5d輸出,且用換行實現(xiàn),學(xué)生信息整齊排列。4、void Cort()函數(shù)先定義choice1,輸出想要排序的 科目的 序號,用選擇排序法實現(xiàn)函數(shù)學(xué)生成績的排序。5、void Modify

17、()函數(shù)先定義好 一個密碼以及flag=0;如果輸入的密碼錯誤則flag=1,用do .while實現(xiàn)是否重新輸入密碼,密碼準(zhǔn)確后調(diào)用modi()函數(shù),實現(xiàn)修改功能6、void Count()函數(shù)用menu1函數(shù)實現(xiàn)一個菜單功能。用switch實現(xiàn),用戶選擇想執(zhí)行的功能,從而調(diào)用Show1()Show2()Show3();1 總流程圖開始Main()enter()print()save()sort()modify ()運行程序count()ChoiceChoice函數(shù)123456退出程序72.統(tǒng)計函數(shù)流程圖開始調(diào)用menu1函數(shù)輸入choice1choice1調(diào)用show1函數(shù)調(diào)用show2函

18、數(shù)輸入選擇的科目J=0I=0I=i+1Isn+1.scoreiTemp=si.scorensn.scorei=sn+1.scoreiSi+1.scoren=tempJ=j+1I=0;sum=0 I=i+1INSum=sum+si.scorejSum=sum+si.scorej輸出排序成績輸出平均成績返回函數(shù)123結(jié)束結(jié)束第五章:測試1系統(tǒng)調(diào)試1:在enter()函數(shù)中對學(xué)生成績的輸入用scanf(“%d”,s);當(dāng)輸入一門成績后就會跳回,使接下來的程序無法運行,改為for(j=1;j=M;j+) scanf(“%d”,&si.scorej);將錯誤解決.2:在enter函數(shù)中,輸入姓名用sca

19、nf(“%s”,&);錯誤,在scanf函數(shù)中的輸入項如果是字符數(shù)組名代表該數(shù)組的起始地址.則應(yīng)改為scanf(“%d”,);3:在運行print()函數(shù)時,第四門課顯示出來的分?jǐn)?shù)并非輸入項:錯誤,在定義時將j=1,應(yīng)改為j=0。 4:學(xué)生成績定義為浮點型,但與scanf連接不起來。是 由于所使用的系統(tǒng)不支持該項操作。5:在count( )函數(shù)中,show3( );輸出的人數(shù)比 實際的多一人,因為b+:在循環(huán)結(jié)束之后會自增一次,則比 實際的大一。2. 結(jié)果分析1:為了使調(diào)試程序簡便,先定義班級的人數(shù)N為3人,編譯連接后,顯示出菜單桌面,先輸入學(xué)生成績保存起來.2:選

20、擇2.在用循環(huán)輸出學(xué)生的基本信息的最后加printf(“n”);,則輸出學(xué)生的基本信息是每行顯示一位同學(xué)的信息.3:選擇5.修改函數(shù)中用getchar()來覆蓋原有的,則就可輸出修改的信息.4:選擇6.用一個選擇菜單int menu1()int choice1;printf(n*n);printf(1:xian shi mei ke cheng ji zui gao de xue sheng xin xin);printf(2:xian shi mei ke ping jun cheng jin);printf(3:xian shi chao gou ping jun cheng ji de

21、ren shun);printf(4:quitn);printf(*n);選擇.輸入選擇的科目用標(biāo)記法找出成績最高的的學(xué)生則輸出其基本信息.選擇.用for循環(huán),先求出了每門的總成績再除以人數(shù)的到平均成績用一個數(shù)組接收.再用循環(huán)則的到結(jié)果.選擇.先定義了一個數(shù)組bM.用循環(huán)如果出現(xiàn)超過平均成績的人就自增一次,接收到bM中,用循環(huán)輸出bM則得到每門超過平均成績的人數(shù).5:在modify( )函數(shù)中,當(dāng)輸入一個錯誤的密碼時會出現(xiàn)死循環(huán),因為跳出的 位置錯誤了。以下是課程設(shè)計中的錯誤總結(jié)和分析:變量是程序中不可缺少的一部分,要謹(jǐn)記先定義后使用。輸入輸出類型要一致?!?”是C語言的語句結(jié)束語,不可省略。

22、 的互相匹配。調(diào)用函數(shù)必先聲明。形式參數(shù)和實際參數(shù)必須個數(shù)相等,類型相同。第六章:該系統(tǒng)使用說明1運行時進(jìn)入主界面,系統(tǒng)根據(jù)輸入的數(shù)字選項來調(diào)用相應(yīng)的函數(shù)。主要實現(xiàn)“功能選擇”的界面,在這個界面里有顯示系統(tǒng)的七大功能,根據(jù)每個功能前面的序號進(jìn)行選擇。以下為該介面;2. 進(jìn)行學(xué)生成績輸入時按照提示選擇1鍵,錄入第一個學(xué)員信息。完成后屏幕下方出現(xiàn)提示“是否繼續(xù)輸入?(YN)”,此時,按鍵盤上的N鍵則為結(jié)束輸入,返回主菜單;若按Y鍵,則繼續(xù)輸入第二個學(xué)員信息,依此類推。3.當(dāng)要求顯示學(xué)生成績時輸入2鍵,按下回車鍵即出現(xiàn)以下界面 圖中所顯示的即為剛剛輸入的學(xué)生成績:3,當(dāng)執(zhí)行對學(xué)生成績進(jìn)行排序時,輸入

23、4鍵,會出現(xiàn)一個選擇界面讓所要排序的科目 當(dāng)輸入一個數(shù)字時及執(zhí)行對該科目成績的排序命令,具體如下截圖:4.改時需要進(jìn)行密碼驗證當(dāng)密碼錯誤時不能進(jìn)行該操作,只有輸入正確的密碼才能運行,運行結(jié)果如下圖:5.當(dāng)需要進(jìn)行成績統(tǒng)計時,輸入數(shù)字6,按回車即可出現(xiàn)一個選擇界面:輸入數(shù)字1即顯示每科成績最高的學(xué)生信息:輸入數(shù)字2即顯示每科的平均成績;輸入數(shù)字3 則退出該功能的運行.截圖如下:第七章:總結(jié) 不經(jīng)一番寒徹骨,哪得梅花撲鼻香。 一周的C語言課程設(shè)計已接近尾聲了,現(xiàn)在回想起來真是五味俱全,從開始的懵懂無知到現(xiàn)在做出一本挺有厚度的資料,我不但實踐了課本的知識,還編出小程序,雖然很多人幫了我的忙,仍舊感覺

24、自己對C語言有了深入的了解,還是有所成長,有所收獲,在實踐中,自己編程常會犯錯誤,并總結(jié)一些克服缺點的方法。深刻體會到程序設(shè)計中最重要的一部分不是編寫源程序,而是調(diào)試過程。只有經(jīng)過調(diào)試程序,我們才能掌握正確的語法知識及把問題的解決方法用程序語言來表達(dá)。 在這段時間里,我門匆匆忙忙為了它準(zhǔn)備了很多,其中不免有嘆息聲,但是總的來說讓我么學(xué)到了很多,也懂得了很多,不僅在知識方面,還在有人的生活態(tài)度,目標(biāo)上。這次的C語言課程設(shè)計充分展示了C的魅力,用一些小小的實現(xiàn)合成一個系統(tǒng)從而融入到生活中解決實際問題。同時也教會了我應(yīng)站在用戶的角度去設(shè)計程序。在此次設(shè)計過程中必不可少的出現(xiàn)了 很多問題,整體規(guī)劃,模

25、塊與模塊之間的調(diào)用與劃分,標(biāo)識符的使用。單詞的拼寫錯誤,結(jié)構(gòu)體數(shù)組的使用,正確的使用循環(huán)的限制條件.。這些問題大多是因為平時上課很少聽講的原因,以至于很多概念混淆不清 。這次的課程設(shè)計讓我看到自己對C語言研究地少之又少。這次的班級成績管理系統(tǒng)仍舊存在著不足。記得開始課設(shè)的第一天,我糊里糊涂地在機(jī)房呆了一個上午,對老師要求做的課程設(shè)計束手無策,上網(wǎng)搜了幾個,但覺得沒點意思,最后還是沒有用。但相對于別人的做的系統(tǒng),我的好像簡單多了。但后來還是不得不去看書,因為很多東西還牛毛都不知道。比如,做這個課程設(shè)計時候,最好使用鏈表,而鏈表我們還沒有深入去熟悉它,在說這個課程設(shè)計牽涉到前面我們學(xué)過的所有內(nèi)容,

26、如,一些基本函數(shù)的運用,函數(shù)的調(diào)用及指針,結(jié)構(gòu)體。內(nèi)容多而復(fù)雜,如果沒有對教材有個很好的了解掌握,是不可能篇好這個程序的。我還在把書本重新溫習(xí)了一遍,對照程序一一翻書,試圖找到一中解釋來說明程序當(dāng)中一些函數(shù)的作用和結(jié)構(gòu)。接下來的一段時間里對這段程序進(jìn)行了修改,經(jīng)過東湊西湊,拼拼剪剪,終于可以在電腦上運行了,但是它的功能不是很完善,需要進(jìn)一步完善。后來懷著疑問去詢問老師才發(fā)現(xiàn)其實很多問題都想比較簡單的,比如在運行程序時發(fā)現(xiàn)無論我怎么輸入成績,第四門課的成績都與我輸入的分?jǐn)?shù)不同,自己也嘗試用很多方法去解決,最終不了了之。同學(xué)看過以后告訴我是我在定義的時候把初始值定義錯了。在修該以后,再次運行便沒看

27、見以前的錯誤了。后來有用這種方法把后面的兩個警告解決了一個。 在這個過程中,也試圖自己獨立完成這個課程,偶爾發(fā)現(xiàn)書本上第11章節(jié)里面,有介紹鏈表的使用,而且書本上關(guān)于這個課程的一些基本函數(shù)功能在本章節(jié)都有說明,比如,鏈表的創(chuàng)建,節(jié)點的插入,刪除,一些基本信息的修改都有。 最終完成的課程的設(shè)計,馬馬虎虎的,完成的,但是還是受益匪淺。其中老師與同學(xué)的教導(dǎo)讓我刻苦銘心。不管其結(jié)果怎么樣,但至少這個過程,讓我們明白了,懂得了很多。雖然有點挫折很艱辛在里面,但是那都是短暫的,美麗的,它教會了我們不經(jīng)過自己的努力,是達(dá)不到預(yù)期的結(jié)果的,不經(jīng)過自己的實踐操作,是體驗不到其中的美妙的。不僅如此,還給了我們一個

28、警告,對待學(xué)習(xí)不可馬馬虎虎,否則完成不了應(yīng)有的任務(wù),得不到理想的結(jié)果,半途而廢是失敗的首要原因,不要什么事情都覺得滿不在乎,踏踏實實的學(xué)習(xí),踏踏實實的工作,擁有積極樂觀的態(tài)度去應(yīng)對一切挫折,最終會讓你走想成功的前沿。因為:“勝利永遠(yuǎn)是屬于永不放棄的人!附錄1. 參考文獻(xiàn)C程序設(shè)計(第三版) 譚浩強(qiáng) 著 清華大學(xué)出版社C語言程序設(shè)計實用指南 譚浩強(qiáng) 著 清華大學(xué)出版社C語言大學(xué)實用教程學(xué)習(xí)指導(dǎo) 蘇小紅 著 電子工業(yè)出版社2. 源代碼#include /*I/O函數(shù)*/#include /*字符串函數(shù)*/#define M 4 /*課程數(shù)*/#define NUM 3 /*人數(shù)*/ #define

29、 NULL 0#include#includeint avarM;struct stuchar name20; int num; int scoreM; void enter(struct stu s,int n); /*進(jìn)入*/ void print(struct stu s,int n); /*輸入文件*/ void save(struct stu s,int n); /*保存文件*/ void sort(struct stu s,int n); /*排序*/ void modify(struct stu s,int n); /*修改*/ void count(struct stu s,i

30、nt n); /*統(tǒng)計*/ int menu();void main()void clrscr(); struct stu studentNUM; for( ; ; ) switch(menu() case 1:enter(student,NUM);break; case 2:print(student,NUM);break; case 3:save(student,NUM);break; case 4:sort(student,NUM);break; case 5:modify(student,NUM);break; case 6:count(student,NUM);break; case

31、 7:return; int menu()int choice;printf(n*班級成績管理*n);printf( 1 成績錄入n);printf( 2 成績顯示n);printf( 3 成績保存n);printf( 4 成績排序n);printf( 5 成績修改n);printf( 6 成績統(tǒng)計n);printf( 7 退出系統(tǒng)n);printf( 學(xué)生人數(shù)級 NUM 課程 數(shù)學(xué)0 語文1 英語2 政治3n);printf(*n);doprintf(nchoice1-7:); scanf(%d,&choice);while(choice7);return choice;void enter

32、(struct stu s,int n)char c;int i=0;int j;do printf(please enter the message:n);getchar(); printf(enter name:n); scanf(%s,); printf(enter num:n); scanf(%d,&si.num);printf(enter score:n); for(j=0;jM;j+)scanf(%d,&si.scorej);printf(按Y繼續(xù)錄入,按N結(jié)束錄入!);getchar();scanf(%c,&c);if(c!=Y&c!=y)break;+i;whil

33、e(i!=n);void save(struct stu s,int n)FILE *fp; int i; char save20; printf(enter the file name:); scanf(%s,save); /*輸入選擇項*/ if(fp=fopen(stu-list,wb)=NULL)printf(can not open filen); return; elsefor (i=0;in;i+) if(fwrite (&si,sizeof(struct stu),1,fp)!=1); printf(file write errorn); fclose(fp); printf(

34、successn);void print (struct stu s,int n)int i,j; for(i=0;in;i+) printf( 數(shù)學(xué) 語文 英語 政治n);printf(%s,); printf(%d,si.num); for(j=0;jM;j+) printf(%5d,si.scorej); printf(n);void sort(struct stu s,int n) /*排序*/int i,j,min,temp,k; printf(please choice subject 1-4:n); scanf(%d,&k); for(i=0;in-1;i+)min

35、=i; for(j=i+1;jsj.scorek)temp=smin.scorek; smin.scorek=sj.scorek; sj.scorek=temp; printf(n The sorted numbers:n); for(i=0;in;i+) printf(%5d,si.scorek); printf(n);void count(struct stu s,int n)void show1(struct stu a,int n1);void show2(struct stu a,int n1);int menu1();for( ; ;) switch(menu1() case 1:

36、show1(s,n);break; case 2:show2(s,n);break; case 3:return;int menu1()int choice1;printf(n*n);printf(1:顯示每科成績最高的學(xué)生信息n);printf(2:顯示每科平均成績n);printf(3:退出n);printf(*n);do printf(n Enter tou choice1 (1-3):);scanf(%d,&choice1);while(choice13);return choice1;void show1(struct stu a,int n1)int k,i,j,c=0; printf(please enter the subject num:); scanf(%d,&k); for(i=0;in1;i+) if(ac.scorek

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論