C++學生成績管理系統課程設計_第1頁
C++學生成績管理系統課程設計_第2頁
C++學生成績管理系統課程設計_第3頁
C++學生成績管理系統課程設計_第4頁
C++學生成績管理系統課程設計_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、目錄1、C+課程設計實驗目的 22、課程設計內容22.1 課程設計的題目及簡介 22.2 設計思路說明32.3 程序實現32.4 程序流程圖42.5 文件流的實現73、運行結果截圖 94、學習小結 111、C+課程設計實驗目的這次C+課程設計實驗通過設計一個學生成績管理系統,使學生 分析模塊的實現并用掌握系統各功能模塊的基本工作原理,從而掌握 C+ +的面向對象基本編程原理和及基本的編程方法,在編寫模板過 程中學會系統調試分部調試。進而培養分析、解決問題的能力,與此 同時提高軟件文檔寫作能力。2、課程設計內容2.1 課程設計的題目及簡介請用C+編寫一系統,實現學生信息管理,軟件的入口界面應包括

2、如 下幾個方面:(一) 功能要求:(1)信息維護:要求:學生信息數據要以文件的形式保存,能實現學生信息的維護,此模塊包括子模塊有:增加學生信息、刪除學生信息、修 改學生信息(2)信息查詢:要求:查詢時可實現按姓名查詢、按學號查詢(3)成績統計:要求:A輸入任意的一個課程名(如數學)和一個分數段(60-70),統計出在此分數段的學生情況。B能統計學生的成績,求學生的總分及平均分,并能根據學生的平均成績進行排序(4)排序:能對用戶指定的任意課程名,按成績升序或降序排列學生 數據并顯示,排序結果(使用表格的形式顯示排序后的輸出結果) (使用多種方法排序者,加分)(二)其它要求:(1) 只能使用C+語

3、言,源程序要有適當的注釋,使程序容易閱讀(2) 至少采用文本菜單界面(如果能采用圖形菜單界面更好)(3) 學生可自動增加新功能模塊(視情況可另外加分)(4) 寫出課程設計報告,具體要求見相關說明文檔2.2 設計思路說明(1) 定義student類,然后進行全局變量聲明及初始化,這些變量包含了 Save(保存學生信息);Add(增加學生信息);Delete(刪除學生信息);Modify(修改學生信息);Show(打印學生信息);Search管找學生信息);GradeSelect(按分數查詢);SortNum(根據學號排序);SortGrade(成績分 段統計)(2) 文件流實現對文件的打開讀取和

4、保存(3) 設置一個驗證函數 bool Find來驗證學號的存在與否(4) 各函數功能的實現及主函數(包含了文本菜單界面)2.3 程序實現(1) 取再以write_file對文件進行保存,使之本身有一個學生成績 數據庫,方便實現程序功能的操作,避免了每次測試程序都 輸入學生信息(2) switch語句的多次使用使程序簡便易讀,僻如對學生信息進行修改,用switch語句針對要修改的項目而不用將不要修改 的重新輸入,同時主菜單界面也是通過它實現的(3) 各程序模塊間相互調用,以實現功能,例如 Modify函數調用了 Search 函數(4) 在main函數中運用了 switch語句對菜單進行選擇。

5、運行時菜 單顯示如圖所示:通過 ifstream& open file實現對文件的打開,通過read_file對文件進行讀取,再通過 ofstream fout函數對 文件進行保存。女女大口士七、亡M里常用率土立葉于茂里女士力力亡白仃七六KMKl Mi>Hfl同同*'«>wwmh HM «« WM W1、母蚱學生宦.是】 2.駐除號.支TWJ 配學生值息位表】 、歸改學生信用J L百戲學主伍芭上 6.根出學弓排中】 孔根/成冊排序 九詠統甘沙筑有】 令、退由累疏JH HHMriNNrirri HriM HHHMNMMririririri

