學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語言課程設(shè)計(jì)

上傳人:na****u 文檔編號(hào):61005549 上傳時(shí)間:2022-03-10 格式:DOC 頁(yè)數(shù):40 大?。?35KB
收藏 版權(quán)申訴 舉報(bào) 下載
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語言課程設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共40頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語言課程設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共40頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語言課程設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共40頁(yè)

下載文檔到電腦,查找使用更方便

30 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語言課程設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語言課程設(shè)計(jì)(40頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、河南工程學(xué)院高級(jí)程序設(shè)計(jì)語言課程設(shè)計(jì)成果報(bào)告學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué)生學(xué)號(hào): 學(xué)生姓名: 學(xué) 院: 計(jì)算機(jī)學(xué)院 專業(yè)班級(jí): 軟件工程 專業(yè)課程: 高級(jí)程序設(shè)計(jì)語言指導(dǎo)教師: 2014 年 6 月 27 日題 目學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)考核項(xiàng)目考核內(nèi)容得分平時(shí)考核(30分)出勤情況、態(tài)度、效率;知識(shí)掌握情況、基本操作技能、知識(shí)應(yīng)用能力、獲取知識(shí)能力系統(tǒng)設(shè)計(jì)(20分)分析系統(tǒng)的功能模塊編程調(diào)試(20分)實(shí)現(xiàn)系統(tǒng)的各個(gè)功能模塊,并完成調(diào)試回答問題(15分)回答老師針對(duì)課程設(shè)計(jì)提出的問題課程設(shè)計(jì)報(bào)告撰寫(10分)嚴(yán)格按照規(guī)范要求完成課程設(shè)計(jì)報(bào)告源代碼(5分)按照規(guī)范要求完成課程設(shè)計(jì)源代碼的排版總

2、 評(píng) 成 績(jī)指導(dǎo)教師評(píng)語: 日期: 年 月 日 目 錄第1章 系統(tǒng)設(shè)計(jì)目的11.1 課程設(shè)計(jì)目的11.2 系統(tǒng)設(shè)計(jì)要求1第2章 系統(tǒng)實(shí)現(xiàn)思路22.1 需求分析22.2 系統(tǒng)性能要求2第3章 系統(tǒng)詳細(xì)設(shè)計(jì)33.1 系統(tǒng)功能模塊33.2 模塊框架圖33.3 系統(tǒng)實(shí)現(xiàn)4第4章 系統(tǒng)調(diào)試運(yùn)行194.1系統(tǒng)運(yùn)行主界面194.2錄入功能194.3刪除功能204.4查詢功能204.5查詢不及格人數(shù)21課程設(shè)計(jì)體會(huì)22參考文獻(xiàn)23第1章 系統(tǒng)設(shè)計(jì)目的1.1 課程設(shè)計(jì)目的在計(jì)算機(jī)領(lǐng)域中,任何好的創(chuàng)意和設(shè)計(jì)最終都需要通過高水平的程序設(shè)計(jì)實(shí)現(xiàn),因此學(xué)習(xí)程序設(shè)計(jì)是計(jì)算機(jī)及相關(guān)專業(yè)學(xué)生必備的基本技能之一。為了使學(xué)生更好

3、的學(xué)習(xí)和掌握這一基本技能,必須系統(tǒng)而全面地的安排程序設(shè)計(jì)課程設(shè)計(jì),目的是通過具體的課程設(shè)計(jì),不僅使學(xué)生能夠進(jìn)一步理解程序設(shè)計(jì)的基本概念,掌握基本的程序設(shè)計(jì)方法,培養(yǎng)良好的程序設(shè)計(jì)風(fēng)格,同時(shí)還可以借助程序設(shè)計(jì)技巧的訓(xùn)練,培養(yǎng)學(xué)生抽象思維、邏輯思維及統(tǒng)籌規(guī)劃的能力。1.2 系統(tǒng)設(shè)計(jì)要求(1)設(shè)計(jì)四個(gè)類,包括學(xué)生類(描述學(xué)生基本信息);成績(jī)類;班級(jí)類;課程類(描述課程信息:課程編號(hào),科目名稱,如高等數(shù)學(xué),大學(xué)英語等);(2)學(xué)生成績(jī)及課程信息用文件保存,程序執(zhí)行時(shí)從文件讀入;(3)能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī);(4)求學(xué)生的總分及平均分,并能根據(jù)學(xué)生的平均成績(jī)進(jìn)

