學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(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ì)語(yǔ)言課程設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共40頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共40頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共40頁(yè)

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

30 積分

下載資源

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

資源描述:

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

1、 河南工程學(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í): 軟件工程 專(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í)

2、能力 系統(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ì)目的 1 1.1 課程設(shè)計(jì)目的 1

3、1.2 系統(tǒng)設(shè)計(jì)要求 1 第2章 系統(tǒng)實(shí)現(xiàn)思路 2 2.1 需求分析 2 2.2 系統(tǒng)性能要求 2 第3章 系統(tǒng)詳細(xì)設(shè)計(jì) 3 3.1 系統(tǒng)功能模塊 3 3.2 模塊框架圖 3 3.3 系統(tǒng)實(shí)現(xiàn) 4 第4章 系統(tǒng)調(diào)試運(yùn)行 19 4.1系統(tǒng)運(yùn)行主界面 19 4.2錄入功能 19 4.3刪除功能 20 4.4查詢(xún)功能 20 4.5查詢(xún)不及格人數(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ì)最終都需要通過(guò)高水平的程序設(shè)計(jì)實(shí)現(xiàn),因此學(xué)習(xí)程序設(shè)計(jì)是計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)學(xué)生必備的基本技能之

4、一。為了使學(xué)生更好的學(xué)習(xí)和掌握這一基本技能,必須系統(tǒng)而全面地的安排程序設(shè)計(jì)課程設(shè)計(jì),目的是通過(guò)具體的課程設(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è)類(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ī); (4)求學(xué)生

5、的總分及平均分,并能根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序,能查詢(xún)學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績(jī)單。 – 設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱(chēng)、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比 – 計(jì)算學(xué)生總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占百分比+期末成績(jī)*(1-平時(shí)成績(jī)所占百分比) – 顯示學(xué)生的姓名、所選課程名稱(chēng)以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信息。分單人顯示和以班輸出(班成績(jī)單格式輸出到文件) – 注意,至少應(yīng)包含一個(gè)班、30人、三門(mén)課 第2章 系統(tǒng)實(shí)現(xiàn)思路 2.1 需求分析 學(xué)生成績(jī)查詢(xún)系統(tǒng)在生活中運(yùn)用廣泛,因此需要多種

6、程序?qū)λM(jìn)行管理。該系統(tǒng)應(yīng)該能存儲(chǔ)學(xué)生的個(gè)人信息與考試成績(jī)。系統(tǒng)管理者能夠利用系統(tǒng)進(jìn)行信息錄入、修改、查詢(xún)、刪除、按照姓名、總分進(jìn)行查詢(xún),能輸出所有的學(xué)生的成績(jī)。 1.系統(tǒng)類(lèi)設(shè)計(jì) (1)學(xué)生類(lèi)用于存放基本個(gè)人信息; (2)課程類(lèi)用于存放課程信息; (3)班級(jí)類(lèi)用于分類(lèi)班級(jí); (4)成績(jī)類(lèi)用于存放成績(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)行查詢(xún); (6)能輸出學(xué)生的所有數(shù)據(jù); (7)能進(jìn)行成績(jī)統(tǒng)計(jì); (8)能進(jìn)行總分查詢(xún)

7、排名。 2.2 系統(tǒng)性能要求 于管理者而言,該系統(tǒng)需要方便的操作,友好的界面。于學(xué)生而言,成績(jī)等屬于個(gè)人信息,因此要求系統(tǒng)有一定的安全性,能夠保護(hù)學(xué)生的基本信息。而隨 擴(kuò)充和修改。因此系統(tǒng)性能要求如下: (1)系統(tǒng)安全可靠; (2)功能齊全; (3)操作方便、界面友好; (4)易于維護(hù)和擴(kuò)充。 第3章 系統(tǒng)詳細(xì)設(shè)計(jì) 3.1 系統(tǒng)功能模塊 學(xué)生成績(jī)查詢(xún)系統(tǒng)有:成績(jī)錄入、數(shù)據(jù)增加、修改、數(shù)據(jù)查詢(xún),排序顯示構(gòu)成。 3.2 模塊框架圖 1. 程序中包含類(lèi)與主函數(shù),類(lèi)構(gòu)成了程序的數(shù)據(jù)管理與存放區(qū)。在主函數(shù)中包括多種功能。以類(lèi)為依托構(gòu)成程序框架,在主函數(shù)中實(shí)現(xiàn)每一個(gè)功

