已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
高級(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í): 軟件工程1341 專業(yè)課程: 高級(jí)程序設(shè)計(jì)語言指導(dǎo)教師: 2014 年 6 月 27 日題 目學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)考核項(xiàng)目考核內(nèi)容得分平時(shí)考核(20分)出勤情況、態(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) 成 績(jī)指導(dǎo)教師評(píng)語: 日期: 年 月 日目 錄第1章 系統(tǒng)設(shè)計(jì)目的11.1 課程設(shè)計(jì)題目11.2 課程設(shè)計(jì)的目的11.3 課程設(shè)計(jì)的要求11.4 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的內(nèi)容1第2章 系統(tǒng)實(shí)現(xiàn)思路32.1 系統(tǒng)分析32.2 系統(tǒng)功能模塊32.3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)4第3章 系統(tǒng)詳細(xì)設(shè)計(jì)53.1 建立4個(gè)類53.2 編寫各個(gè)功能函數(shù)體7第4章 系統(tǒng)調(diào)試運(yùn)行154.1 編寫源代碼154.2 編譯154.3 執(zhí)行15課程設(shè)計(jì)體會(huì)21參考文獻(xiàn)22第1章 系統(tǒng)設(shè)計(jì)目的1.1 課程設(shè)計(jì)題目通過一年的學(xué)習(xí),為了檢驗(yàn)學(xué)生們的學(xué)習(xí)成果,老師布置了一個(gè)任務(wù),就是設(shè)計(jì)一個(gè)常見的、并且日常生活中會(huì)用到的系統(tǒng),用來進(jìn)行記錄學(xué)生的各科成績(jī)、統(tǒng)計(jì)班級(jí)學(xué)習(xí)成績(jī)以便進(jìn)行教學(xué)質(zhì)量評(píng)估、以及統(tǒng)計(jì)各班的及格率。這個(gè)系統(tǒng)就是學(xué)生成績(jī)管理系統(tǒng)。1.2 課程設(shè)計(jì)的目的通過課程設(shè)計(jì),學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:鞏固C+課程的基本知識(shí)和方法,通過該系統(tǒng)的實(shí)現(xiàn),進(jìn)一步培養(yǎng)學(xué)生理論聯(lián)系實(shí)際、綜合分析和解決問題的能力;掌握自頂而下的結(jié)構(gòu)化程序設(shè)計(jì)的方法;進(jìn)一步掌握在集成環(huán)境中程序調(diào)試的方法。1.3 課程設(shè)計(jì)的要求1根據(jù)C+課程所學(xué)的概念、理論與方法,按照C+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序來實(shí)現(xiàn)設(shè)計(jì)課程內(nèi)容中的全部功能;2設(shè)計(jì)主控模塊程序,對(duì)給出的程序源代碼要給出各部分的詳細(xì)注釋;3自己根據(jù)能力及需要添加相應(yīng)功能模塊,增強(qiáng)模擬系統(tǒng)功能;4最終設(shè)計(jì)報(bào)告應(yīng)包含系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計(jì)與實(shí)現(xiàn)、主要程序流程圖、調(diào)試運(yùn)行、課程設(shè)計(jì)心得與體會(huì)等內(nèi)容。1.4 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的內(nèi)容這次程序設(shè)計(jì)的內(nèi)容就是編寫一個(gè)關(guān)于學(xué)生成績(jī)管理系統(tǒng)的程序,通過設(shè)計(jì)的程序可以對(duì)各個(gè)學(xué)生的成績(jī)信息進(jìn)行錄入、修改、增加等一系列操作,以及可以查詢學(xué)生在所在班級(jí)的排名、平均分、總分等情況,并且對(duì)學(xué)生所在班級(jí)的總成績(jī)可以進(jìn)行評(píng)估。1設(shè)計(jì)四個(gè)類:(1)學(xué)生類:描述學(xué)生基本信息;(2)成績(jī)類:設(shè)計(jì)的課程分別對(duì)應(yīng)的成績(jī),如數(shù)學(xué)、英語、C+;(3)班級(jí)類:每位學(xué)生對(duì)應(yīng)的班級(jí);(4)課程類:描述課程信息,課程編號(hào)、課程名稱(如數(shù)學(xué)、英語、C+);2學(xué)生成績(jī)及課程信息用文件保存,程序執(zhí)行時(shí)從文件讀入;3能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改;4能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī);5求學(xué)生的總分及平均分;6根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序;7查詢學(xué)生成績(jī);8顯示不及格科目及學(xué)生名單;9按班級(jí)輸出學(xué)生的成績(jī)單。 第2章 系統(tǒng)實(shí)現(xiàn)思路2.1 系統(tǒng)分析此次的學(xué)生成績(jī)管理系統(tǒng)是生活中比較常用的系統(tǒng),可以幫助教師更便捷的整理學(xué)生及班級(jí)的成績(jī)、查看自己的教學(xué)質(zhì)量效果。要先設(shè)計(jì)一個(gè)程序,那么,就要首先了解程序使用者的需求。所以要先對(duì)系統(tǒng)進(jìn)行需求分析。經(jīng)過需求分析,系統(tǒng)應(yīng)有功能包括:(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)功能模塊此次設(shè)計(jì)的系統(tǒng)的主要功能就是對(duì)各個(gè)學(xué)生的各個(gè)學(xué)科成績(jī)進(jìn)行錄入、增加、修改、刪除以及求平均分、求總分等操作。在班級(jí)為單位的操作中,可以查詢學(xué)生在班級(jí)的排名,以及班級(jí)各個(gè)學(xué)科的不及格人數(shù)、以便對(duì)教學(xué)質(zhì)量的評(píng)估。1學(xué)生成績(jī)管理系統(tǒng)分為:(1)學(xué)生成績(jī)錄入、增加、刪除、修改;(2)數(shù)據(jù)查詢;(3)成績(jī)統(tǒng)計(jì);(4)排名顯示。2模塊框架圖模塊框架圖就是系統(tǒng)的整個(gè)大概流程,學(xué)生成績(jī)管理系統(tǒng)可以分為操作、查詢、成績(jī)統(tǒng)計(jì)及按總成績(jī)排名等操作。其中操作包括對(duì)學(xué)生信息的錄入、增加、刪除及修改。查詢包括總成績(jī)查詢、按學(xué)生姓名查詢、及輸出所有學(xué)生的成績(jī)。成績(jī)統(tǒng)計(jì)又分為每個(gè)學(xué)生的平均成績(jī)及各科不及格的人數(shù)。流程圖如圖2-1。學(xué)生成績(jī)管理系統(tǒng)操作查詢成績(jī)統(tǒng)計(jì)按總成績(jī)排名錄入增加刪除修改總成績(jī)查詢姓名每個(gè)學(xué)生的平均成績(jī)各科不及格的人數(shù)輸出所有學(xué)生的成績(jī)圖2-1 模塊框架圖2.3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)通過主窗體調(diào)用其他窗體,具體實(shí)現(xiàn)可以參照系統(tǒng)分析相關(guān)內(nèi)容。應(yīng)用系統(tǒng)主控界面包括記錄編輯和記錄查詢等功能模塊。記錄編輯功能完成學(xué)生成績(jī)記錄編輯和記錄查詢功能。記錄查詢功能可以對(duì)數(shù)據(jù)各分類的記錄進(jìn)行查詢。1界面設(shè)計(jì)程序運(yùn)行后會(huì)出現(xiàn)一個(gè)簡(jiǎn)捷的窗口,便于用戶查詢數(shù)據(jù)。2功能設(shè)計(jì)與實(shí)現(xiàn)通過主窗體調(diào)用其他窗體,具體實(shí)現(xiàn)可以參照系統(tǒng)分析相關(guān)內(nèi)容。應(yīng)用系統(tǒng)主控界面包括記錄編輯和記錄查詢等功能模塊。記錄編輯功能完成學(xué)生成績(jī)記錄編輯和記錄查詢功能。記錄查詢功能可以對(duì)數(shù)據(jù)各分類的記錄進(jìn)行查詢。第3章 系統(tǒng)詳細(xì)設(shè)計(jì)3.1 建立4個(gè)類1建立學(xué)生類,至少包括姓名、學(xué)號(hào)、各科成績(jī)以及成績(jī)平均值和總分。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(); float getaver(); friend void main(); ;2建立成績(jī)類,該類是學(xué)生成績(jī)記錄的集合。其成員函數(shù)則是問題中要求的錄入、增加、修改、刪除、排序、求和、求平均值等各種操作。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; 3建立班級(jí)類,能夠準(zhǔn)確進(jìn)行查找學(xué)生所在班級(jí)信息、以及班級(jí)總成績(jī)等操作。class gradespublic: string major; int cla_id; int peop_num; multiset stu; void fread(int n); void revise(int t_ID); void display(void); void seek(int t_ID); void failshow(void); ;4建立課程類,能夠記錄學(xué)生的課程信息,以及學(xué)生課程對(duì)應(yīng)的分?jǐn)?shù)。class course public: int cou_id; string cou_name; int mark; ;3.2 編寫各個(gè)功能函數(shù)體1數(shù)據(jù)錄入:錄入學(xué)生的基本信息以及各科的考試成績(jī)。char c;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)輸入英語成績(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.open(f1.txt,ios:in);if(!file) coutf1.txt can not open.n;return;2增加學(xué)生:輸入需要增加的學(xué)生的信息以及各科成績(jī)。char name20;int number;float math,cpp,english;char c;docout請(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.open(f1.txt,ios:in);if(!file)coutf1.txt can not open.n;return;3刪除學(xué)生:刪除需要?jiǎng)h除的學(xué)生的信息以及各科成績(jī)。char c;string xingming,line,str,name;do 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)endl;4修改數(shù)據(jù):修改需要修改的學(xué)生的信息以及各科成績(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;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 外語成績(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;cout想繼續(xù)修改嗎(y/n):;5按總成績(jī)查詢:根據(jù)學(xué)生的總成績(jī)進(jìn)行查詢。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é)生的總成績(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)cout對(duì)不起!您要查詢的學(xué)生不存在!endl;cout是否繼續(xù)查?(y/n):;6按姓名查詢:根據(jù)學(xué)生名字查詢學(xué)生的信息以及各科成績(jī)。char n20;char c;int j=0;int flag;if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break;doflag=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;cout您想繼續(xù)查詢嗎?(y/n):;7輸出所有學(xué)生的數(shù)據(jù):輸出系統(tǒng)中錄入的所有學(xué)生的信息。cout所有學(xué)生數(shù)據(jù)如下:endl;ifstream file;file.open(f1.txt,ios:in);coutfile.rdbuf();file.close();break;8每個(gè)學(xué)生的平均成績(jī):計(jì)算每個(gè)學(xué)生的平均成績(jī)。if(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).number 總分:(*sm).getsum() 均分:(*sm).getaver()endl;break;9各科不及格人數(shù):統(tǒng)計(jì)各科沒有幾個(gè)的學(xué)生人數(shù)。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;jmathcppenglish60)k+;cout數(shù)學(xué)不及格人數(shù)為:mendl;coutc+不及格人數(shù)為:nendl;cout英語不及格人數(shù)為:kendl;break;10按總分查詢排名:按照學(xué)生的總分進(jìn)行查詢每個(gè)學(xué)生的名次。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 您輸入的指令有誤!請(qǐng)重新輸入:endl;elseflag=1;while(flag=0);第4章 系統(tǒng)調(diào)試運(yùn)行4.1 編寫源代碼按照所給要求,運(yùn)用C+程序設(shè)計(jì)的原理及步驟編寫源程序代碼。4.2 編譯編譯程序把一個(gè)源程序翻譯成目標(biāo)程序的工作過程,分析過程中發(fā)現(xiàn)有語法錯(cuò)誤,給出提示信息。4.3 執(zhí)行1主菜單界面,如圖4-1:圖4-1 主菜單界面2各操作界面:(1)數(shù)據(jù)錄入,如圖4-2: 圖4-2 數(shù)據(jù)錄入(2)增加學(xué)生,如圖4-3: 圖4-3 增加學(xué)生 (3)刪除學(xué)生,如圖4-4: 圖4-4 刪除學(xué)生(4)修改數(shù)據(jù),如圖4-5: 圖4-5 修改數(shù)據(jù)(5)按總成績(jī)查詢,如圖4-6: 圖4-6 按總成績(jī)查詢(6)按姓名查詢,如圖4-7: 圖4-7 按姓名查詢(7)輸出所有學(xué)生的數(shù)據(jù),如圖4-8: 圖4-8 輸出所有學(xué)生的數(shù)據(jù)(8)每個(gè)學(xué)生的平均成績(jī),如圖4-9: 圖4-9 每個(gè)學(xué)生的平均成績(jī)(9)各科不及格人數(shù),如圖4-10: 圖4-10 各科不及格人數(shù)(10)按總分查詢排名,如圖4-11: 圖4-11 按總分查詢排名課程設(shè)計(jì)體會(huì)學(xué)生成績(jī)管理系統(tǒng)是一個(gè)很實(shí)際例子,生活中比較常見,也經(jīng)常會(huì)用到。同時(shí)要求學(xué)生的綜合能力也很高,不僅考察了對(duì)單個(gè)知識(shí)點(diǎn)的掌握,更考察了所有知識(shí)點(diǎn)的綜合運(yùn)用熟練程度。在編寫程序的過程中,更要細(xì)心,稍微有點(diǎn)馬虎可能就會(huì)出錯(cuò),引來不必要的麻煩。這次編寫的系統(tǒng)的重點(diǎn)就是要會(huì)建立四個(gè)類。一個(gè)是學(xué)生類,用來存放一個(gè)學(xué)生的成績(jī)記錄,相當(dāng)于一個(gè)結(jié)構(gòu)體的功能。還有就是學(xué)生成績(jī)類,該類用來存放多個(gè)學(xué)生的成績(jī)記錄。難點(diǎn)就是成績(jī)類里的各個(gè)功能的實(shí)現(xiàn)??偟膩碚f,添加,顯示,查找,這三個(gè)功能比較容易,但是,刪除,保存,加載這三個(gè)功能就需要認(rèn)真費(fèi)點(diǎn)腦筋了。我認(rèn)為,在課程設(shè)計(jì)體會(huì)中,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)課上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。作為一個(gè)軟件工程專業(yè)的學(xué)生來說,多加練習(xí)是少不了的,只有多加練習(xí),才能讓自己學(xué)到的知識(shí)聯(lián)系起來,也不會(huì)在用的時(shí)候覺得生疏。而且編寫程序一定要有耐心,盡量少出錯(cuò),提高編寫效率。參考文獻(xiàn)1譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì).清華大學(xué)出版社2譚浩強(qiáng).C語言程序設(shè)計(jì).清華大學(xué)出版社3鄭振杰.C+程序設(shè)計(jì).人民郵電出版社4柴欣.C/C+程序設(shè)計(jì).河北大學(xué)出版社5余蘇寧、王明福.C+程序設(shè)計(jì).高等教育出版社6呂鳳翥.C+語言程序設(shè)計(jì)(第2版).電子工業(yè)出版社#include #include #include#include#includeusing namespace std; 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(); 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() cout*歡迎來到學(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: char c; 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; 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.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); break; case 2: 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)輸入英語成績(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.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: char c; string xingming,line,str,name; do 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; while(c=y); break; case 4: 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é)成績(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=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)cout對(duì)不起!您要查詢的學(xué)生不存在!
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2031年中國吸氧機(jī)行業(yè)市場(chǎng)全景監(jiān)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 2021-2026年中國快遞物流應(yīng)用材料行業(yè)深度評(píng)估及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 武漢關(guān)于成立陶瓷軸承公司可行性研究報(bào)告范文模板
- 2025年中國微生態(tài)制劑行業(yè)市場(chǎng)深度分析及投資策略研究報(bào)告
- 2025有關(guān)勞動(dòng)合同范本
- 中國禽專用酶行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 衛(wèi)衣行業(yè)市場(chǎng)深度調(diào)研及發(fā)展策略建議研究報(bào)告
- 中國輸水帶行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 2025建筑工程安裝招標(biāo)合同范文 合同范本
- 2025關(guān)于出租車轉(zhuǎn)讓合同范本
- 物理化學(xué)英語詞匯
- 山東省沂南縣2024屆八年級(jí)物理第二學(xué)期期末經(jīng)典模擬試題含解析
- MOOC 概率統(tǒng)計(jì)和隨機(jī)過程-南京郵電大學(xué) 中國大學(xué)慕課答案
- 北師大版七年級(jí)數(shù)學(xué)上冊(cè) 期末重難點(diǎn)真題特訓(xùn)之易錯(cuò)必刷題型(96題32個(gè)考點(diǎn))(原卷版+解析)
- 2023年公路養(yǎng)護(hù)工知識(shí)考試題庫附答案
- 高警示(高危)藥品考試試題與答案
- 42山東省棗莊市薛城區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末考試生物試題
- 部編版六年級(jí)語文下冊(cè)第三單元大單元教學(xué)設(shè)計(jì)
- 前端組長(zhǎng)述職報(bào)告
- 食品安全企業(yè)標(biāo)準(zhǔn)模板
- 鈷酸鋰結(jié)構(gòu)特性
評(píng)論
0/150
提交評(píng)論