4、行排序,能查詢學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績(jī)單。 設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比 計(jì)算學(xué)生總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占百分比+期末成績(jī)*(1-平時(shí)成績(jī)所占百分比) 顯示學(xué)生的姓名、所選課程名稱以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信息。分單人顯示和以班輸出(班成績(jī)單格式輸出到文件) 注意,至少應(yīng)包含一個(gè)班、30人、三門課 第2章 系統(tǒng)實(shí)現(xiàn)思路2.1 需求分析學(xué)生成績(jī)查詢系統(tǒng)在生活中運(yùn)用廣泛,因此需要多種程序?qū)λM(jìn)行管理。該系統(tǒng)應(yīng)該能存儲(chǔ)學(xué)生的個(gè)人信息與考試成績(jī)。系統(tǒng)管理者能夠利用系統(tǒng)進(jìn)行信息錄入、修改、查

5、詢、刪除、按照姓名、總分進(jìn)行查詢,能輸出所有的學(xué)生的成績(jī)。1系統(tǒng)類設(shè)計(jì)(1)學(xué)生類用于存放基本個(gè)人信息;(2)課程類用于存放課程信息;(3)班級(jí)類用于分類班級(jí);(4)成績(jī)類用于存放成績(jī)。2. 功能分析(1)能對(duì)學(xué)生各科成績(jī)進(jìn)行錄入;(2)能對(duì)學(xué)生的成績(jī)進(jìn)行增加;(3)能對(duì)學(xué)生的成績(jī)進(jìn)行刪除;(4)能對(duì)學(xué)生的成績(jī)進(jìn)行修改;(5)能對(duì)學(xué)生的成績(jī)按總成績(jī),姓名,進(jìn)行查詢;(6)能輸出學(xué)生的所有數(shù)據(jù);(7)能進(jìn)行成績(jī)統(tǒng)計(jì);(8)能進(jìn)行總分查詢排名。2.2 系統(tǒng)性能要求于管理者而言,該系統(tǒng)需要方便的操作,友好的界面。于學(xué)生而言,成績(jī)等屬于個(gè)人信息,因此要求系統(tǒng)有一定的安全性,能夠保護(hù)學(xué)生的基本信息。而隨

6、 擴(kuò)充和修改。因此系統(tǒng)性能要求如下:(1)系統(tǒng)安全可靠;(2)功能齊全;(3)操作方便、界面友好;(4)易于維護(hù)和擴(kuò)充。第3章 系統(tǒng)詳細(xì)設(shè)計(jì)3.1 系統(tǒng)功能模塊學(xué)生成績(jī)查詢系統(tǒng)有:成績(jī)錄入、數(shù)據(jù)增加、修改、數(shù)據(jù)查詢,排序顯示構(gòu)成。3.2 模塊框架圖 1. 程序中包含類與主函數(shù),類構(gòu)成了程序的數(shù)據(jù)管理與存放區(qū)。在主函數(shù)中包括多種功能。以類為依托構(gòu)成程序框架,在主函數(shù)中實(shí)現(xiàn)每一個(gè)功能。類與功能共同構(gòu)成程序框架。學(xué)生類課程類成績(jī)類系統(tǒng)操作查詢成績(jī)統(tǒng)計(jì)排名錄入增加刪除修改總成績(jī)查詢姓名輸出所有學(xué)生的成績(jī)每個(gè)學(xué)生的平均成績(jī)各科不及格的人數(shù)圖1-1 模塊框架圖2程序用到的頭文件以及自己定義的函數(shù)(1)頭文