8、能。類(lèi)與功能共同構(gòu)成程序框架。 學(xué)生類(lèi) 課程類(lèi) 成績(jī)類(lèi) 系統(tǒng) 操 作 查 詢(xún) 成績(jī) 統(tǒng)計(jì) 排名 錄入 增加 刪除 修改 總成績(jī)查詢(xún) 姓名 輸出所有學(xué)生的成績(jī) 每個(gè)學(xué)生的平均成績(jī) 各科不及格的人數(shù) 圖1-1 模塊框架圖 2.程序用到的頭文件以及自己定義的函數(shù) (1)頭文件 #include //輸入輸出流函數(shù) #include //文件操作函數(shù) #include //字符串函數(shù) #include #include

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

10、據(jù) 查詢(xún): (5)按總成績(jī)查詢(xún) (6)按姓名查詢(xún) (7)輸出所有學(xué)生的數(shù)據(jù) 成績(jī)統(tǒng)計(jì): (8)每個(gè)學(xué)生的平均成績(jī) (9)各個(gè)學(xué)科不及格人數(shù) 排名: (10)按總分查詢(xún)排名 (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 =

11、淡淺綠色 // 4 = 紅色 C = 淡紅色 // 5 = 紫色 D = 淡紫色 // 6 = 黃色 E = 淡黃色 // 7 = 白色 F = 亮白色 cout<<"**********歡迎來(lái)到學(xué)生成績(jī)查詢(xún)系統(tǒng)**********"<

12、l; cout<<"(6)按姓名查詢(xún)"<

13、e[100]; int i=0; int j=0; int chris1=0; float baif;//主函數(shù)利用循環(huán)體執(zhí)行,實(shí)現(xiàn)循環(huán)操作: do { cin>>p; if(p>=1&&p<=11) chris1=1; else cout<<"指令錯(cuò)誤!請(qǐng)重新輸入:"<

14、4:{.............} //修改數(shù)據(jù)功能 case 5:{.............} //按成績(jī)查詢(xún)功能 case 6:{.............} //按姓名查詢(xún)功能 case 7:{.............} //輸出所有的數(shù)據(jù) case 8:{.............} //輸出學(xué)生的平均分 case 9:{.............} / /查詢(xún)不及格人數(shù) case 10:{.............} //總成績(jī)排名 }while(w=='y');//循環(huán)語(yǔ)句結(jié)束 } 2.具體功能設(shè)計(jì) 通過(guò)主窗體調(diào)用其他窗體,實(shí)現(xiàn)其它功能。

15、(1)錄入功能 使用cin輸入流輸入學(xué)生的相關(guān)信息,并創(chuàng)立文件,將所輸入的數(shù)據(jù)存入到文件中。 程序代碼 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; cout<<"請(qǐng)輸入數(shù)學(xué)平時(shí)成績(jī)"<>mathp; c

16、out<<"請(qǐng)輸入c++平時(shí)成績(jī)"<>cppp; cout<<"請(qǐng)輸入英語(yǔ)平時(shí)成績(jī)"<>englishp; cout<<"請(qǐng)輸入成績(jī)百分比"<>baif; fstream outfile,infile; outfile.open("f1.txt",ios::out|ios::app);//打開(kāi)文件 if(!file) { cout<<"f1.txt can not open.\n"; return ; } outfile<

17、tfile<<"數(shù)學(xué)成績(jī): "<

18、tw(2)<

19、cout<<"f1.txt can not open.\n"; return ; } char ch; while(infile.get(ch)) cout<>c; chris1=0; do

20、 { if(c!='y'&&c!='n'){cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!"<>c; } else chris1=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; do { ifstream fin("f1.txt"); fstream outfile("f2.txt",ios::

21、trunc|ios::out); //創(chuàng)建文件2 cout<<"請(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) outfile<

22、("f1.txt",ios::trunc|ios::out); ifstream outf("f2.txt"); f<>c; ...... } (4)修改功能 參考錄入功能,利用對(duì)文件的操作達(dá)到對(duì)數(shù)據(jù)的修改功能。 (5)按總成績(jī)查詢(xún) 用if語(yǔ)句調(diào)用getsum()判斷輸入的總分?jǐn)?shù)與數(shù)據(jù)庫(kù)中的總分?jǐn)?shù)是否有相同的,并執(zhí)行輸出文件操作。 程序代碼 int j=0; float SUM;char c;int

23、flag; if(i==0) //根據(jù)前面的疊加判斷文件中是否有數(shù)據(jù) { cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<>SUM; for(int j=0;jgetsum()==SUM) //將符合的數(shù)據(jù)輸出 { flag=1; cout<<"您要查詢(xún)的學(xué)生是:"<<(*s[j]).name<

