更新時間:2023-10-25 07:07:56作者:佚名
廣州民航航天學院金城大學《C++程序設計》課程設計實驗報告題目:中學生成績管理系統班級:學號:姓名:成績:指導班主任:**日期:2013年課程設計題目與要求1.1題目中學生成績管理系統1.2系統功能要求1).設計四個類;中學生類(描述中學生基本信息);成績類:班級類;課程類(描述課程信息:課程編號,課目名稱(如高等物理,學院俄語等);中學生成績及課程信息用文件保存,每位類一個文件,程序執行時從文件讀入;2).能按學期,按班級完成對中學生成績的錄入,更改,能按班級統計中學生的成績;求中學生的總分及平均分;并能按照中學生的平均成績進行排序,能查詢中學生成績,不及格課目及中學生名單;能按班級輸出中學生的成績單。3).設置中學生的成績信息:中學生學號、姓名**選課程名稱、平時成績、期末成績、平時成績所占比率4).估算中學生總評成績:總評成績=平常成績*平常成績所占比率+期終成績*(1-平常成績所占比率)5).顯示中學生的姓名**選課程名稱以及平常成績、期末成績和總評成績信息。分雙人顯示和以班輸出(班成績單格式輸出到文件)注意,起碼一個班,30人三門課系統需求剖析2.1需求剖析:a.能對中學生各科成績進行錄入:。b.能對中學生的成績進行降低。
c.能對中學生的成績進行刪掉。d.能對中學生的成績進行更改。e.能對中學生的成績按總成績,姓名,**查詢。f.能輸出中學生的所有數據。g.能進行成績統計h能進行總分查詢排行。2.2系統性能要求:a.系統安全、可靠;b.功能齊全;c.操作便捷、界面友好;d便于維護和擴展。2.3系統的功能剖析:資料維護:系統維護包括對中學生信息的錄入操作及數據表中的信息進行瀏覽。系統功能:可以對數據表中的信息進行瀏覽。系統查詢:可以對中學生的信息進行查詢。總體設計3.1系統功能模塊中學生成績查詢系統有:成績錄入、增加、刪除、修改,數據查詢,排序顯示構成。3.2模塊框架圖詳盡設計主要功能模塊的算法設計思路:4.1用戶輸入模塊設計提示用戶輸入一個0~11的值,并儲存在一個整型變量m中。4.2中學生信息錄入模塊設計通過應用list中的instu()函數,來新建一個數組中的節點,即一個新的中學生信息,來進行成績的錄入功能。成績更改功能,可以按照姓名或學號進行查詢并更改相應的課程的成績,使用了voidsearch(chars[10],int)和voidsearch1(chars[20],int)函數進行操作。search函數依據姓名查找**earch1函數依據學號進行查找。
由于學號和姓名,都**儲在字符鏈表中的,所以都是通過字符串的比較進行查找的。之后按照整形參數進行對應的課程成績的更改。成績刪掉功能,也是可以依據姓名或學**行刪掉,查詢的算法和成績更改功能的查詢方式是一樣的,當找到要刪掉的節點時,由于節點都是在堆顯存中保存的,所以可以直接delete掉,并將前一個節點的next表針指向被刪除的節點的next表針所指向的節點。3.文件保存功能模塊先提示用戶輸入保存文件的文件名及班級名稱。文件的前兩行分別是班級名稱和成績單的開頭,之后通過ofstream變量output來進行中學生信息的輸出,一項一項的輸出,并設定格式,直至輸出節點為NULL為止,然后關掉output。4.文件打開功能模塊先提示用戶輸入要打開的數據文件的名稱,之后通過一個ifstream變量input來進行文件操作。首先判定文件是否存在,倘若不存在則輸出"Filedoesnotexist",并跳出switch句子。文件存在的話,則可以進行數據的存入了。由于數據文件具有固定的格式,即開頭兩行是班級名稱和表頭,則可以先用兩次input.getline(temp,80);句子來將input設置到第三行,此時可以將數據通過input讀入數組中。
先用input.eof()判定文件中是否有數據,若有數據,則進行數據的讀入,直至文件結束。5.查詢功能模塊可以依據姓名或學**行查找,搜索技巧和前幾個模塊相同。通過outstu1(char*n)和outstu(char*n)來進行輸出。總成績和平均成績的查詢通過函數voidoutsum(char*)和voidoutsum1(char*)來完成。通過函數scanall()來瀏覽所有中學生的信息。通過函數think()來進行成績的統計剖析。6.報表輸出功能模塊通過構建一個新的類classstucopy用于拷貝student的數據,并實現排序功能。創建一個stucopystu[M]鏈表,將原數組的數據拷貝與鏈表中,之后用選擇排序方式將鏈表排序,之后用output根據標準的格式輸出或保存為數據文件。系統調試5.1主界面5.2數據錄入5.3降低數據5.4刪掉數據5.5成績查詢結果剖析每一個case都能執行,并且有好多的地方都不夠健全,譬如:在總成績排序中,只能輸出總成績,不能單獨的輸出中學生的相應的信息;每次進行別的操作之前都要在進行一次數據的錄入,不能直接對原有的文件進行讀取。總結這次c++課程設計,在指導班主任的悉心教導下,我們學會了怎么用C++編撰一個簡單的應用程序。
首先要對程序的設計要求有一個比較明晰的認識查期末成績的軟件,之后系統剖析與系統設計,最后是代碼設計與調試。程序實現上,設計了簡單的查詢界面,將各個功能集中下來根據程序編撰原則,以便查詢。心得感受按照C++課程所學的概念、理論和技巧,根據C++程序設計的基本步驟,設計出一個適當規模的程序;進一步加深對C++語言的理解和把握。理論聯系實際,加深和鞏固所學的理論知識,提升實踐能力和計算機的綜合運用能力。我們編撰程序的過程是辛苦與快樂的查期末成績的軟件,程序的編撰原則很重要,只要我們在編程,就必須不斷改進,就能更好提升編程能力。C++語言課程設計實驗報告