7、件#include /輸入輸出流函數(shù)#include /文件操作函數(shù)#include /字符串函數(shù)#include#include(2)自己定義的函數(shù)float getsum();/綜合成績(jī)float getshu();/數(shù)學(xué)總評(píng)成績(jī)float getcpp();/c總評(píng)成績(jī)float geteng();/英語總評(píng)成績(jī)float getaver();/總平均成績(jī)3.3 系統(tǒng)實(shí)現(xiàn)1界面設(shè)計(jì)程序運(yùn)行后會(huì)出現(xiàn)一個(gè)間接地窗口,便于用戶查詢數(shù)據(jù)。主函數(shù)用循環(huán)體以及switch語句實(shí)現(xiàn)功能選擇。主界面展示*歡迎來到學(xué)生成績(jī)查詢系統(tǒng)*請(qǐng)選擇需要的操作?。?)數(shù)據(jù)錄入(2)增加學(xué)生(3)刪除學(xué)生(4)修改數(shù)據(jù)

8、 查詢:(5)按總成績(jī)查詢(6)按姓名查詢(7)輸出所有學(xué)生的數(shù)據(jù) 成績(jī)統(tǒng)計(jì):(8)每個(gè)學(xué)生的平均成績(jī)(9)各個(gè)學(xué)科不及格人數(shù)排名:(10)按總分查詢排名(11)退出選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!主程序代碼void main() /主函數(shù)system(color 07e); /設(shè)置當(dāng)前窗口的背景色和前景色 0 = 黑色 8 = 灰色/ 1 = 藍(lán)色 9 = 淡藍(lán)色/ 2 = 綠色 A = 淡綠色/ 3 = 淺綠色 B = 淡淺綠色/ 4 = 紅色 C = 淡紅色/ 5 = 紫色 D = 淡紫色/ 6 = 黃色 E = 淡黃色/ 7 = 白色 F = 亮白色cout*歡迎來到

9、學(xué)生成績(jī)查詢系統(tǒng)*endl;/主菜單cout請(qǐng)選擇需要的操作!endl;cout(1)數(shù)據(jù)錄入endl;cout(2)增加學(xué)生endl;cout(3)刪除學(xué)生endl;cout(4)修改數(shù)據(jù)endl;cout查詢:endl;cout(5)按總成績(jī)查詢endl;cout(6)按姓名查詢endl;cout(7)輸出所有學(xué)生的數(shù)據(jù)endl;cout成績(jī)統(tǒng)計(jì):endl;cout(8)每個(gè)學(xué)生的平均成績(jī)endl;cout(9)各個(gè)學(xué)科不及格人數(shù)endl;cout排名endl;cout(10)按總分查詢排名endl;cout(11)退出endl;cout選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!p

10、;if(p=1&p=11)chris1=1;elsecout指令錯(cuò)誤!請(qǐng)重新輸入:endl;while(chris1=0);doswitch(p)case 1:. /錄入功能case 2:. /增加功能case 3:. /刪除功能case 4:. /修改數(shù)據(jù)功能case 5:. /按成績(jī)查詢功能case 6:. /按姓名查詢功能case 7:. /輸出所有的數(shù)據(jù)case 8:. /輸出學(xué)生的平均分case 9:. / /查詢不及格人數(shù) case 10:. /總成績(jī)排名while(w=y);/循環(huán)語句結(jié)束2具體功能設(shè)計(jì)通過主窗體調(diào)用其他窗體,實(shí)現(xiàn)其它功能。(1)錄入功能 使用cin輸入流輸入學(xué)生