24、

25、 //錯(cuò)誤操作返回繼續(xù) cout<<"對(duì)不起!您要查詢(xún)的學(xué)生不存在!"<>c; ....... } (6)按姓名查詢(xún) 程序代碼與按總分功能類(lèi)似,區(qū)別在于這個(gè)功能中利用指針訪問(wèn)類(lèi)中成員,并進(jìn)行判斷。 (7)輸出所有數(shù)據(jù) 通過(guò)打開(kāi)文件,對(duì)文件中的所有數(shù)據(jù)進(jìn)行輸出。 程序代碼 cout<<"所有學(xué)生數(shù)據(jù)如下:"<

26、 //以輸出文件的所有數(shù)據(jù) file.close(); (8)輸出學(xué)生的平均分 利用指針訪問(wèn)Chengji類(lèi)中的成員,調(diào)用getaver ()函數(shù)求得平均分并執(zhí)行輸出操作。 程序代碼 if(i==0) { cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<

27、9)查詢(xún)不及格人數(shù) 調(diào)用get函數(shù)求得三科平均成績(jī),并統(tǒng)計(jì)不及格人數(shù),并輸出查詢(xún)結(jié)果。 程序代碼 if(i==0) { cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<getshu()<60)m++; if(s[j]->getcpp()<60)n++; if(s[j]->geteng()<60)k++; } cout<<"數(shù)學(xué)不及格人數(shù)為:"<

28、<

29、} for(h=0;ha[n+1]) { temp=a[n]; //交換得到最大值 a[n]=a[n+1]; a[n+1]=temp; temp1=k[n]; //交換名字 k[n]=k[n+1]; k[n+1]=temp1; } } for(n=1;n<=i;n++) { cout<

30、lass student和class kecheng用來(lái)封裝學(xué)生的所有信息具體見(jiàn)代碼分析。派生類(lèi)class chengji繼承了兩個(gè)類(lèi)的所有數(shù)據(jù),同時(shí)增加了自己的成員,并添加了多個(gè)函數(shù)。Main()用來(lái)實(shí)現(xiàn)所有的操作以及對(duì)程序的整體控制;定義文件輸入流對(duì)象in和輸出流對(duì)象out,實(shí)現(xiàn)對(duì)外部文件的操作,使得數(shù)據(jù)得以保存。 程序代碼 class Student //聲明學(xué)生類(lèi) {public: Student(int n,char nu[20]) //構(gòu)造函數(shù) { num=n; strcpy(name,nu); } fr

31、iend void main(); //聲明友元類(lèi) protected: int num;//學(xué)號(hào) char name[20];//姓名 }; class Kecheng //聲明課程類(lèi) {public: //構(gòu)造函數(shù) Kecheng(float ma,float cp,float eng) { math=ma; cpp=cp; english=eng; } friend void main(); //聲明友元

32、protected: float math;//數(shù)學(xué) float english;//英語(yǔ) float cpp;//c++ }; class Chengji:public Student,public Kecheng //聲明成績(jī)類(lèi) {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),Ke

33、cheng(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=cz; englishz=ez; } float getsum();//綜合函數(shù) float getshu();//數(shù)學(xué)最后成績(jī) float getcpp();//c最后成績(jī) float geteng();//英語(yǔ)最后成績(jī) friend void main()

34、;//聲明友元 float getaver();//平均值函數(shù) protected: float mathp ;//數(shù)學(xué)平時(shí)成績(jī) float cppp;//c++平時(shí)成績(jī) float englishp;//英語(yǔ)平時(shí)成績(jī) float baif;//成績(jī)百分比 float mathz ;//數(shù)學(xué)總成績(jī) float cppz;//c++總成績(jī) float englishz;//英語(yǔ)總成績(jī) }; 3.系統(tǒng)流程圖 系統(tǒng)中綜合類(lèi)與功能,程序的運(yùn)行框架圖,包含主界面顯示、選擇操作、具體的系統(tǒng)主函數(shù)操作,選擇1-11對(duì)應(yīng)相對(duì)的操作,系統(tǒng)自動(dòng)執(zhí)行操作,并返回主函數(shù)。流程圖如下圖所

35、示: 圖3-1 程序流程圖 第4章 系統(tǒng)調(diào)試運(yùn)行 4.1系統(tǒng)運(yùn)行主界面 新建文件夾《課程設(shè)計(jì)》,并在文件夾中設(shè)立相應(yīng)的工程,新建程序文件命名為《成績(jī)》,編寫(xiě)程序代碼,并調(diào)試運(yùn)行。系統(tǒng)調(diào)試運(yùn)行輸出主界面見(jià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查詢(xún)功能 分為按總成績(jī)查詢(xún)和按姓名查詢(xún)兩種方式:如圖4-4 圖4-4 查詢(xún)界面 4.5查詢(xún)不及格人數(shù) 調(diào)用get

36、函數(shù)求三科平均成績(jī)并統(tǒng)計(jì)不及格人數(shù)并輸出查詢(xún)結(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é)生來(lái)說(shuō)還是比較難的,如果沒(méi)有其他方面的幫助,憑自己是做不出來(lái)的,所以我決定以后要更加的努力學(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é)出版社

37、 [3] LippmanBarbara.《C++ Primer》.人民郵電出版社 [4] Bjarne Stroustrup.《The C++ Programming Language》.機(jī)械工業(yè)出版社 [5]《C++語(yǔ)言的設(shè)計(jì)和演化》,機(jī)械工業(yè)出版社[6] #include #include #include #include #include using namespace std; class Tstu { char name[20]; int numbe

38、r; float math,cpp,english,average,sum; public: Tstu() {}; Tstu(char n[20],int num,float ma,float cj,float eng); float getsum(); float getaver(); friend void main(); }; Tstu::Tstu ( char n[20], int num,float ma,float cj,float eng ) { strcpy(name,n); number=num; mat

39、h=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<<"*****************歡迎來(lái)到學(xué)生成績(jī)查詢(xún)系統(tǒng)*****************"<

40、 cout<<"操作:"<

41、各科不及格人數(shù)"<

42、 int j=0; int chris1=0; //用于判斷do—while語(yǔ)句 do //判斷輸入是否正確 { cin>>p; if((p>=1&&p<=11)) chris1=1; else cout<<"指令錯(cuò)誤!請(qǐng)重新輸入:"<

43、]; 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ī):"<

