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