11、的相關(guān)信息,并創(chuàng)立文件,將所輸入的數(shù)據(jù)存入到文件中。程序代碼docout請(qǐng)輸入姓名name;cout請(qǐng)輸入學(xué)號(hào)number;cout請(qǐng)輸入數(shù)學(xué)成績(jī)math;cout請(qǐng)輸入c+成績(jī)cpp;cout請(qǐng)輸入英語成績(jī)english;cout請(qǐng)輸入數(shù)學(xué)平時(shí)成績(jī)mathp;cout請(qǐng)輸入c+平時(shí)成績(jī)cppp;cout請(qǐng)輸入英語平時(shí)成績(jī)englishp;cout請(qǐng)輸入成績(jī)百分比baif;fstream outfile,infile;outfile.open(f1.txt,ios:out|ios:app);/打開文件if(!file)coutf1.txt can not open.n;return ;outf

12、ilename 學(xué)號(hào):numberendl;outfile數(shù)學(xué)成績(jī): setw(2)mathsetw(20)數(shù)學(xué)平時(shí)成績(jī): setw(2)mathpsetw(20)數(shù)總成績(jī): setw(2)math*baif+mathp*(1-baif)endl;outfile外語成績(jī):setw(2)englishsetw(20)外語平時(shí)成績(jī): setw(2)englishpsetw(20)外總成績(jī): setw(2)english*baif+englishp*(1-baif)endl;outfilec+成績(jī): setw(2)cppsetw(20)c+平時(shí)成績(jī): setw(2)cpppsetw(20)c總成績(jī):

13、 setw(2)cpp*baif+cppp*(1-baif)endl;outfile總成績(jī): math*baif+mathp*(1-baif)+cpp*baif+cppp*(1-baif)+english*baif+englishp*(1-baif)endl;outfile.close(); infile.open(f1.txt,ios:in);if(!file)coutf1.txt can not open.n;return ;char ch;while(infile.get(ch)coutch;coutendl;infile.close();j+;si=new Chengji(number

14、,name,math,cpp,english,mathp,cppp,englishp,baif,mathz,cppz,engz); /將數(shù)據(jù)錄入文件i+;cout數(shù)據(jù)錄入成功,想繼續(xù)嗎(y/n)c;chris1=0;doif(c!=y&c!=n)cout指令錯(cuò)誤!請(qǐng)重新輸入!c;elsechris1=1;while(chris1=0);(2)增加功能與錄入功能程序操作與代碼大體相同 參考錄入功能。(3)刪除功能用對(duì)文件的操作,判斷所需刪除的數(shù)據(jù)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否相同,利用文件流操作刪除對(duì)應(yīng)數(shù)據(jù)。程序代碼char c;string xingming,line,str,name;doifstre

15、am fin(f1.txt);fstream outfile(f2.txt,ios:trunc|ios:out); /創(chuàng)建文件2cout請(qǐng)輸入您要?jiǎng)h除的學(xué)生的姓名:xingming;while(!fin.eof() /執(zhí)行判斷并刪除數(shù)據(jù)getline(fin,line);istringstream stream(line);name=line.substr(0,line.find( ,0);if(name!=xingming)outfilelineendl;outfile.close();fin.close();fstream f(f1.txt,ios:trunc|ios:out);ifstr

16、eam outf(f2.txt);foutf.rdbuf();outf.close();f.close();cout數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)c;.(4)修改功能參考錄入功能,利用對(duì)文件的操作達(dá)到對(duì)數(shù)據(jù)的修改功能。(5)按總成績(jī)查詢 用if語句調(diào)用getsum()判斷輸入的總分?jǐn)?shù)與數(shù)據(jù)庫(kù)中的總分?jǐn)?shù)是否有相同的,并執(zhí)行輸出文件操作。程序代碼int j=0;float SUM;char c;int flag;if(i=0) /根據(jù)前面的疊加判斷文件中是否有數(shù)據(jù)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break;Do /輸入查找的成績(jī)利用函數(shù)查找符合條件的數(shù)據(jù)flag=0;co

