




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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函數對文件進行保存。 圖2-1程序的選擇菜單界面2.4 程序流程圖 圖2-2主函數流程圖(1) 流程圖說明: 輸出歡迎界面,輸入功能選項;通過調用各模塊功能函數實現以下功能:添加學生信息:調用Add函數刪除學生信息:調用Delete函數學生信息列表:調用Show函數學生信息修改:調用Modify函數查找學生信息:調用Search函數根據學號排序:調用SortNum函數根據成績排序:調用SortGrade函數成績分段統計:調用Grad
6、eSelect函數通過switch語句實現多條件分支功能選擇,通過循環實現所選功能結束后重選操作。(2) 定義study類的成員數據:Num/學生學號,定義為string型Name/學生姓名,定義為string型Math/數學成績,定義為int型English /英語成績,定義為int型Computer /計算機成績,定義為int型Grade /平均成績,定義為int型定義一個bool Find函數對學號進行判斷看該學號是否存在,bool函數的判斷中只有true和false,所以判斷過程簡便。Setw函數控制字符域寬。(3) Add函數流程圖 Delete函數流程圖說明:開始之后就用if語句調
7、用bool Find函數以判斷學號是否存在,若存在則結束返回,若不存在則輸入信息并存入數組然后數組總條數加1,最后結束返回菜單。圖2-3 Add函數流程圖Delete函數流程圖:Delete函數流程圖說明:開始之后先輸入要刪除的學生學號,而后調用Find函數判斷是否是存在的學號,如果學號存在則輸出該學號的學生信息,然后確認刪除該生成績信息,如果確認,則該生信息刪除,最后結束。如果該學號不存在,則提示“該學號不存在!”結束回到主菜單。 圖2-4 Delete函數流程圖其它模塊的實現流程圖與以上的類似就不一一列舉了,下面進入整個課設最重要的部分文件流的使用。2.5文件流的實現(1) 文件的打開,代
8、碼如圖所示:圖2-5 文件的打開與返回 in.open(file.c_str()用一般的文件打開方式不能打開字符串,打開是亂碼,不直接用in.open("file")打開文件,而要在要在file 后面加.c_str。(2) 文件的讀取,代碼如下圖所示:圖2-6 文件的讀取代碼 之所以定義string word,并且之后有atoi(word.c_str()是因為word里面存了一個單詞,這樣可以讀取。atoi函數的作用是將字符轉換為整形,由于我沒有和數組保存數據信息,故用字符串的話用書上的文件流讀取方式后打開是亂碼,不是可以看懂的整形,故些處使用atoi函數進行轉換
9、克服這一難題。使用getline獲取數據時遇空格可接受。(3) 寫文件,代碼如圖所示:圖2-7 文件的書寫保存 用ofstream fout函數打開文件是因為如果打開的文件不存在,它會為你自動創建一個文件,而fout.open(file.c_str()中的“c_str()”是因為文件被申明為了string類型。然后用for循環語句可使用戶持續輸入數據。最后用fout.close()關閉文件,若不關閉將損壞文件。3、運行結果截圖圖3-1 初始存入的學生信息圖3-2 增加學生信息圖3-3 刪除學生信息圖3-4 查找學生信息圖3-5 根據成績排序圖3-6根據學號排序圖3-7 根據分數段排序圖3-8
10、退出系統4、學習小結 通過這次C+的課設,我進一步了解了C+面對對象的編程方法,印象最深的是文件流的使用。在文件流的使用中遇到許多問題,比如打開TXT文檔是亂碼,因為使用的文件打開方式是適合數組而不適合字符串的。同樣在這樣艱難的過程中我也學會很多,對原本一知半解的文件流有了進一步的認識,現在已經可以進行簡單使用了。其實各部分的模塊大部分都是面向過程的,所以遇到的問題可以通過查資料或者問同學老師等方式解決,雖然不是課設的主要內容,但是也遇到很多問題,程序在不斷調試修改中才逐漸成型,逐漸完善。只有自己認真做了這個課設,在其中可以學到很多知識,有平時自己根本就注意不到的細節問題,可能導致整個程序大亂,比如我只是在一個分模塊中漏了一個“”,最后出現七個錯誤,全是提示成員函數定義不合法。 另外我還學習到,在編程的過程中,千萬不能急于寫代碼,應先規劃一下設計思路,這樣寫代碼時就可以一氣呵成;最大的收獲應該算是發現了一個優秀的軟件開發人員的秘密,那就是自學,不能什么
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 從數據到智慧個性化學習平臺在商業決策中的應用與價值研究
- 中國嬰兒消食散行業發展前景及發展策略與投資風險研究報告2025-2028版
- 2025年中國外平開式塑鋼窗行業投資前景及策略咨詢研究報告
- 衛生事業編制應聘策略與路徑
- 闌尾炎患者的急救與護理
- 低血糖急救護理及流程
- 營養與疾病關聯機制及防控策略
- 小學五年級數學小數除以整數質量練習模擬題大全附答案
- 五千以內加減混合兩步運算質量監控例題帶答案
- 三年級數學萬以內加減法題過關練習口算題帶答案
- 園藝學:植物嫁接技術的創新與應用
- 2025商丘市輔警考試試卷真題
- 萊西市2025年三年級數學第二學期期末統考試題含解析
- 高速公路施工標準化管理指南
- 網絡支付行業的發展趨勢
- 不動產登記代理人《地籍調查》歷年考試真題及答案(高頻題)
- 2025年初級人工智能訓練師(五級)資格理論考試題(附答案)
- 康復治療室工作制度
- 鋁合金門窗安裝施工方案
- 胃癌化療患者的護理查房
- 紫外線院感試題及答案
評論
0/150
提交評論