學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-高級(jí)程序語(yǔ)言課程設(shè)計(jì)_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-高級(jí)程序語(yǔ)言課程設(shè)計(jì)_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-高級(jí)程序語(yǔ)言課程設(shè)計(jì)_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-高級(jí)程序語(yǔ)言課程設(shè)計(jì)_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-高級(jí)程序語(yǔ)言課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

河南工程學(xué)院高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)成果報(bào)告學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué)生學(xué)號(hào): 學(xué)生姓名: 學(xué) 院: 計(jì)算機(jī)學(xué)院 專(zhuān)業(yè)班級(jí): 軟件工程 1341班 專(zhuān)業(yè)課程: 高級(jí)程序設(shè)計(jì)語(yǔ)言指導(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)試回答問(wèn)題(15分)回答老師針對(duì)課程設(shè)計(jì)提出的問(wèn)題課程設(shè)計(jì)報(bào)告撰寫(xiě)(10分)嚴(yán)格按照規(guī)范要求完成課程設(shè)計(jì)報(bào)告源代碼(5分)按照規(guī)范要求完成課程設(shè)計(jì)源代碼的排版總 評(píng) 成 績(jī)指導(dǎo)教師評(píng)語(yǔ): 日期: 年 月 日目 錄第1章 系統(tǒng)設(shè)計(jì)目的11.1 系統(tǒng)設(shè)計(jì)內(nèi)容11.2 注意及提示11.3 系統(tǒng)設(shè)計(jì)目的1第2章 系統(tǒng)實(shí)現(xiàn)思路22.1 系統(tǒng)需求分析22.2 系統(tǒng)功能模塊22.3 模塊框架圖2第3章 系統(tǒng)詳細(xì)設(shè)計(jì)33.1 頭文件33.2定義類(lèi)33.3 數(shù)據(jù)處理3第4章 系統(tǒng)調(diào)試運(yùn)行134.1 系統(tǒng)調(diào)試運(yùn)行13課程設(shè)計(jì)體會(huì)15參考文獻(xiàn)16第1章 系統(tǒng)設(shè)計(jì)目的1.1 系統(tǒng)設(shè)計(jì)內(nèi)容(1)設(shè)計(jì)四個(gè)類(lèi):學(xué)生類(lèi)(描述學(xué)生基本信息);成績(jī)類(lèi);班級(jí)類(lèi);課程類(lèi)(描述課程信息:課程編號(hào)、科目名稱(chēng),如高等數(shù)學(xué)、大學(xué)英語(yǔ)等);(2)學(xué)生成績(jī)及課程信息用文件保存,程序執(zhí)行時(shí)從文件讀入;(3)能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī);(5)求學(xué)生的總分及平均分,并能根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序,能查詢(xún)學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績(jī)單。1.2 注意及提示(1)設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱(chēng)、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比 ; (2)總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占百分比+期末成績(jī)*(1-平時(shí)成績(jī)所占百分比); (3)顯示學(xué)生的姓名、所選課程名稱(chēng)以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信息。分單人顯示和以班輸出(班成績(jī)單格式輸出到文件); (4)至少應(yīng)包含一個(gè)班、30人、三門(mén)課。 1.3 系統(tǒng)設(shè)計(jì)目的能按學(xué)期、班級(jí)完成對(duì)學(xué)生 成績(jī)的錄入、修改;按班級(jí)統(tǒng)計(jì)學(xué)生成績(jī);求學(xué)生總分、平均分;根據(jù)學(xué)生平均成績(jī)排序;按班級(jí)查詢(xún)成績(jī),以及不及格科目及學(xué)生名單。第2章 系統(tǒng)實(shí)現(xiàn)思路2.1 系統(tǒng)需求分析通過(guò)對(duì)系統(tǒng)要求的分析,可以看出需要由以下幾個(gè)模塊構(gòu)成,才能實(shí)現(xiàn)對(duì)程序所要實(shí)現(xiàn)的功能利用:(1)對(duì)學(xué)生各科成績(jī)錄入、增加、刪除、修改; (2)計(jì)算學(xué)生總分及平均分; (3)對(duì)學(xué)生成績(jī)按總成績(jī)、姓名,進(jìn)行查詢(xún),輸出所有數(shù)據(jù); (4)進(jìn)行成績(jī)統(tǒng)計(jì); (5)按總分查詢(xún)排名。2.2 系統(tǒng)功能模塊系統(tǒng)由成績(jī)錄入、增加、刪除、修改、數(shù)據(jù)查詢(xún)、排序顯示構(gòu)成。以實(shí)現(xiàn)對(duì)數(shù)據(jù)表中的信息瀏覽,可以利用其對(duì)學(xué)生的信息進(jìn)行查詢(xún)。2.3 模塊框架圖框架圖可以使程序設(shè)計(jì)更加清楚、明白??蚣苋鐖D2-1:學(xué)生成績(jī)管理系統(tǒng)操作查詢(xún)成績(jī)統(tǒng)計(jì)按總成績(jī)排名錄入增加刪除修改總成績(jī)查詢(xún)姓名每個(gè)學(xué)生的平均成績(jī)各科不及格的科目科人數(shù)輸出所有學(xué)生的成績(jī)圖2-1 系統(tǒng)模塊框架圖第3章 系統(tǒng)詳細(xì)設(shè)計(jì)3.1 頭文件因?yàn)橐玫轿募拇蜷_(kāi)和關(guān)閉、istringstream類(lèi),所以頭文件聲明中要有:#include#include3.2定義類(lèi)1.聲明一個(gè)類(lèi)class Tstu,進(jìn)行數(shù)據(jù)輸入函數(shù)的定義,通過(guò)定義char name20、int number、float math, cpp, English, average, sum等變量以及公用函數(shù),來(lái)實(shí)現(xiàn)函數(shù)的定義:class Tstu char name20; int number; float math, cpp, english, average, sum; public: Tstu(); Tstu ( char n20, int num, float ma, float cj, float eng ) ;float getsum();/得到總分的函數(shù) float getaver(); /得到平均分的函數(shù) friend void main(); /將主函數(shù)定義為友元函數(shù),方便訪(fǎng)問(wèn)類(lèi)中成員 ;.通過(guò)作用域運(yùn)算符“:”完成對(duì)類(lèi)中成員函數(shù)的引用:float Tstu:getsum() 得到總分的函數(shù);float Tstu:getaver() 得到平均分的函數(shù)。3.3 數(shù)據(jù)處理數(shù)據(jù)處理包括數(shù)據(jù)錄入、增加學(xué)生、刪除學(xué)生、修改數(shù)據(jù)、按總成績(jī)查詢(xún)、按姓名查詢(xún)、輸出所有學(xué)生數(shù)據(jù)、每個(gè)學(xué)生平均成績(jī)、各科不及格人數(shù)、按總分查詢(xún)這幾個(gè)模塊。各模塊之間程序大致相似,以下只詳細(xì)寫(xiě)出其中一個(gè)模塊。(1)數(shù)據(jù)錄入定義 char c(用于在小項(xiàng)中選擇是否繼續(xù)操作)、char name20、int number、float math, cpp, english。在該過(guò)程需用到ifelse、dowhile語(yǔ)句等: 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)輸入英語(yǔ)成績(jī):english; 文本文檔在文件夾中用于顯示所錄入數(shù)據(jù): outfile.open(f1.txt,ios:out|ios:app); if(!file) coutf1.txt can not open.n; return; /if語(yǔ)句的使用 outfilename 學(xué)號(hào):number 數(shù)學(xué)成績(jī):math C+成績(jī):cpp 外語(yǔ)成績(jī):englishendl; outfile.close(); infile.open(f1.txt,ios:in); if(!file) /判斷文件是否打開(kāi) coutf1.txt can not open.n; return; char ch; while(infile.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); (2)增加學(xué)生 根據(jù)要求輸出輸入相關(guān)內(nèi)容,如下: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)輸入英語(yǔ)成績(jī):english; (3)刪除學(xué)生ifstream fin(f1.txt); fstream outfile(f2.txt,ios:trunc|ios:out); 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(); 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; (4)修改數(shù)據(jù)系統(tǒng)中沒(méi)有輸入數(shù)據(jù),需要先輸入要修改的數(shù)據(jù)。輸入后,while(!fin.eof() )表示在文件中查找,然后進(jìn)行判斷系統(tǒng)中是否有該數(shù)據(jù)的記錄,如下: if(flag=1) coutnamenumacomeng; coutendl;outfilename 學(xué)號(hào):nu 數(shù)學(xué)成績(jī):ma C+成績(jī):com 外語(yǔ)成績(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; (5)按總成績(jī)查詢(xún) if(i=0)cout系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break; doflag=0; cout請(qǐng)輸入您要查詢(xún)的學(xué)生的總成績(jī):SUM; for(int j=0;jgetsum()=SUM) flag=1; cout您要查詢(xún)的學(xué)生是:(*sj).nameendl; cout該生的信息為:endl;cout 學(xué)號(hào):(*sj).number 數(shù)學(xué)分?jǐn)?shù):(*sj).math c+分?jǐn)?shù):(*sj).cpp 英語(yǔ)分?jǐn)?shù)(*sj).englishendl; if(flag=0)cout對(duì)不起!您要查詢(xún)的學(xué)生不存在!endl;coutc; if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!c; ; while(c=y); break;(6) 按姓名查詢(xún)輸入要查詢(xún)的學(xué)生的名字,如果系統(tǒng)中沒(méi)有數(shù)據(jù),就要用到數(shù)據(jù)的增加,見(jiàn)上文。姓名查詢(xún)?nèi)缦拢篶har n20;char c;int j=0;int flag; if(i=0) cout系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break; do flag=0; cout請(qǐng)輸入要查詢(xún)的名字: n; for(int j=0;ji;j+) if(strcmp(n,(*sj).name)=0) flag=1;cout您要查詢(xún)的學(xué)生是:(*sj).nameendl;cout該生的信息是:學(xué)號(hào):(*sj).number 數(shù) :(*sj).mathc+分?jǐn)?shù):(*sj).cpp英語(yǔ)分?jǐn)?shù):(*sj).englishendl; if(flag=0)cout對(duì)不起您要查詢(xún)的學(xué)生不存在,請(qǐng)查證后再輸入!endl;coutc;if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入:c;while(c=y);(7)輸出所有學(xué)生數(shù)據(jù) cout所有學(xué)生數(shù)據(jù)如下:endl; ifstream file; file.open(f1.txt,ios:in); coutfile.rdbuf(); file.close(); break;(8)統(tǒng)計(jì)每個(gè)學(xué)生的平均成績(jī)if(i=0)cout系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break;for(int m=0;mi;m+)cout(*sm).name 學(xué)號(hào):(*sm).number 總分:(*sm).getsum() 均分:(*sm).getaver()endl; (9)統(tǒng)計(jì)各學(xué)科不及格人數(shù)if(i=0)cout系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break;int m, n, k, j; m=0; n=0; k=0;for(j=0;jmathcppenglish60)k+;cout數(shù)學(xué)不及格人數(shù)為:mendl; coutc+不及格人數(shù)為:nendl;cout英語(yǔ)不及格人數(shù)為:kendl;(10)按總分查詢(xún)排名 通過(guò)使用者的需求進(jìn)行選擇: if(w=y) cout*歡迎來(lái)到學(xué)生成績(jī)查詢(xún)系統(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查詢(xún):endl; cout(5)按總成績(jī)查詢(xún)endl; cout(6)按姓名查詢(xún)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)按總分查詢(xún)排名endl; cout(11)退出endl; cout選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!p; 第4章 系統(tǒng)調(diào)試運(yùn)行4.1 系統(tǒng)調(diào)試運(yùn)行本系統(tǒng)在VC6下編譯調(diào)試通過(guò),可順利運(yùn)行,各項(xiàng)功能達(dá)到設(shè)計(jì)要求。經(jīng)過(guò)編譯,;連接:;運(yùn)行,得到一個(gè)對(duì)話(huà)框,如圖4-1:圖4-1 主界面根據(jù)需要輸入。如:當(dāng)輸入1時(shí),代表指定選項(xiàng)“(1)數(shù)據(jù)錄入”,運(yùn)行結(jié)果如圖4-2:圖4-2 數(shù)據(jù)錄入輸入2,則為“(2)增加學(xué)生”,如圖4-3:圖4-3增加學(xué)生輸入3,則為“(3)刪除學(xué)生”,如圖4-4:圖4-4刪除學(xué)生課程設(shè)計(jì)體會(huì)在這次C+課程設(shè)計(jì)中,通過(guò)編寫(xiě)一個(gè)簡(jiǎn)單的應(yīng)用程序,考察和鍛煉了對(duì)程序模塊的分析、設(shè)計(jì),函數(shù)調(diào)用等能力。有助于對(duì)本專(zhuān)業(yè)的進(jìn)一步理解。做到了理論和實(shí)踐相結(jié)合,提高了動(dòng)手操作能力。在程序設(shè)計(jì)過(guò)程中,遇到了各種各樣的難題,通過(guò)預(yù)覽課本以及一些參考書(shū),解決了自己力所能及的部分問(wèn)題,從而使印象加深、增強(qiáng)了信心,對(duì)該專(zhuān)業(yè)興趣更加濃厚。不能自行解決的,再向老師,同學(xué)們求助,雖然最后解決了問(wèn)題,但是因?yàn)榻?jīng)驗(yàn)不足,所以方法還不是很完美,會(huì)在以后的學(xué)習(xí)中努力解決。謝謝老師和同學(xué)們的幫助?!斑z憾也是一種美”。我會(huì)帶著這份“遺憾”去敲開(kāi)程序設(shè)計(jì)一層層的大門(mén)。參考文獻(xiàn)1譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版). 清華大學(xué)出版社2譚浩強(qiáng)C+程序設(shè)計(jì)題解與上機(jī)指導(dǎo)清華大學(xué)出版社3侯俊杰.深入淺出MFC(第二版).南方出版社4李濤等.Visual C+ +SQL Server數(shù)據(jù)庫(kù)開(kāi)發(fā)與實(shí)例. 清華大學(xué)出版社5張榮梅.Visual C+實(shí)用教程(第六版). 中國(guó)鐵道出版社6John Lakos.Large-Scale C+ Software Design. 中國(guó)電力出版社7Bruce Eckel.Thinking in C+. 基峰出版社 8王育堅(jiān).Visual C+面向?qū)ο缶幊探坛蹋ǖ诙妫? 清華大學(xué)出版社9孔 鵬.Visual c+ 6.0完全自學(xué)手冊(cè).北京機(jī)械工業(yè)出版社#include#includeusing namespace std; class Tstu /通過(guò)定義一個(gè)類(lèi)來(lái)定義數(shù)據(jù)錄入的函數(shù) char name20; int number; float math,cpp,english,average,sum; public: Tstu() ; Tstu ( char n20, int num,float ma,float cj,float eng ) ; float getsum();/得到總分的函數(shù) float getaver(); /得到平均分的函數(shù) friend void main(); /將主函數(shù)定義為友元函數(shù),方便訪(fǎng)問(wèn)類(lèi)中的成員 ; Tstu:Tstu ( char n20, int num,float ma,float cj,float eng ) strcpy(name,n); /得到姓名 number=num; /得到學(xué)號(hào) math=ma; /得到數(shù)學(xué)成績(jī) cpp=cj; /得到c+成績(jī) english=eng; /得到英語(yǔ)成績(jī) float Tstu:getsum() /得到總分的函數(shù) sum=cpp+english+math; return sum; float Tstu:getaver() /得到平均分的函數(shù) average=getsum()/3; return average; void main() cout*歡迎來(lái)到學(xué)生成績(jī)查詢(xún)系統(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查詢(xún):endl; cout(5)按總成績(jī)查詢(xún)endl; cout(6)按姓名查詢(xún)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)按總分查詢(xún)排名endl; cout(11)退出endl; 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)輸入英語(yǔ)成績(jī):english; fstream 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 外語(yǔ)成績(jī):englishendl; outfile.close(); infile.open(f1.txt,ios:in); if(!file) /判斷文件是否打開(kāi) coutf1.txt can not open.n; return; char ch; while(infile.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; 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)輸入英語(yǔ)成績(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 外語(yǔ)成績(jī):englishendl; outfile.close(); infile.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,line,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(); 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)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!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) coutnamenumacomeng;coutendl;outfilename 學(xué)號(hào):nu 數(shù)學(xué)成績(jī):ma C+成績(jī):com 外語(yǔ)成績(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=y);break; case 5:/按總分查詢(xún) int j=0;float SUM;char c;int flag; if(i=0)cout系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break; do flag=0; cout請(qǐng)輸入您要查詢(xún)的學(xué)生的總成績(jī):SUM; for(int j=0;jgetsum()=SUM) flag=1;cout您要查詢(xún)的學(xué)生是:(*sj).nameendl;cout該生的信息為:endl;cout 學(xué)號(hào):(*sj).number 數(shù)學(xué)分?jǐn)?shù):(*sj).math c+分?jǐn)?shù):(*sj).cpp 英語(yǔ)分?jǐn)?shù)(*sj).englishendl; if(flag=0)cout對(duì)不起!您要查詢(xún)的學(xué)生不存在!endl;coutc;if(c!=y&c!=n)cout指令錯(cuò)誤!請(qǐng)重新輸入!c; ; while(c=y); break; case 6:/按姓名查詢(xún) char n20;char c;int j=0;int flag; if(i=0)cout系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break; do flag=0; cout請(qǐng)輸入要查詢(xún)的名字: n; for(int j=0

溫馨提示

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

評(píng)論

0/150

提交評(píng)論