17、ut請(qǐng)輸入您要查詢的學(xué)生的總成績(jī):SUM;for(int j=0;jgetsum()=SUM) /將符合的數(shù)據(jù)輸出flag=1;cout您要查詢的學(xué)生是:(*sj).nameendl;cout該生的信息為:endl;cout 學(xué)號(hào):(*sj).num 數(shù)學(xué)分?jǐn)?shù):(*sj).math*(*sj).baif+(*sj).mathp*(1-(*sj).baif) c+分?jǐn)?shù)(*sj).cpp*(*sj).baif+(*sj).cppp*(1-(*sj).baif) 英語分?jǐn)?shù)(*sj).english*(*sj).baif+(*sj).englishp*(1-(*sj).baif)endl;if(fla

18、g=0) /錯(cuò)誤操作返回繼續(xù)cout對(duì)不起!您要查詢的學(xué)生不存在!endl;coutc;.(6)按姓名查詢程序代碼與按總分功能類似,區(qū)別在于這個(gè)功能中利用指針訪問類中成員,并進(jìn)行判斷。(7)輸出所有數(shù)據(jù)通過打開文件,對(duì)文件中的所有數(shù)據(jù)進(jìn)行輸出。程序代碼cout所有學(xué)生數(shù)據(jù)如下:endl;ifstream file;file.open(f1.txt,ios:in); /以輸入方式打開文件coutfile.rdbuf(); /以輸出文件的所有數(shù)據(jù)file.close();(8)輸出學(xué)生的平均分 利用指針訪問Chengji類中的成員,調(diào)用getaver ()函數(shù)求得平均分并執(zhí)行輸出操作。程序代碼if