44、 cin>>cpp; cout<<"請(qǐng)輸入英語(yǔ)成績(jī):"<>english; fstream outfile,infile; //作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open("f1.txt",ios::out|ios::app); if(!file) { cout<<"f1.txt can not open.\n"; return; } outfile<

45、號(hào):"<

46、hile(infile.get(ch)) cout<>c; chris1=0;

47、 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 name[20]; int

48、 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ī):"<

49、 cin>>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) {

50、 cout<<"f1.txt can not open.\n"; return; } outfile<

51、) { cout<<"f1.txt can not open.\n"; return; } char h; while(infile.get(h)) cout<

52、w 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');

53、 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

54、除的學(xué)生的姓名:"<>xingming; while(!fin.eof() ) { getline(fin,line); istringstream stream(line); name = line.substr(0,line.find(" ",0));//找到名字,判斷是否相等 if(

55、name != xingming) outfile<

56、uf(); outf.close(); f.close(); cout<<"數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)"<>c; if(c!='y'&&c!='n') { cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!"<>c;

57、 } }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ù)!"<

58、輸入您要修改的學(xué)生的姓名:"; cin>>name; fstream fin("f1.txt",ios::in); ofstream outfile("f.txt",ios::trunc|ios::out); cout<

59、; if(name!=sname) { outfile<>name>>nu>>ma>>com>>eng; cout<

60、

61、; cout<<"想繼續(xù)修改嗎(y/n):"; cin>>c; cout<>c; } }while(c=='y'); break; } case 5://按總分查詢(xún) { int j=0;float SUM;char c;int flag; if(i==0) {

62、 cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<>SUM; for(int j=0;jgetsum()==SUM) { flag=1; cout<<"您要查詢(xún)的學(xué)生是:"<<(*s[j]).name<

63、息為:"<>c; if(c!='y'&&c!='n') { cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!

64、"<>c; }; }while(c=='y'); break; } case 6://按姓名查詢(xún) { char n[20];char c;int j=0;int flag; if(i==0) { cout<<"系統(tǒng)中沒(méi)有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!"<

65、in>>n; for(int j=0;j

66、 if(flag==0) cout<<"對(duì)不起您要查詢(xún)的學(xué)生不存在,請(qǐng)查證后再輸入!"<>c; if(c!='y'&&c!='n') { cout<<"指令錯(cuò)誤!請(qǐng)重新輸入:"<>c; } }while(c=='y'); break; } case 7://輸出所有學(xué)生數(shù)據(jù) { cout<<"所有學(xué)生數(shù)據(jù)如下:"<

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

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

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

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


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