C++學(xué)生成績管理系統(tǒng)論文_第1頁
C++學(xué)生成績管理系統(tǒng)論文_第2頁
C++學(xué)生成績管理系統(tǒng)論文_第3頁
C++學(xué)生成績管理系統(tǒng)論文_第4頁
C++學(xué)生成績管理系統(tǒng)論文_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

學(xué)生成績管理系統(tǒng) 一、引言 教育行業(yè)的多元信息進(jìn)行有效的管理工作也成為教育行業(yè)的重要任務(wù)之一。目前,學(xué)校工作繁雜、資料眾多,傳統(tǒng)的人工管理不僅復(fù)雜,也牽涉了很多的人力,對管理也造成了諸多不便,所以各高校已經(jīng)引入了各類信息管理系統(tǒng),為教務(wù)工作人員減輕了負(fù)擔(dān),提高了工作效率。本論文是關(guān)于學(xué)生成績管理的一套系統(tǒng),該系統(tǒng)是對學(xué)生的成績進(jìn)行修改和管理,而且方便快速,可以作為老師的輔助軟件,對學(xué)生的各種成績進(jìn)行管理。 本系統(tǒng)作為對信息與計(jì)算科學(xué)專業(yè)學(xué)生的成績進(jìn)行管理的一個系統(tǒng),旨在為信息與計(jì)算科學(xué)專業(yè)的老師提供一個在互聯(lián)網(wǎng)上對學(xué)生成績進(jìn)行修改和管理的平臺。通過本系統(tǒng)的應(yīng)用可達(dá)到對學(xué)生的基礎(chǔ)信息和課程成績的錄入、對輸入的學(xué)生信息可以保存到一個數(shù)據(jù)文件、對當(dāng)前打開的數(shù)據(jù)文件可以進(jìn)行修改、對學(xué)生的各種相關(guān)信息進(jìn)行查詢以及可以對所有學(xué)生的相關(guān)信息以報(bào)表的形式輸出。本系統(tǒng)應(yīng)用于信息與計(jì)算科學(xué)專業(yè)學(xué)生的成績管理。 本系統(tǒng)是采用C+語言編寫的。學(xué)生成績管理系統(tǒng)具有方便的數(shù)據(jù)查詢和瀏覽的功能以及整個系統(tǒng)有嚴(yán)密的權(quán)限管理,增強(qiáng)了系統(tǒng)數(shù)據(jù)的安全性;增加、刪除、修改數(shù)據(jù)方便快捷,減少教務(wù)人員的工作量,簡單而且高效。 二、需求分析2.1 可行性分析 可行性分析的含義就是用最小的代價(jià)和盡可能少的時(shí)間來解決問題。而成績管理系統(tǒng)正好實(shí)現(xiàn)了縮短時(shí)間、提高效率、減少財(cái)力的支出而完成任務(wù)的目的。 本系統(tǒng)采用C+語言實(shí)現(xiàn)了對數(shù)據(jù)的錄入、修改、刪除、查詢、瀏覽、統(tǒng)計(jì)等功能的設(shè)計(jì),從而實(shí)現(xiàn)了技術(shù)上的可行性。在當(dāng)今的信息時(shí)代,計(jì)算機(jī)已為日常辦公所用,操作系統(tǒng)也為人們所熟悉。購買計(jì)算機(jī)所需費(fèi)用也能夠被人們所接受。只要一臺電腦,一臺打印機(jī),這個系統(tǒng)就可以實(shí)現(xiàn)其功能。本系統(tǒng)可以減少教務(wù)人員的工作量,提高工作效率,而且操作方便。它有著簡單、直觀、安全、適用等優(yōu)點(diǎn),使學(xué)校的教學(xué)管理更上一層樓。2.2 需求規(guī)定2.2.1 對功能的規(guī)定 功能構(gòu)成用數(shù)組或鏈表數(shù)據(jù)結(jié)構(gòu)完成一個學(xué)生成績管理系統(tǒng),此系統(tǒng)的具體功能要求如下:(1)學(xué)生信息錄入功能 1)用戶從鍵盤輸入每個學(xué)生的信息:學(xué)號、姓名、性別、數(shù)學(xué)分析、英語、高等代數(shù)、C+語言程序設(shè)計(jì)、普通物理五門課成績。 2)可插入一個或多個學(xué)生信息到當(dāng)前編輯的班級數(shù)據(jù)中。 3)可刪除一個或多個學(xué)生信息。(2)文件信息修改功能 1)學(xué)生信息每一班存為一個數(shù)據(jù)文件,數(shù)據(jù)文件可在程序中打開、編輯、修改和重新保存。 2)用戶修改學(xué)生信息后可隨時(shí)保存數(shù)據(jù)文件。 3)程序只能對當(dāng)前打開的數(shù)據(jù)文件進(jìn)行編輯。(3)查詢功能 1)查詢所有學(xué)生信息; 2)按學(xué)號查詢學(xué)生信息; 3)按姓名查詢學(xué)生信息; 4)查詢一個班的總成績和平均成績; 5)查詢一個班某一門課的總成績和平均成績; 6)查詢某一門課的各分?jǐn)?shù)段( 90)學(xué)生數(shù)。(4)報(bào)表輸出功能 1)按學(xué)號由低到高輸出一個班的學(xué)生信息:學(xué)號、姓名、性別、數(shù)學(xué)分析、英語、高等代數(shù)、C+語言程序設(shè)計(jì)、普通物理成績和總成績,并顯示到屏幕上。 2)按總成績由高到低輸出學(xué)生學(xué)號、姓名信息。 注:以上功能以菜單形式供用戶使用,并有一定的容錯功能。2.2.1 系統(tǒng)的分層DFD圖 學(xué)生成績管理系統(tǒng)查詢功能文件信息修改功能報(bào)表輸出功能學(xué)生信息錄入功能 按總成績輸出報(bào)表按學(xué)號輸出報(bào)表刪除學(xué)生信息插入學(xué)生信息 查詢功能查詢一個班的總成績和平均成績查詢某一門課的各分?jǐn)?shù)段學(xué)生數(shù)查詢一個班某一門課的總成績和平均成績查詢所有學(xué)生信息按學(xué)號查詢學(xué)生信 息按姓名查詢學(xué)生信息 圖1 分層DFD圖2.2.2 性能需求 軟件應(yīng)保證系統(tǒng)運(yùn)行穩(wěn)定,避免出現(xiàn)系統(tǒng)崩潰;軟件必須保證有足夠的數(shù)據(jù)精度,不影響正常業(yè)務(wù);軟件應(yīng)盡量做到響應(yīng)快速、操作簡便。 三、軟件總體設(shè)計(jì)3.1 系統(tǒng)整體框架整個學(xué)生成績管理系統(tǒng)采用鏈表作為基本數(shù)據(jù)結(jié)構(gòu)。創(chuàng)建一個類student用于保存學(xué)生的數(shù)據(jù)且是鏈表中的一個節(jié)點(diǎn),類list作為保存整個鏈表之用。主函數(shù)通過switch語句來根據(jù)用戶的需要連接各個模塊,以實(shí)現(xiàn)用戶的需要。3.2 基本模塊介紹3.2.1 用戶輸入模塊 在此模塊中,用戶將根據(jù)菜單提示結(jié)合自己的需求輸入一個011的值,來實(shí)現(xiàn)一定的功能。3.2.2 學(xué)生信息錄入模塊 此模塊可以讓用戶從鍵盤輸入每個學(xué)生的信息:學(xué)號、姓名、性別、數(shù)學(xué)分析、英語、高等代數(shù)、C+語言程序設(shè)計(jì)、普通物理五門課成績。用戶可插入一個或多個學(xué)生信息到當(dāng)前編輯的班級數(shù)據(jù)中。用戶也可刪除一個或多個學(xué)生信息。3.2.3 文件信息修改功能模塊 用戶可以用此模塊將數(shù)據(jù)文件在程序中打開、編輯、修改和保存,程序只能對當(dāng)前打開的數(shù)據(jù)文件進(jìn)行編輯。用戶在確定已錄入的成績無誤之后,可以將學(xué)生信息以每一班為單位存為一個數(shù)據(jù)文件。用戶修改學(xué)生信息后可隨時(shí)保存數(shù)據(jù)文件。 3.2.4 查詢功能模塊 在此模塊里,用戶可實(shí)現(xiàn)以下操作:瀏覽所有學(xué)生信息;按學(xué)號查詢學(xué)生信息;按姓名查詢學(xué)生信息;查詢一個班每個人的總成績和平均成績;查詢一個班某一門課總成績和平均成績;進(jìn)行成績的統(tǒng)計(jì)分析:包括總?cè)藬?shù)、每門課的最高成績、最低成績、平均成績、各個分?jǐn)?shù)段的人數(shù)(100-90、89-80、79-70、69-60、60以下)、及格人數(shù)。3.2.5 報(bào)表輸出功能模塊在此模塊中,用戶可以瀏覽所有學(xué)生的信息;或者可以按學(xué)號由高到低輸出一個班學(xué)生信息:學(xué)號、姓名、性別、數(shù)學(xué)分析、英語、高等代數(shù)、C+程序設(shè)計(jì)、普通物理成績和總成績,并顯示在屏幕上;也可以按總成績由高到低輸出學(xué)生學(xué)號、姓名信息。 四、軟件詳細(xì)設(shè)計(jì) 4.1 主要功能模塊的算法設(shè)計(jì)思路4.1.1 用戶輸入模塊設(shè)計(jì)提示用戶輸入一個011的值,并存儲在一個整型變量m中。4.1.2 學(xué)生信息錄入模塊設(shè)計(jì)通過應(yīng)用list中的instu()函數(shù),來新建一個鏈表中的節(jié)點(diǎn),即一個新的學(xué)生信息,來進(jìn)行成績的錄入功能。成績修改功能,可以根據(jù)姓名或?qū)W號進(jìn)行查詢并修改相應(yīng)的課程的成績,使用了void search(char s10,int)和void search1(char s20,int)函數(shù)進(jìn)行操作。search函數(shù)根據(jù)姓名查找,search1函數(shù)根據(jù)學(xué)號進(jìn)行查找。因?yàn)閷W(xué)號和姓名,都是存儲在字符數(shù)組中的,所以都是通過字符串的比較進(jìn)行查找的。然后根據(jù)整形參數(shù)進(jìn)行對應(yīng)的課程成績的修改。成績刪除功能,也是可以根據(jù)姓名或?qū)W號進(jìn)行刪除,查詢的算法和成績修改功能的查詢方法是一樣的,當(dāng)找到要刪除的節(jié)點(diǎn)時(shí),因?yàn)楣?jié)點(diǎn)都是在堆內(nèi)存中保存的,所以可以直接刪除掉,并將前一個節(jié)點(diǎn)的next指針指向被刪掉的節(jié)點(diǎn)的next指針?biāo)赶虻墓?jié)點(diǎn)。4.1.3 文件信息修改功能模塊先提示用戶輸入要打開的數(shù)據(jù)文件的名稱,然后通過一個類ifstream的對象input來進(jìn)行文件操作。首先判斷文件是否存在,如果不存在則輸出File does not exist,并跳出switch語句。文件存在的話,則可以進(jìn)行數(shù)據(jù)的存入了。因?yàn)閿?shù)據(jù)文件具有固定的格式,即開頭兩行是班級名稱和表頭,則可以先用兩次input.getline(temp,80);語句來將input設(shè)置到第三行,此時(shí)可以將數(shù)據(jù)通過input讀入鏈表中。先用input.eof()判斷文件中是否有數(shù)據(jù),若有數(shù)據(jù),則進(jìn)行數(shù)據(jù)的讀入,直到文件結(jié)束。接著要將所修改的數(shù)據(jù)文件進(jìn)行保存。先提示用戶輸入保存文件的文件名及班級名稱。文件的前兩行分別是班級名稱和成績單的開頭,然后通過類ofstream的一個對象output來進(jìn)行學(xué)生信息的輸出,一項(xiàng)一項(xiàng)的輸出,并設(shè)定格式,直到輸出節(jié)點(diǎn)為NULL為止,之后關(guān)閉output。4.1.4 查詢功能模塊 可以根據(jù)姓名或?qū)W號進(jìn)行查找,搜索方法和前幾個模塊相同。通過outstu1(char *n)和outstu(char *n)來進(jìn)行輸出。總成績和平均成績的查詢通過函數(shù)void outsum(char *)和void outsum1(char *)來完成。通過函數(shù)scanall()來瀏覽所有學(xué)生的信息。通過函數(shù)think()來進(jìn)行成績的統(tǒng)計(jì)分析。4.1.5 報(bào)表輸出功能模塊 通過建立一個新的類class stucopy用于拷貝student的數(shù)據(jù),并實(shí)現(xiàn)排序功能。創(chuàng)建一個stucopy stuM數(shù)組,將原鏈表的數(shù)據(jù)拷貝于數(shù)組中,然后用選擇排序方法將數(shù)組排序,然后用output按照標(biāo)準(zhǔn)的格式輸出或保存為數(shù)據(jù)文件。 五、總結(jié) 本人結(jié)合教務(wù)管理人員對成績信息的具體管理需求,開發(fā)了一套學(xué)生成績管理系統(tǒng)。利用先進(jìn)的計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)對學(xué)生成績信息進(jìn)行管理,提高了教務(wù)管理人員的工作效率,減少了人力資源的浪費(fèi)。本系統(tǒng)經(jīng)多次測試,能在Visual C+ 6.0的調(diào)試環(huán)境上正常運(yùn)行,基本上實(shí)現(xiàn)了數(shù)據(jù)管理功能,目前試運(yùn)行良好。綜上詳細(xì)闡述了本系統(tǒng)的整個開發(fā)過程和實(shí)現(xiàn)功能,能夠進(jìn)行學(xué)生成績信息錄入、修改、查詢、瀏覽、刪除、統(tǒng)計(jì)等操作,整體界面美觀大方,完成了教務(wù)人員對學(xué)生成績管理工作的要求,適用于一系列的教育單位。本系統(tǒng)的應(yīng)用,將會使學(xué)生和教務(wù)管理人員在第一時(shí)間內(nèi)獲得理想信息。該課程設(shè)計(jì)是用類來實(shí)現(xiàn)的。通過這個課程設(shè)計(jì),我更加牢固地掌握了C+的知識,并對于以前不熟悉的知識有了更加深刻的了解。同時(shí),在完成此次課程設(shè)計(jì)的過程中,我上網(wǎng)查找了許多與C+相關(guān)的知識,從而擴(kuò)展了我的知識面。 六、參考文獻(xiàn) 1 鄭莉,董淵,何江舟.C+語言程序設(shè)計(jì).清華大學(xué)出版社 2013-10 附件源程序清單:void main()stucopy stuM;/復(fù)制整個鏈表的數(shù)據(jù)于數(shù)組,用于排序stucopy stutemp;/臨時(shí)變量list will;/整個鏈表student *p, *p1=new student(),*q;/臨時(shí)變量ifstream input;/輸入ofstream output;/輸出char file20,classname20,temp80,id20,name9,sex110;/臨時(shí)變量int m=0,n=0,j=0,i=0;/臨時(shí)變量double grade15;/臨時(shí)變量for(i=0;i20;i+) idi=0;for(i=0;i9;i+) namei=0;/初始化docout 學(xué)生成績管理系統(tǒng) n 0、 退出系統(tǒng)。n 1、 成績的錄入:包括學(xué)生學(xué)號、姓名、性別和各門課程成績的錄入。n 2、 成績的查詢:可以根據(jù)學(xué)號或姓名查詢某個學(xué)生的成績。n 3、 成績的修改:可以根據(jù)學(xué)號或姓名來修改相應(yīng)的學(xué)生的成績。n 4、 數(shù)據(jù)的刪除:可以根據(jù)學(xué)號或姓名指定刪除某個學(xué)生的數(shù)據(jù)。n 5、 成績的統(tǒng)計(jì)分析:包括總?cè)藬?shù)、最高成績、最低成績、平均成績、n 各個分?jǐn)?shù)段的人數(shù)(100-90、89-80、79-70、69-60、59-50、50以下)、及格率。n 6、 總成績和平均成績的查詢:可以根據(jù)學(xué)號或姓名查詢。n 7、 瀏覽所有學(xué)生信息。n 8、 將所有學(xué)生信息保存成文件。n 9、 打開指定的數(shù)據(jù)文件。n 10、 按總成績排序輸出學(xué)生信息。n 11、 按學(xué)號順序輸出學(xué)生信息,并可保存成文件。n;coutendlm;switch(m)case 1:will.instu();break;case 2:cout1.根據(jù)學(xué)號查詢 2.根據(jù)姓名查詢endln;switch(n)case 1:coutid;will.outstu1(id);coutn;break;case 2:coutname;will.outstu(name);coutn;break;break;case 3:cout1.根據(jù)學(xué)號查詢 2.根據(jù)姓名查詢endln;switch(n)case 1:coutid;will.outstu1(id);coutn;coutsetw(6)1.數(shù)學(xué)分析setw(6)2.英語setw(6)3.高等代數(shù)setw(14)4.C+語言程序設(shè)計(jì)setw(6)5.普通物理endl;coutj;will.search1(id,j);break;case 2:coutname;will.outstu(name);coutn;coutsetw(6)1.數(shù)學(xué)分析setw(6)2.英語setw(6)3.高等代數(shù)setw(14)4.C+語言程序設(shè)計(jì)setw(6)5.普通物理endl;coutj;will.search(name,j);break;break;case 4:cout1.根據(jù)學(xué)號刪除 2.根據(jù)姓名刪除endln;switch(n)case 1:coutid;will.outstu1(id);will.delstu1(id);break;case 2:coutname;will.outstu(name);will.delstu(name);break;break;case 5:will.think();break;case 6:cout1.根據(jù)學(xué)號查詢 2.根據(jù)姓名查詢endln;switch(n)case 1:coutid;will.outsum1(id);break;case 2:coutname;will.outsum(name);break;break;case 7:coutsetw(8)學(xué)號setw(8)姓名setw(6)性別setw(6)數(shù)學(xué)分析setw(6)英語setw(6)高等代數(shù)setw(14)C+語言程序設(shè)計(jì)setw(6)普通物理setw(8)總成績setw(10)平均成績n;will.scanall();break;case 8:cout請輸入文件名:file;cout請輸入班級名稱:classname;output.open(file);p = will.first;outputclassname成績單endlsetw(8)學(xué)號setw(8)姓名setw(6)性別setw(6)數(shù)學(xué)分析setw(6)英語setw(6)高等代數(shù)setw(14)C+語言程序設(shè)計(jì)setw(6)普通物理setw(8)總成績setw(10)平均成績next)outputsetw(8)outid()setw(8)outname()setw(6)outsex()setw(6)outgrade(0)setw(6)outgrade(1)setw(6)outgrade(2)setw(14)outgrade(3)setw(6)outgrade(4)setw(8)outsum()setw(10)outav()endl;output.close();break;case 9:cout請輸入文件名:file;input.open(file);if (input.fail()coutFile does not existendl;break;input.getline(temp,80);input.getline(temp,80);if(input.eof() cout文件中無數(shù)據(jù)!idnamesex1grade10grade11grade12grade13grade14;inputtemp;inputtemp;/將總成績和平均成績輸入進(jìn)臨時(shí)變量p1-setid(id);p1-setname(name);p1-setsex(sex1);p1-setgrade(grade1);will.first=p1;will.last=will.first;while(!input.eof()p=new student();q=will.last; will.last-next=p;will.last=p;inputidnamesex1grade10grade11grade12grade13grade14;will.last-setid(id);will.last-setname(name);will.last-setsex(sex1);will.last-setgrade(grade1);inputtemp;inputtemp;/將總成績和平均成績輸入進(jìn)臨時(shí)變量will.last=q;will.last-next=NULL;input.close();break;case 10:p=will.first;for(i=0;inext)for (j=0;jidj;for (j=0;jnamej;for (j=0;jsexj;stui.sumsum=p-outsum();stui.average=p-outav();for(n=0;ni-1;n+)for(j=1;ji;j+)if (stun.sumsumstuj.sumsum)stutemp=stuj;stuj=stun;stun=stutemp;coutsetw(8)學(xué)號setw(8)姓名setw(6)性別setw(8)總成績setw(10)平均成績n;for (j=0;ji;j+)coutsetw(8)stuj.idsetw(8)setw(6)stuj.sexsetw(8)stuj.sumsumsetw(10)stuj.averageendl;break;case 11:p=will.first;for(i=0;inext)for (j=0;jidj;for (j=0;jnamej;for (j=0;jsexj;stui.sumsum=p-outsum();stui.average=p-outav();for(j=0;jgradej;for(n=0;ni-1;n+)for(j=1;jstuj.id)stutemp=stuj;stuj=st

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論