19、(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break;for(int m=0;mi;m+)cout(*sm).name 學(xué)號(hào)(*sm).num 總分 (*sm).getsum() 均分(*sm).getaver ()endl;(9)查詢不及格人數(shù) 調(diào)用get函數(shù)求得三科平均成績(jī),并統(tǒng)計(jì)不及格人數(shù),并輸出查詢結(jié)果。程序代碼if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break;int m,n,k,j;m=0;n=0;k=0;for(j=0;jgetshu()getcpp()geteng()60)k+;cout數(shù)學(xué)不及格人數(shù)為:mendl;coutc+不及

20、格人數(shù)為:nendl;cout英語不及格人數(shù)為:kendl;.(10)總成績(jī)排名通過for函數(shù)尋找最大值并進(jìn)行交換,交換得最大值與最大值對(duì)應(yīng)名字。程序代碼if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break;int h,g,n;int j=0;float a100,temp;string k100,temp1;for(g=0;gi;g+)aj=(*sg).getsum(); kj=(*sg).name;j+;for(h=0;hi;h+)for(n=0;nan+1)temp=an; /交換得到最大值an=an+1;an+1=temp;temp1=kn; /交換名字kn=k

21、n+1; kn+1=temp1;for(n=1;n=i;n+)coutknsetw(5)anendl;.(11)程序類的構(gòu)造與繼承基類class student和class kecheng用來封裝學(xué)生的所有信息具體見代碼分析。派生類class chengji繼承了兩個(gè)類的所有數(shù)據(jù),同時(shí)增加了自己的成員,并添加了多個(gè)函數(shù)。Main()用來實(shí)現(xiàn)所有的操作以及對(duì)程序的整體控制;定義文件輸入流對(duì)象in和輸出流對(duì)象out,實(shí)現(xiàn)對(duì)外部文件的操作,使得數(shù)據(jù)得以保存。程序代碼class Student /聲明學(xué)生類public:Student(int n,char nu20) /構(gòu)造函數(shù)num=n;strcp

22、y(name,nu);friend void main(); /聲明友元類protected:int num;/學(xué)號(hào)char name20;/姓名;class Kecheng /聲明課程類public: /構(gòu)造函數(shù)Kecheng(float ma,float cp,float eng)math=ma;cpp=cp;english=eng;friend void main(); /聲明友元protected:float math;/數(shù)學(xué)float english;/英語float cpp;/c+;class Chengji:public Student,public Kecheng /聲明成績(jī)類

23、public:Chengji(int n,string nam,float ma,float cp,float eng,float map,float cpp,float engp,float,bf,float mz,float cz,float ez): /構(gòu)造函數(shù)Student(n,nam),Kecheng(ma,cp,eng),mathp(map),cppp(cpp),englishp(engp),baif(bf),mathz(mz),cppz(cz),englishz(ez)mathp=map;cppp=cpp;englishp=engp;baif=bf;mathz=mz;cppz=c

24、z;englishz=ez;float getsum();/綜合函數(shù)float getshu();/數(shù)學(xué)最后成績(jī)float getcpp();/c最后成績(jī)float geteng();/英語最后成績(jī)friend void main();/聲明友元float getaver();/平均值函數(shù)protected:float mathp ;/數(shù)學(xué)平時(shí)成績(jī)float cppp;/c+平時(shí)成績(jī)float englishp;/英語平時(shí)成績(jī)float baif;/成績(jī)百分比float mathz ;/數(shù)學(xué)總成績(jī)float cppz;/c+總成績(jī)float englishz;/英語總成績(jī);3系統(tǒng)流程圖系統(tǒng)中綜

25、合類與功能,程序的運(yùn)行框架圖,包含主界面顯示、選擇操作、具體的系統(tǒng)主函數(shù)操作,選擇1-11對(duì)應(yīng)相對(duì)的操作,系統(tǒng)自動(dòng)執(zhí)行操作,并返回主函數(shù)。流程圖如下圖所示:圖3-1 程序流程圖第4章 系統(tǒng)調(diào)試運(yùn)行4.1系統(tǒng)運(yùn)行主界面新建文件夾課程設(shè)計(jì),并在文件夾中設(shè)立相應(yīng)的工程,新建程序文件命名為成績(jī),編寫程序代碼,并調(diào)試運(yùn)行。系統(tǒng)調(diào)試運(yùn)行輸出主界面見圖4-1圖4-1系統(tǒng)主界面4.2錄入功能 需要輸入學(xué)生的相關(guān)信息,并保存到f1.txt中,如4-2圖4-2錄入功能界面4.3刪除功能輸入刪除名字,程序自動(dòng)尋找與名字相符數(shù)據(jù)并刪除,如圖4-3圖4-3刪除界面4.4查詢功能分為按總成績(jī)查詢和按姓名查詢兩種方式:如圖

26、4-4圖4-4 查詢界面4.5查詢不及格人數(shù)調(diào)用get函數(shù)求三科平均成績(jī)并統(tǒng)計(jì)不及格人數(shù)并輸出查詢結(jié)果。如圖4-5圖4-5不及格人數(shù)界面課程設(shè)計(jì)體會(huì)這份學(xué)生管理系統(tǒng)作業(yè),使我感觸很多。在老師布置這份作業(yè)的時(shí)候,自己是抱著輕松的心態(tài)去做的,結(jié)果發(fā)現(xiàn)事與愿違,這份作業(yè)太難做了。然后就去網(wǎng)上找資料、找答案、和室友一起研究,最后幸運(yùn)的是完成了這份作業(yè)。這次的作業(yè)對(duì)我一個(gè)初學(xué)c+的學(xué)生來說還是比較難的,如果沒有其他方面的幫助,憑自己是做不出來的,所以我決定以后要更加的努力學(xué)習(xí)。參考文獻(xiàn)1 譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版).清華大學(xué)出版社2 譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì)題解與上機(jī)指導(dǎo).清華大學(xué)出版社