6、 HHriHMMMMriM-MN n*”*y n 00-胃胃篤帽 M MWW-WH w - wHHMWWWVWWWW>W回國營富一修,牝古-列青電導技師-:iw. 'r .'- 1'- -.': - :'- -'- -,r ' 7 - r -1- -'f -L-L-1-t-L-'- - -濡為祥具體暑作;圖2-1程序的選擇菜單界面2.4 程序流程圖i出生英黑,結就I圖2-2主函數流程圖(1) 流程圖說明:輸出歡迎界面,輸入功能選項;通過調用各模塊功能函數實現以 下功能:Add函數Delete函數Show函數Modif

7、y函數Search函數SortNum 函數SortGrade 函數GradeSelect 函數添加學生信息:調用 刪除學生信息:調用 學生信息列表:調用 學生信息修改:調用 查找學生信息:調用 根據學號排序:調用 根據成績排序:調用 成績分段統計:調用通過switch語句實現多條件分支功能選擇,通過循環實現所選功 能結束后重選操作。(2) 定義study類的成員數據:Num/學生學號,定義為 string型Name學生姓名,定義為 string型Math/數學成績,定義為int型English 英語成績,定義為int型Computer 計算機成績,定義為int型Grade 平均成績,定義為in

8、t型boolFind定義一個bool Find函數對學號進行判斷看該學號是否存在, 函數的判斷中只有true和false,所以判斷過程簡便。Setw函數控制字符域寬。(3) Add函數流程圖Delete函數流程圖說明:開始之后就用if語句調用bool函數以判斷學號是否存在,若存在則結束返回,若不存在則輸入 信息并存入數組然后數組總條數加1,最后結束返回菜單。圖2-3 Add函數流程圖Delete函數流程圖:Delete函數流程圖說明:開始之后先輸入要刪除的學生學號,而 后調用Find函數判斷是否是存在的學號,如果學號存在則輸出該學 號的學生信息,然后確認刪除該生成績信息,如果確認,則該生信息刪

