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

下載本文檔

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

文檔簡(jiǎn)介

高級(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é)院 專業(yè)班級(jí): 軟件工程1341 專業(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 設(shè)計(jì)目的11.2 設(shè)計(jì)要求11.3 設(shè)計(jì)內(nèi)容1第2章 系統(tǒng)實(shí)現(xiàn)思路32.1需求分析32.2系統(tǒng)性能要求32.3系統(tǒng)功能分析3第3章 系統(tǒng)詳細(xì)設(shè)計(jì)43.1系統(tǒng)功能模塊設(shè)計(jì)及分析43.2界面設(shè)計(jì)83.3 功能設(shè)計(jì)與實(shí)現(xiàn)8第4章 系統(tǒng)調(diào)試運(yùn)行94.1系統(tǒng)測(cè)試及調(diào)試分析94.2測(cè)試結(jié)果94.3系統(tǒng)維護(hù)18課程設(shè)計(jì)體會(huì)19參考文獻(xiàn)20第1章 系統(tǒng)設(shè)計(jì)目的1.1 設(shè)計(jì)目的根據(jù)新系統(tǒng)的邏輯模型建立模型,詳細(xì)地確定新系統(tǒng)的結(jié)構(gòu)和具體實(shí)施方案的過(guò)程。掌握綜合實(shí)驗(yàn)操作中記錄的創(chuàng)建、查找、添加、刪除等常用的算法設(shè)計(jì)。根據(jù)開(kāi)發(fā)要求,學(xué)生成績(jī)管理系統(tǒng)主要應(yīng)用于教育系統(tǒng),完成對(duì)日常的教學(xué)、教務(wù)、教師以及學(xué)生的計(jì)算機(jī)化管理。開(kāi)發(fā)學(xué)生成績(jī)管理系統(tǒng)可使學(xué)院的教職工減輕工作壓力,比較系統(tǒng)的教務(wù)、教學(xué)上的各項(xiàng)服務(wù)和信息進(jìn)行管理,同時(shí),可以減少勞動(dòng)力的使用,加快查詢速度、加強(qiáng)管理,以及國(guó)家各部門(mén)關(guān)于信息化的步伐,使各項(xiàng)管理更加規(guī)范化1.掌握運(yùn)用數(shù)據(jù)庫(kù)遠(yuǎn)離進(jìn)行系統(tǒng)分析和設(shè)計(jì)方法。2.掌握關(guān)系庫(kù)的設(shè)計(jì)方法。4.加強(qiáng)c+的編程能力。1.2 設(shè)計(jì)要求根據(jù)C+課程所學(xué)的概念、理論和方法,按照C+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序來(lái)實(shí)現(xiàn)設(shè)計(jì)課程內(nèi)容中的全部功能;設(shè)計(jì)主控模塊程序?qū)o出的程序源代碼要給出各部分的詳細(xì)注釋自己根據(jù)能力及需要添加相應(yīng)功能模塊,增強(qiáng)模擬系統(tǒng)功能。包括系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計(jì)、程序流程圖或結(jié)構(gòu)框圖、邏輯結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫(kù)中的表、視圖(如果使用)、索引的結(jié)構(gòu)和定義、觸發(fā)器、存儲(chǔ)過(guò)程、課程設(shè)計(jì)體會(huì)。1.3 設(shè)計(jì)內(nèi)容1.設(shè)計(jì)題目:學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)2設(shè)計(jì)內(nèi)容:(1)設(shè)計(jì)四個(gè)類;學(xué)生類(描述學(xué)生基本信息);成績(jī)類:班級(jí)類;課程類(描述課程信息:課程編號(hào),科目名稱(如高等數(shù)學(xué),大學(xué)英語(yǔ)等);學(xué)生成績(jī)及課程信息用文件保存,每個(gè)類一個(gè)文件,程序執(zhí)行時(shí)從文件讀入;(2)能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入,修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī);求學(xué)生的總分及平均分;并能根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序,能查詢學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績(jī)單;(3)設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比;(4)計(jì)算學(xué)生總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占百分比+期末成績(jī)*(1-平時(shí)成績(jī)所占百分比);(5)顯示學(xué)生的姓名、所選課程名稱以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信息。分單人顯示和以班輸出(班成績(jī)單格式輸出到文件);注意:至少一個(gè)班,30人三門(mén)課。第2章 系統(tǒng)實(shí)現(xiàn)思路2.1需求分析學(xué)生成績(jī)管理系統(tǒng)應(yīng)該完成以下幾個(gè)方面的的內(nèi)容:學(xué)生檔案資料的管理、學(xué)生成績(jī)的管理(包括必修課和選修課),每個(gè)內(nèi)容均需要提供添加、修改和查詢的功能。學(xué)生成績(jī)管理系統(tǒng)在開(kāi)發(fā)過(guò)程中收集到的客戶需求提供文檔記錄的關(guān)鍵部分可概括為以下幾個(gè)部分:(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)性能要求(1)磁盤(pán)容量要求:存儲(chǔ)容量嬌小,數(shù)據(jù)庫(kù)系統(tǒng)也不是很大,系統(tǒng)文件占一些磁盤(pán)空間,需要足夠大磁盤(pán)空間以容納系統(tǒng),倘若空間不足,應(yīng)該即使清理系統(tǒng)中過(guò)期文件。(2)安全性要求:系統(tǒng)有著權(quán)限設(shè)置,不同的用戶有著不同的權(quán)限,非相關(guān)人員不可隨意修改數(shù)據(jù),系統(tǒng)無(wú)安全漏洞,安全,可靠。2.3系統(tǒng)功能分析本系統(tǒng)根據(jù)學(xué)生成績(jī)管理的需要,而建立一個(gè)“學(xué)生成績(jī)管理系統(tǒng)“,以方便對(duì)成績(jī)的的各項(xiàng)管理操作。(1)資料維護(hù):系統(tǒng)維護(hù)包括對(duì)學(xué)生信息的錄入操作及數(shù)據(jù)表中的信息進(jìn)行瀏覽。(2)系統(tǒng)功能:可以對(duì)數(shù)據(jù)表中的信息進(jìn)行瀏覽。(3)系統(tǒng)查詢:可以對(duì)學(xué)生的信息進(jìn)行查詢。第3章 系統(tǒng)詳細(xì)設(shè)計(jì)3.1系統(tǒng)功能模塊設(shè)計(jì)及分析學(xué)生成績(jī)查詢系統(tǒng)有:成績(jī)錄入、增加、刪除、修改,數(shù)據(jù)查詢,排序顯示構(gòu)成:(1)通過(guò)定義一個(gè)類來(lái)定義數(shù)據(jù)錄入的函數(shù),使用不帶參數(shù)和帶參數(shù)的構(gòu)造函數(shù)初始化數(shù)據(jù),且將主函數(shù)作為T(mén)stu類的友元函數(shù),以便主函數(shù)可以隨意調(diào)用Tstu類的數(shù)據(jù)成員。class Tstuchar name20;int number;float math,cpp,english,average,sum;public:Tstu();Tstu ( char n20, int num,float ma,float cj,float eng ) ;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;(2)通過(guò)主函數(shù),dowhile語(yǔ)句進(jìn)行選擇,判斷,使用switch(p),case p,p(1-11)對(duì)各種功能進(jìn)行分別輸入。使用fstream輸入輸出文件類,進(jìn)行對(duì)文件打開(kāi)。void main()do /判斷輸入是否正確cinp;if(p=1&p=11)chris1=1;elsecout指令錯(cuò)誤!請(qǐng)重新輸入:endl;while(chris1=0);doswitch(p)case 1: /數(shù)據(jù)的錄入char c; /用于在小項(xiàng)中選擇是否繼續(xù)操作char name20;int number;float math,cpp,english;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)輸入英語(yǔ)成績(jī):english;fstream outfile,infile; /作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù)outfile.open(f1.txt,ios:out|ios:app); /定義文件流對(duì)象,打開(kāi)文件if(!file)/如果打開(kāi)失敗 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);/定義輸入文件流對(duì)象,以輸入方式打開(kāi)文件if(!file) /判斷文件是否打開(kāi) coutf1.txt can not open.n;return;char ch;while(infile.get(ch)/coutch;coutendl;infile.close();/關(guān)閉磁盤(pán)文件j+;si=new Tstu(name, number,math, cpp, english);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);while(c=y); /重復(fù)輸入break;。(3)模塊框圖:學(xué)生成績(jī)管理系統(tǒng)操作查詢成績(jī)統(tǒng)計(jì)按總成績(jī)排名錄入增加刪除修改總成績(jī)查詢姓名每個(gè)學(xué)生的平均成績(jī)各科不及格的人數(shù)輸出所有學(xué)生的成績(jī)圖3-1模塊框圖功能分析如下: 輸入學(xué)生資料模塊;輸出學(xué)生資料模塊;按學(xué)生姓名進(jìn)行排列模塊;添加學(xué)生資料模塊;按姓名查找,刪除該學(xué)生資料模塊;查找并顯示學(xué)生學(xué)生資料模塊;按姓名查找,修改學(xué)生資料模塊;從文件中讀入數(shù)據(jù)模塊;儲(chǔ)存學(xué)生并退出系統(tǒng)模塊。3.2界面設(shè)計(jì)界面設(shè)計(jì)是人與機(jī)器之間傳遞和交換信息的媒介,F(xiàn)aceUI稱包括硬件界面和軟件界面,是計(jì)算機(jī)科學(xué)與心理學(xué)、設(shè)計(jì)藝術(shù)學(xué)、認(rèn)知科學(xué)和人機(jī)工程學(xué)的交叉研究領(lǐng)域。程序運(yùn)行后會(huì)出現(xiàn)一個(gè)簡(jiǎn)捷的窗口,便于用戶查詢數(shù)據(jù)。3.3 功能設(shè)計(jì)與實(shí)現(xiàn)通過(guò)主窗體調(diào)用其他窗體,具體實(shí)現(xiàn)可以參照系統(tǒng)分析相關(guān)內(nèi)容。應(yīng)用系統(tǒng)主控界面包括記錄編輯和記錄查詢等功能模塊。記錄編輯功能完成學(xué)生成績(jī)記錄編輯和記錄查詢功能。記錄查詢功能可以對(duì)數(shù)據(jù)各分類的記錄進(jìn)行查詢。通過(guò)do.while.語(yǔ)句進(jìn)行判斷,將將要實(shí)現(xiàn)的功能使用switch,case實(shí)現(xiàn)。case1case11,分別可實(shí)現(xiàn)11種要求,可通過(guò)數(shù)字及字母來(lái)調(diào)用所需要的功能,非常的便捷和方便。第4章 系統(tǒng)調(diào)試運(yùn)行4.1系統(tǒng)測(cè)試及調(diào)試分析按“自下而上”的原則按模塊測(cè)試、子系統(tǒng)測(cè)試、系統(tǒng)總測(cè)試3個(gè)階段進(jìn)行模塊測(cè)試 尋找程序或詳細(xì)設(shè)計(jì)中的錯(cuò)誤;子系統(tǒng)測(cè)試 又稱分調(diào),把經(jīng)測(cè)試的模塊放在一起形成一個(gè)子系統(tǒng)來(lái)測(cè)試;系統(tǒng)總測(cè)試 即把一個(gè)模塊裝成若干子系統(tǒng)并充分測(cè)試。根據(jù)檢驗(yàn)程序的可靠性,用多組測(cè)試用例調(diào)試分析系統(tǒng)的正確性,完備性等各項(xiàng)性能指標(biāo),主要是對(duì)程序的所有功能的檢驗(yàn),用多組數(shù)據(jù)并與自己的掌握和可測(cè)的事實(shí)結(jié)果進(jìn)行比較,來(lái)判斷程序是否正確。要求一次檢驗(yàn)程序的每個(gè)功能,都要有多種數(shù)據(jù)。4.2測(cè)試結(jié)果(1)操作界面:圖4-1成績(jī)系統(tǒng)運(yùn)行界面圖(2)成績(jī)錄入界面: 圖4-2 成績(jī)錄入圖(3)刪除數(shù)據(jù)界面:圖4-3刪除操作圖(4)數(shù)據(jù)修改界面:圖4-4數(shù)據(jù)修改圖(5)成績(jī)查詢界面:圖4-5成績(jī)查詢圖(6)輸出數(shù)據(jù)界面:圖4-6輸出成績(jī)界面圖(7)平均分輸出界面:圖4-7平均分輸出界面根據(jù)選擇不同的數(shù)字及字母課執(zhí)行不同的case,輸出不同的功能。例如:選擇了case4,可執(zhí)行修改數(shù)據(jù)的功能,如下:case 4: 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;doflag=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;當(dāng)然,實(shí)際上,每一個(gè)case都能執(zhí)行,但是有很多的地方都不夠完善,例如:在總成績(jī)排序中,只能輸出總成績(jī),不能單獨(dú)的輸出學(xué)生的相應(yīng)的信息;每次進(jìn)行別的操作之前都要在進(jìn)行一次數(shù)據(jù)的錄入,不能直接對(duì)原有的文件進(jìn)行讀取。希望可以更加改進(jìn)。4.3系統(tǒng)維護(hù)系統(tǒng)維護(hù)主要包括了硬件設(shè)備的維護(hù),應(yīng)用軟件系統(tǒng)維護(hù)和數(shù)據(jù)維護(hù)3部分內(nèi)容。 根據(jù)目的可分為: (1)改正性維護(hù); (2)適應(yīng)性維護(hù);(3)完善性維護(hù);(4)預(yù)防性維護(hù)。課程設(shè)計(jì)體會(huì)關(guān)于C+這門(mén)課,開(kāi)始并不熟悉,但現(xiàn)在學(xué)會(huì)如何使用C+編寫(xiě)簡(jiǎn)單的應(yīng)用程序,知道C+面向?qū)ο蟪绦蛟O(shè)計(jì)這門(mén)課具有封裝,抽象,繼承,多態(tài)性等基本特征,對(duì)于C+課程的概念、理論及應(yīng)用方法有了初步的了解。現(xiàn)在根據(jù)要求,在指導(dǎo)教師的指導(dǎo)下,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序,進(jìn)一步加深了對(duì)C+語(yǔ)言的理解和掌握。發(fā)現(xiàn)自己對(duì)C+的某些知識(shí)認(rèn)識(shí)還是不夠,必須要更加勤奮的學(xué)習(xí)編程,更深入的掌握C+語(yǔ)言,雖然編程比較辛苦,但也很有探索的動(dòng)力,不斷的努力充實(shí)自己。參考文獻(xiàn)1譚浩強(qiáng)c+程序設(shè)計(jì)解題與上機(jī)指導(dǎo)清華大學(xué)出版社 2譚浩強(qiáng)c+面向?qū)ο蟮某绦蛟O(shè)計(jì)清華大學(xué)出版社3龔志翔Visual C+編程實(shí)例與技巧集粹北京期望電子出版社4孔鵬Visual c+ 6.0完全自學(xué)手冊(cè)機(jī)械工業(yè)出版社 5鄧華Visual C+案例教程 北京中科多媒體電子出版社#include #include #include#include#includeusing namespace std; class Tstu /通過(guò)定義一個(gè)類來(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ù),方便訪問(wèn)類中的成員 ; 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ī)查詢系統(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; 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:/按總分查詢 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)輸入您要查詢的學(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 英語(yǔ)分?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)中沒(méi)有輸入數(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英語(yǔ)分?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所

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論