27、3 LippmanBarbara.C+ Primer.人民郵電出版社4 Bjarne Stroustrup.The C+ Programming Language.機(jī)械工業(yè)出版社5C+語言的設(shè)計(jì)和演化,機(jī)械工業(yè)出版社6 #include#include#include#include#includeusing namespace std;class Tstuchar name20;int number;float math,cpp,english,average,sum;public:Tstu();Tstu(char n20,int num,float ma,float cj,float en

28、g); float getsum();float getaver(); friend void main(); ; Tstu:Tstu ( char n20, int num,float ma,float cj,float eng ) strcpy(name,n); number=num; math=ma; cpp=cj; english=eng; float Tstu:getsum() sum=cpp+english+math; return sum; float Tstu:getaver() average=getsum()/3; return average; void main() c

29、out*歡迎來到學(xué)生成績(jī)查詢系統(tǒng)*endl; cout請(qǐng)選擇您需要的操作!endl;cout操作:endl; cout(1)數(shù)據(jù)錄入endl; cout(2)增加學(xué)生endl; cout(3)刪除學(xué)生endl; cout(4)修改數(shù)據(jù)endl; cout查詢:endl; cout(5)按總成績(jī)查詢endl; cout(6)按姓名查詢endl; cout(7)輸出所有學(xué)生的數(shù)據(jù)endl; cout成績(jī)統(tǒng)計(jì):endl; cout(8)每個(gè)學(xué)生的平均成績(jī)endl; cout(9)各科不及格人數(shù)endl; cout排名:endl; cout(10)按總分查詢排名endl; cout(11)退出endl

30、; cout選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!p; if(p=1&p=11) chris1=1; else cout指令錯(cuò)誤!請(qǐng)重新輸入:endl; while(chris1=0); do switch(p) case 1: /數(shù)據(jù)的錄入 char c; /用于在小項(xiàng)中選擇是否繼續(xù)操作 char name20; int number; float math,cpp,english; do cout請(qǐng)輸入姓名:name; cout請(qǐng)輸入學(xué)號(hào):number; cout請(qǐng)輸入數(shù)學(xué)成績(jī):math; cout請(qǐng)輸入C+成績(jī):cpp; cout請(qǐng)輸入英語成績(jī):english; fstrea

31、m outfile,infile; /作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open(f1.txt,ios:out|ios:app); if(!file) coutf1.txt can not open.n; return; outfilename 學(xué)號(hào):number 數(shù)學(xué)成績(jī):math C+成績(jī):cpp 外語成績(jī):englishendl; outfile.close(); infile.open(f1.txt,ios:in); if(!file) /判斷文件是否打開 coutf1.txt can not open.n; return; char ch; while(i

32、nfile.get(ch) coutch; coutendl; infile.close(); j+; si=new Tstu(name, number,math, cpp, english); i+; cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c; chris1=0; do if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!c; else chris1=1; while(chris1=0); while(c=y); /重復(fù)輸入 break; case 2: /增加學(xué)生數(shù)據(jù) char name20; int number; float math,cpp,english; char c

33、; do cout請(qǐng)輸入您要增加的學(xué)生的姓名:name; cout請(qǐng)輸入你要增加的學(xué)生的學(xué)號(hào):number; cout請(qǐng)輸入數(shù)學(xué)成績(jī):math; cout請(qǐng)輸入C+成績(jī):cpp; cout請(qǐng)輸入英語成績(jī):english; fstream outfile,infile; outfile.open(f1.txt,ios:out|ios:app); if(!file) coutf1.txt can not open.n; return; outfilename 學(xué)號(hào):number 數(shù)學(xué)成績(jī):math C+成績(jī):cpp 外語成績(jī):englishendl; outfile.close(); infile

34、.open(f1.txt,ios:in); if(!file) coutf1.txt can not open.n; return; char h; while(infile.get(h) couth; coutendl; infile.close(); j+; si=new Tstu(name,number, math, cpp, english); i+; cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c; if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!c; while(c=y); break; case 3:/刪除學(xué)生信息 char c; string xingming,lin

35、e,str,name; do ifstream fin(f1.txt); fstream outfile(f2.txt,ios:trunc|ios:out); /作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) cout請(qǐng)輸入您要?jiǎng)h除的學(xué)生的姓名:xingming; while(!fin.eof() ) getline(fin,line); istringstream stream(line); name = line.substr(0,line.find( ,0);/找到名字,判斷是否相等 if(name != xingming) outfilelineendl; outfile.close()

36、; fin.close(); fstream f(f1.txt,ios:trunc|ios:out); ifstream outf(f2.txt); foutf.rdbuf(); outf.close(); f.close(); cout數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)c; if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!c; while(c=y); break; case 4:/修改數(shù)據(jù) string sname,line,str,name; int nu;float eng,ma,com;int flag;char c;if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!