9、除,最后結束。如果該學號不存在,則提示“該學號不存在! ”結束回到主菜單。bl 攵生版繼侑昌硝M州除 (Y/N)的學L學弓仁/生仁士疝汜J和素陽*輔人、&W剁第, Jn則該圖2-4 Delete函數流程圖其它模塊的實現流程圖與以上的類似就不一一列舉了,下面進入整個課設最重要的部分一一文件流的使用。2.5 文件流的實現(D文件的打開,代碼如圖所示:二二件,返回義件點iFTramiK opn fstrar* In pcf>nr string fitdl?j (”i 1 叫;in iCl?arf);in .4)penf il« ,c_str( J J ;retiirft in

10、;圖2-5文件的打開與返回in.open(file.c_str()用一般的文件打開方式不能打開字符串,打開是亂碼, 不直接用in.open("file")打開文件,而要在要在file后面加.c_str。(2) 文件的讀取,代碼如下圖所示:“讀文件 intstring lifllF)( input; 討p ut . file >lut i-B.j*11 dh lief get! t n-( Input 1tli ( isti5與Wil 14 Mdteh(J) ( case 11 uor d; brza*;?: stui9Hianp=iJRirrt; brejk; cas

11、e 8;stuij.ltatlri-atQi(tKrdBcH£tr(); terpdk; 仁加p :5tu$, 口 iglKhrtolf imY.ic/tir。 圖2-6文件的讀取代碼之所以定義 string word ,并且之后有 atoi(word.c_str()是因為word里面存了一個單詞,這樣可以讀取。atoi函數的作用是將字符轉換為整形,由于我沒有和數組保存數據信息,故用字符串的話用書上的文件流讀取方式后打開是亂碼,不是可以看懂的整形,故些處使用 atoi函 數進行轉換克服這一難題。使用 getline獲取數據時遇空格可接受。(3) 寫文件,代碼如圖所示:vnid uri

12、tr filrtcnn5t string le) (oFstrsjn FW廁身尸開護工斗不存在它金為棕白總 faut .cIdO ;fnut mIn" |);11p,c str(i) ,:|: "il 1L "1/ri”“' : 1. t1 邛 ' ftr string str;Fnrlint i-fii<5 ;*i1 < rukitccstufi _niji<«T,": routc(Etul.naM<( rFnglisb4* *;fntit«stwrn CLPr<<bd h,;Fo

13、ut<($tuLii.GrdBe<<* uut«eniL;) fullt .£lllC«():圖2-7文件的書寫保存用ofstream fout函數打開文件是因為如果打開的文件不存在,它會為你自動創建一個文件,而fout.openfile.c_str()中的“c_str()”是 因為文件被申明為了string類型。然后用for循環語句可使用戶持續輸入數據。最后用fout.close()關閉文件,若不關閉將損壞文件。3、運行結果截圖在白白白色請已擇H年即性3£息去告£序'r計 邙|=.匚叵尸川以:-rj 生生尾1.主與F

14、段 wrT半成 3/ 71即生改班喑揖潢出 士舊字:工說;-.七:>*廣<士二二二二;二二工:.孝號姓名居生英國計耳機平、2909565T5時B2200981用幽67陳年73曲20093ES能91812009215BE8T9B329B93as汕TS仃白白力白白六社二* a ': :,- :; : :::白行3志圖3-1初始存入的學生信息諾進擇弓體穿偌;1 清禧人新循學生學號:請輸入.他£:國1專片9電輸入污生考試成逋F5 84 81;棄機)獷博學生甘邑二子立學號2»88128B92 200932SB3S一同-n,眄靜若揭8 5 5 7 5-55 T S

15、& 3 7干埼分圖3-2增加學生信息請選攔具體操作:2請輸入要刪除的學生學號2G99IG5字號姓名高效英語計算機平均分20091 張二 68859181確認刪除該學生信息? “/N) V 該記錄已刪除£圖3-3刪除學生信息情選擇具體操作:5按學號查詢請按1按姓名查誨請按2請選擇具體操作:1情輸入學號3091該學號不存在,情重新輸入!圖3-4查找學生信息謂過援具體梯傳:T數學I打英語 13計尊機【”干坳什謂修入悻序方更7 n圖3-5根據成績排序»五四國碼 名韓王李周明 牲 物1降呼 科呼 清犍入捌中方玉: n學號ZOflK20632之肇)94請選蟀具體銖任足學號 在名

16、 輒數 電唔 計算執 平灼傷2曬2 2B69320GS4266952999$四五明X#3 一ir.Ii,'中周用-5 ST 5 57 8 6 8 79 93 6 16 7 7 6 B圖3-6根據學號排序請選擇具訃新佯忐 情編入課程名稱: 英語潘菊入“敢下限,fQ周的入分數上限:W比分數段內學生為:學號,姓名喜欹29093 主五曬29035 就前85其暗計算機平均分科?97S75682圖3-7根據分數段排序.U 塾便 用 學生或為營理 搴;象力點 小七會也也吃H 1« 1+ hi 1 L* TL ISEV燙巨忘IT序T«像打tt槽井拜茨生小與主生專融債字字之字字字It

17、E第,!:|*.* 曰圾比用飛±.靠助學悻專推津施迪w. -k«u,作若-中青帝算電帥;用急濡圖3-8退出系統4、學習小結通過這次C+的課設,我進一步了解了 C+面對對象的編程方法,印 象最深的是文件流的使用。在文件流的使用中遇到許多問題,比如打開TXT文檔是亂碼,因為使用的文件打開方式是適合數組而不適合字符串的。同樣在這樣艱難的過程中我也學會很多,對原本一知半解的文件 流有了進一步的認識,現在已經可以進行簡單使用了。其實各部分的模 塊大部分都是面向過程的,所以遇到的問題可以通過查資料或者問同學 老師等方式解決,雖然不是課設的主要內容,但是也遇到很多問題,程 序在不斷調試修改中才逐漸成型,逐漸完善。只有自己認真做了這個課 設,在其中可以學到很多知識,有平時自己根本就注意不到的細節問題, 可能導致整個程序大亂,比如我只是在一個分模塊中漏了一個“",最后出現七個錯誤

溫馨提示

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

最新文檔

評論

0/150

提交評論