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

下載本文檔

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

文檔簡介

高級(jí)程序設(shè)計(jì)語言課程設(shè)計(jì)成果報(bào)告學(xué)生成績管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué)生學(xué)號(hào): 學(xué)生姓名: 學(xué) 院: 計(jì)算機(jī)學(xué)院 專業(yè)班級(jí): 軟件工程1341 專業(yè)課程: 高級(jí)程序設(shè)計(jì)語言指導(dǎo)教師: 2014 年 6 月 27 日題 目學(xué)生成績管理系統(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ì)源代碼的排版總 評(píng) 成 績指導(dǎo)教師評(píng)語: 日期: 年 月 日目 錄第1章 系統(tǒng)設(shè)計(jì)目的11.1系統(tǒng)設(shè)計(jì)的目的11.2系統(tǒng)設(shè)計(jì)背景11.3系統(tǒng)設(shè)計(jì)內(nèi)容11.4系統(tǒng)設(shè)計(jì)的目的1第2章 系統(tǒng)實(shí)現(xiàn)思路22.1 對(duì)系統(tǒng)需求的分析22.2系統(tǒng)的性能要求22.3 系統(tǒng)的功能分析22.4 系統(tǒng)功能模塊32.5模塊框架圖3第3章 系統(tǒng)詳細(xì)設(shè)計(jì)43.1 通過定義類來定義數(shù)據(jù)錄入的函數(shù)43.2 數(shù)據(jù)的錄入53.3 增加,刪除,修改學(xué)生數(shù)據(jù)63.4查詢學(xué)生成績73.5 輸出所有學(xué)生數(shù)據(jù)73.6 統(tǒng)計(jì)每個(gè)學(xué)生的平均成績73.7 統(tǒng)計(jì)各個(gè)學(xué)科不及格人數(shù)83.8 按總成績排名10第4章 系統(tǒng)調(diào)試運(yùn)行134.1 調(diào)試134.2 程序運(yùn)行截圖134.3各操作頁面134.4測試結(jié)果分析15課程設(shè)計(jì)體會(huì)16參考文獻(xiàn)17第1章 系統(tǒng)設(shè)計(jì)目的1.1系統(tǒng)設(shè)計(jì)背景C+語言是一門實(shí)踐性很強(qiáng)的課程,該課程對(duì)提高我們的邏輯分析能力、抽象思維和程序設(shè)計(jì)能力,培養(yǎng)優(yōu)良的程序設(shè)計(jì)的風(fēng)格有著重要的意義。編譯系統(tǒng)可以鍛煉我們獨(dú)立完成源程序的編輯、編譯、調(diào)試和運(yùn)行,能夠加深我們對(duì)高級(jí)程序設(shè)計(jì)語言這門課的認(rèn)識(shí)與理解。1.2系統(tǒng)設(shè)計(jì)要求要求設(shè)計(jì)一個(gè)系統(tǒng),使其能夠?qū)崿F(xiàn)學(xué)生成績查詢,修改刪除學(xué)生數(shù)據(jù)的作用。并使所設(shè)計(jì)的系統(tǒng)能夠?qū)崿F(xiàn)題目所要求的所有功能,鍛煉自己的能力,提高自己的c+水平。設(shè)計(jì)四個(gè)類;學(xué)生類(描述學(xué)生基本信息);成績類;班級(jí)類;課程類(描述課程信息:課程編號(hào),科目名稱(如高等數(shù)學(xué),大學(xué)英語等);學(xué)生成績及課程信息用文件保存,每個(gè)類一個(gè)文件,程序執(zhí)行時(shí)從文件讀入; 能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績的錄入,修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績;求學(xué)生的總分及平均分;并能根據(jù)學(xué)生的平均成績進(jìn)行排序,能查詢學(xué)生成績,不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績單。 1.3系統(tǒng)設(shè)計(jì)內(nèi)容設(shè)置學(xué)生的成績信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱、平時(shí)成績、期末成績、平時(shí)成績所占百分比;計(jì)算學(xué)生總評(píng)成績:總評(píng)成績=平時(shí)成績*平時(shí)成績所占百分比+期末成績*(1-平時(shí)成績所占百分比); 顯示學(xué)生的姓名、所選課程名稱以及平時(shí)成績、期末成績和總評(píng)成績信息。分單人顯示和以班輸出(班成績單格式輸出到文件)(注意,至少一個(gè)班,30人三門課)。 1.4課程設(shè)計(jì)的目的在visual c+的基礎(chǔ)上,能夠熟練掌握關(guān)于類的知識(shí)和友元函數(shù)的應(yīng)用,并且獨(dú)立編寫成績查詢系統(tǒng)成功編譯定義類和使用類的程序,調(diào)試通過,熟練掌握visual c+的應(yīng)用,加深對(duì)高級(jí)程序設(shè)計(jì)語言的理解,能夠自己獨(dú)立的分析程序的邏輯結(jié)構(gòu),畫出程序結(jié)構(gòu)流程圖,編譯的系統(tǒng)能夠調(diào)試成功并運(yùn)行。第2章 系統(tǒng)實(shí)現(xiàn)思路2.1 對(duì)系統(tǒng)需求的分析根據(jù)c+課程所學(xué)的概念、理論和方法,按照C+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序來實(shí)現(xiàn)設(shè)計(jì)課程內(nèi)容中的全部功能;設(shè)計(jì)主控模塊程序。對(duì)給出的程序源代碼要給出各部分的詳細(xì)注釋。自己根據(jù)能力及需要添加相應(yīng)功能模塊,增強(qiáng)模擬系統(tǒng)功能。包括系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計(jì)、程序流程圖或結(jié)構(gòu)框圖、邏輯結(jié)構(gòu)設(shè)計(jì)。需求分析:能對(duì)學(xué)生各科成績進(jìn)行錄入;能對(duì)學(xué)生的成績進(jìn)行增加;能對(duì)學(xué)生的成績進(jìn)行刪除;能對(duì)學(xué)生的成績進(jìn)行修改;能對(duì)學(xué)生的成績按總成績,姓名,進(jìn)行查詢;能輸出學(xué)生的所有數(shù)據(jù);能進(jìn)行成績統(tǒng)計(jì);能進(jìn)行總分查詢排名。2.2系統(tǒng)的性能要求:使系統(tǒng)設(shè)計(jì)按照要求,并能實(shí)現(xiàn)所有的功能,包括查詢、修改學(xué)生數(shù)據(jù)等,易于操作和維護(hù),使操作頁面簡單易懂。系統(tǒng)安全、可靠;功能齊全;操作方便、界面友好;易于維護(hù)和擴(kuò)充。 2.3系統(tǒng)的功能分析:資料維護(hù):系統(tǒng)維護(hù)包括對(duì)學(xué)生信息的錄入操作及數(shù)據(jù)表中的學(xué)生信息進(jìn)行瀏覽與數(shù)據(jù)保護(hù);系統(tǒng)功能:可以對(duì)數(shù)據(jù)表中的信息進(jìn)行瀏覽;系統(tǒng)查詢:可以對(duì)學(xué)生的信息進(jìn)行查詢。2.4系統(tǒng)功能模塊學(xué)生成績查詢系統(tǒng)有:成績錄入、增加、刪除、修改學(xué)生數(shù)據(jù),數(shù)據(jù)查詢,排序顯示構(gòu)成。2.5模塊框架圖學(xué)生成績查詢系統(tǒng)包括有三個(gè)操作、查詢、排名三個(gè)大部分,包括錄入、增加、刪除、修改學(xué)生數(shù)據(jù),查詢學(xué)生數(shù)據(jù)和成績統(tǒng)計(jì)等九個(gè)模塊,如圖2-1學(xué)生成績管理C+面向?qū)ο蟪绦蛟O(shè)計(jì)題解與上機(jī)指導(dǎo)系統(tǒng)操作 查詢成績統(tǒng)計(jì)按總成績排名錄入增加刪除修改總成績查詢姓名每個(gè)學(xué)生的平均成績各科不及格的人數(shù)輸出所有學(xué)生的成績圖2-1系統(tǒng)模塊框架圖第3章 系統(tǒng)詳細(xì)設(shè)計(jì)3.1 通過定義類來定義數(shù)據(jù)錄入的函數(shù)定義類來進(jìn)行學(xué)生數(shù)據(jù)的錄入,在類內(nèi)聲明所需要的函數(shù),類中定義字符變量姓名30個(gè),整型數(shù)字,浮點(diǎn)型變量數(shù)學(xué)成績,c+成績,英語成績,平均分和總分,在類外定義計(jì)算得到平均分與總分的函數(shù)。思路:首先設(shè)計(jì)四個(gè)類,分別是學(xué)生類,成績類,班級(jí)類,課程類。學(xué)生類應(yīng)該包括學(xué)生的基本信息,包括學(xué)號(hào),姓名等。成績類應(yīng)包括學(xué)生相對(duì)應(yīng)的成績,包括數(shù)學(xué),英語,c+等。班級(jí)類是說明每個(gè)學(xué)生所在的班級(jí)。課程類包括描述課程信息,課程編號(hào)、課程名稱等。(1)學(xué)生類:描述學(xué)生基本信息; classTstucharname30;intnumber;floatmath,cpp, english, average, sum;public:Tstu();(2)成績類:設(shè)計(jì)的課程分別對(duì)應(yīng)的成績,如數(shù)學(xué)、英語、C+;Tstu:Tstu(charn30,intnum,floatma,floatcj,floateng)strcpy(name,n);number=num; math=ma;cpp=cj;english=eng;3.2數(shù)據(jù)的錄入運(yùn)用switch語句進(jìn)行數(shù)據(jù)的錄入,并用do while語句進(jìn)行數(shù)據(jù)的輸入,采用文件流來寫入和讀取信息,主要涉及到fstream類,在系統(tǒng)運(yùn)行的過程中,會(huì)利用該類將學(xué)生的基本身份信息和基本課程信息全部存到自定義的一個(gè)文件內(nèi),當(dāng)需要使用這些數(shù)據(jù)時(shí),例如查詢,修改,輸出等,再將需要的讀取出來進(jìn)行相關(guān)的操作,用if語句判斷文件是否打開,用輸入方式打開磁盤文件。case: /數(shù)據(jù)的錄入 char c; /用于在小項(xiàng)中選擇是否繼續(xù)操作 char name 30; int number; float math, cpp, english; docout請(qǐng)輸入姓名:name; cout請(qǐng)輸入學(xué)號(hào):number; cout請(qǐng)輸入數(shù)學(xué)成績:math; cout請(qǐng)輸入C+成績:cpp; cout請(qǐng)輸入英語成績: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é)成績:math C+成績:cpp 外語成 績:englishendl; 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 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 ;3.3 增加,刪除,修改學(xué)生數(shù)據(jù)運(yùn)用switch語句,do while語句來進(jìn)行對(duì)學(xué)生數(shù)據(jù)的改動(dòng)的操作。增加學(xué)生數(shù)據(jù)時(shí),輸入新增加學(xué)生的成績,姓名,成績等數(shù)據(jù)。刪除學(xué)生數(shù)據(jù)時(shí),輸入所要?jiǎng)h除學(xué)生的姓名,在文件中找到學(xué)生的相關(guān)信息后,進(jìn)行刪除,并用if語句判斷輸入指令的正確性。修改學(xué)生數(shù)據(jù)時(shí),輸入需要修改的學(xué)生姓名,在文件中查找相關(guān)的信息,輸入修改后的學(xué)生姓名,新學(xué)號(hào),各科的成績,輸入時(shí)應(yīng)考慮到學(xué)生是否存在的問題,并用if語句判斷輸入的學(xué)生姓名是否存在。3.4查詢學(xué)生成績按總分查詢:調(diào)用求總分的函數(shù),運(yùn)用do while語句,if語句,for語句,輸入所查學(xué)生的總成績,輸出學(xué)生的相關(guān)數(shù)據(jù),在查詢時(shí),應(yīng)該注意查詢學(xué)生是否存在的情況,并用if語句判斷查詢的學(xué)生是否存在。按姓名查詢:輸入所查詢的學(xué)生姓名,用for語句進(jìn)行循環(huán),并用if語句判斷查詢的學(xué)生是否存在,輸出所查詢的學(xué)生數(shù)據(jù)。3.5統(tǒng)計(jì)每個(gè)學(xué)生的平均成績統(tǒng)計(jì)時(shí)應(yīng)考慮到學(xué)生數(shù)據(jù)不存在的情況,并用if語句判斷和for語句進(jìn)行循環(huán),然后再輸出數(shù)據(jù)。3.6輸出所有學(xué)生數(shù)據(jù)按輸入方式打開磁盤文件,并輸出所有學(xué)生數(shù)據(jù)。3.7統(tǒng)計(jì)各個(gè)學(xué)科不及格人數(shù) int j=0; float sum, char c; int flag; if (i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl; break;doflag=0;cout請(qǐng)輸入您要查詢的學(xué)生的總成績: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).mathc+分?jǐn)?shù):(*sj).cpp 英語分?jǐn)?shù)(*sj).englishendl;if(flag=0)cout對(duì)不起!您要查詢的學(xué)生不存在!endl;coutc;if(c! =y&c! =n)cout指令錯(cuò)誤!請(qǐng)重新輸入!c; ; while(c=y);break; 按姓名查詢: char n 20; 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; 在統(tǒng)計(jì)中考慮學(xué)生不存在的情況,運(yùn)用if語句進(jìn)行判斷和for語句,在所有學(xué)生信息中查詢并輸出各科不及格的人數(shù)。3.8按總成績排名調(diào)用sum函數(shù),利用for語句進(jìn)行循環(huán),然后采用冒泡法比較大小,把學(xué)生的數(shù)據(jù)重新排列。最后再依次輸出。 case:/按總分排名 if (i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl; break;int h, g, n; int j=0;float a100,temp;for (g=0;gi;g+)aj =(*sg).getsum();j+; for (h=0; hi; h+)for (n=0; nan+1)temp=an;an=an+1;an+1=temp;for (n=1; n=i;n+)coutanendl;break; coutw; coutendl; if (w!=y&w!=n) cout 指令錯(cuò)誤!請(qǐng)重新輸入!endl; else flag=1; while (flag=0); if (w=y) cout*歡迎來到學(xué)生成績查詢系統(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)按總成績查詢endl; cout(6)按姓名查詢endl; cout(7)輸出所有學(xué)生的數(shù)據(jù)endl; cout成績統(tǒng)計(jì):endl; cout(8)每個(gè)學(xué)生的平均成績endl; cout(9)各科不及格人數(shù)endl; cout排名:endl; cout(10)按總分查詢排名endl; cout(11)退出endl; cout選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!p; while (w=y); 第4章 系統(tǒng)調(diào)試運(yùn)行4.1 調(diào)試對(duì)程序進(jìn)行反復(fù)的修改完善,不斷調(diào)試,等程序無誤時(shí)運(yùn)行程序。針對(duì)每個(gè)功能設(shè)計(jì)測試方案,包括輸入數(shù)據(jù),輸出數(shù)據(jù),針對(duì)每個(gè)功能設(shè)計(jì)一組(最少一個(gè))測試用例,用來驗(yàn)證程序的正確性。4.2 程序運(yùn)行截圖如圖4-1圖4-1主菜單頁面圖4.3各操作頁面數(shù)據(jù)錄入,如圖4-2 圖4-2數(shù)據(jù)錄入圖查詢學(xué)生數(shù)據(jù),如圖4-3圖4-3查詢數(shù)據(jù)圖成績排名,如圖4-4 圖4-4成績排名圖4.4測試結(jié)果分析每一個(gè)case都能執(zhí)行,比較具體的實(shí)現(xiàn)了題目的要求,但是有很多的地方都不夠完善,例如:在總成績排序中,只能輸出總成績,不能單獨(dú)的輸出學(xué)生的相應(yīng)的信息;每次進(jìn)行別的操作之前都要在進(jìn)行一次數(shù)據(jù)的錄入,不能直接對(duì)原有的文件進(jìn)行讀取。課程設(shè)計(jì)體會(huì)通過完成本次面向?qū)ο蟪绦蛟O(shè)計(jì)的任務(wù),使我熟練和掌握了這學(xué)期所學(xué)的有關(guān)visual c+中的一些知識(shí)點(diǎn)。這門課程,具有極強(qiáng)的實(shí)踐性,通過編寫程序,使我加強(qiáng)了靈活應(yīng)用理論知識(shí)的能力及面向?qū)ο蟪绦蛟O(shè)計(jì)技能。只有通過檢驗(yàn)的真理,在自己的心里,才會(huì)認(rèn)可它的真實(shí)性。面向?qū)ο蟪绦蛟O(shè)計(jì)的完成,使我懂得了真理的重要性,理論和實(shí)際的相結(jié)合,才能真正把握所學(xué)和所掌握的知識(shí)。在這次的編寫程序中,我認(rèn)識(shí)到自身的不足,書本上的知識(shí)僅僅是一個(gè)基礎(chǔ),在編寫程序中發(fā)現(xiàn)自己的基礎(chǔ)知識(shí)掌握不牢,很多知識(shí)只是一個(gè)模糊的概念,在經(jīng)過這次的實(shí)訓(xùn)后,我對(duì)書本上的知識(shí)有了更深的了解,我相信經(jīng)過我的努力,我一定能好這門課。參考文獻(xiàn)1 譚浩強(qiáng).C+面向程序設(shè)計(jì).清華大學(xué)出版社2 譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì)題解與上機(jī)指導(dǎo).清華大學(xué)出版社3 熊錫義.C語言程序設(shè)計(jì)案例教程.大連理工大學(xué)出版社4 鄭振杰.C+程序設(shè)計(jì).人民郵電出版社5 黃逵中.C語言實(shí)例教程.中國電力出版社6 呂鳳翥.C+語言程序設(shè)計(jì)(第2版).電子工業(yè)出版社7 王士元.C高級(jí)實(shí)用程序設(shè)計(jì).清華大學(xué)出版社源程序#include #include #include#include#includeusing namespace std; class Tstu /通過定義一個(gè)類來定義數(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ù),方便訪問類中的成員 ; Tstu:Tstu ( char n20, int num,float ma,float cj,float eng ) strcpy(name,n); /得到姓名 number=num; /得到學(xué)號(hào) math=ma; /得到數(shù)學(xué)成績 cpp=cj; /得到c+成績 english=eng; /得到英語成績 float Tstu:getsum() /得到總分的函數(shù) sum=cpp+english+math; return sum; float Tstu:getaver() /得到平均分的函數(shù) average=getsum()/3; return average; void main() cout*歡迎來到學(xué)生成績查詢系統(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)按總成績查詢endl; cout(6)按姓名查詢endl; cout(7)輸出所有學(xué)生的數(shù)據(jù)endl; cout成績統(tǒng)計(jì):endl; cout(8)每個(gè)學(xué)生的平均成績endl; cout(9)各科不及格人數(shù)endl; cout排名:endl; cout(10)按總分查詢排名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é)成績:math; cout請(qǐng)輸入C+成績:cpp; cout請(qǐng)輸入英語成績: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é)成績:math C+成績:cpp 外語成績:englishendl; 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 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é)成績:math; cout請(qǐng)輸入C+成績:cpp; cout請(qǐng)輸入英語成績: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é)成績:math C+成績:cpp 外語成績: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)中沒有輸入數(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é)成績:ma C+成績:com 外語成績: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:/按總分查詢 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é)生的總成績: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)cout對(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ù)!end

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論