37、endl;break;do flag=0; coutname; fstream fin(f1.txt,ios:in); ofstream outfile(f.txt,ios:trunc|ios:out); coutendl; while(!fin.eof() ) /在文件中查找 getline(fin,line); istringstream stream(line); sname = line.substr(0,line.find( ,0);if(name!=sname)outfilelineendl;else flag=1; fin.close(); if(flag=1) coutname

38、numacomeng;coutendl;outfilename 學(xué)號(hào):nu 數(shù)學(xué)成績(jī):ma C+成績(jī):com 外語成績(jī):engendl; outfile.close();fstream outf(f1.txt,ios:trunc|ios:out);fstream inf(f.txt,ios:in);outfinf.rdbuf()endl;outf.close();inf.close(); if(flag=0)cout對(duì)不起,您要修改的學(xué)生不存在!請(qǐng)查證后輸入!endl; coutc; coutendl; if(c!=y&c!=n) cout 指令錯(cuò)誤!請(qǐng)重新輸入!endlc; while(c=

39、y);break; case 5:/按總分查詢 int j=0;float SUM;char c;int flag; if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break; do flag=0; cout請(qǐng)輸入您要查詢的學(xué)生的總成績(jī):SUM; for(int j=0;jgetsum()=SUM) flag=1;cout您要查詢的學(xué)生是:(*sj).nameendl;cout該生的信息為:endl;cout 學(xué)號(hào):(*sj).number 數(shù)學(xué)分?jǐn)?shù):(*sj).math c+分?jǐn)?shù):(*sj).cpp 英語分?jǐn)?shù)(*sj).englishendl; if(flag=0)cou

40、t對(duì)不起!您要查詢的學(xué)生不存在!endl;coutc;if(c!=y&c!=n)cout指令錯(cuò)誤!請(qǐng)重新輸入!c; ; while(c=y); break; case 6:/按姓名查詢 char n20;char c;int j=0;int flag; if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break; do flag=0; cout請(qǐng)輸入要查詢的名字: n; for(int j=0;ji;j+) if(strcmp(n,(*sj).name)=0)flag=1;cout您要查詢的學(xué)生是:(*sj).nameendl;cout該生的信息是:學(xué)號(hào):(*sj).number 數(shù)學(xué)分?jǐn)?shù):(*sj).mathc+分?jǐn)?shù):(*sj).cpp英語分?jǐn)?shù):(*sj).englishendl; if(flag=0)cout對(duì)不起您要查詢的學(xué)生不存在,請(qǐng)查證后再輸入!endl;coutc;if(c!=y&c!=n)cout指令錯(cuò)誤!請(qǐng)重新輸入:c; while(c=y); break; case 7:/輸出所有學(xué)生數(shù)據(jù) cout所有學(xué)生數(shù)據(jù)如下:endl; ifstream file; file.open(f1.txt,ios:in); coutfile.rdbuf(); file.close(); break; case 8:/統(tǒng)計(jì)每個(gè)學(xué)生的平均成績(jī)

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!