《高級(jí)程序設(shè)計(jì)語言》課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

上傳人:na****u 文檔編號(hào):56908902 上傳時(shí)間:2022-02-22 格式:DOC 頁數(shù):34 大?。?22.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
《高級(jí)程序設(shè)計(jì)語言》課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
第1頁 / 共34頁
《高級(jí)程序設(shè)計(jì)語言》課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
第2頁 / 共34頁
《高級(jí)程序設(shè)計(jì)語言》課程設(shè)計(jì) 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
第3頁 / 共34頁

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

20 積分

下載資源

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

資源描述:

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

1、河南工程學(xué)院高級(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í)考核(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ì)源代碼

2、的排版總 評(píng) 成 績(jī)指導(dǎo)教師評(píng)語: 日期: 年 月 日目 錄第1章 系統(tǒng)設(shè)計(jì)目的和要求11.1 設(shè)計(jì)的目的11.2 設(shè)計(jì)的要求11.3 設(shè)計(jì)的背景1第2章 系統(tǒng)實(shí)現(xiàn)思路32.1 需求分析32.2 系統(tǒng)性能要求32.3 模塊框圖3第3章 系統(tǒng)詳細(xì)設(shè)計(jì)43.1 類的設(shè)計(jì)43.2 功能函數(shù)的設(shè)計(jì)53.3 主函數(shù)的設(shè)計(jì)14第4章 系統(tǒng)調(diào)試運(yùn)行184.1 逐步調(diào)試184.2 分級(jí)調(diào)試18課程設(shè)計(jì)體會(huì)20參考文獻(xiàn)21第1章 課程設(shè)計(jì)目的和要求1.1 課程設(shè)計(jì)目的(1)將學(xué)到的面向?qū)ο蟮某绦蛟O(shè)計(jì)思想用到工作和學(xué)習(xí)中,加深對(duì)類與對(duì)象的理解。通過課程設(shè)計(jì),能夠提高學(xué)生分析解決問題能力,從而運(yùn)用所學(xué)知識(shí)解決實(shí)際問

3、題的能力。(2)進(jìn)一步深化掌握C+語言的基本知識(shí);掌握結(jié)構(gòu)化程序設(shè)計(jì)的方法和技巧,了解算法分析與設(shè)計(jì)概念;運(yùn)用面向?qū)ο蟪绦蛟O(shè)計(jì)方法進(jìn)行程序設(shè)計(jì)。1.2課程設(shè)計(jì)要求根據(jù)提供的實(shí)習(xí)題目,完成軟件設(shè)計(jì)的全部過程,并以最終軟件設(shè)計(jì)成果來證明其完成實(shí)際任務(wù)的能力,完成軟件設(shè)計(jì)和程序調(diào)試并提交文檔:課程設(shè)計(jì)報(bào)告書,報(bào)告書中包含設(shè)計(jì)的算法及部分程序代碼。1.3課程設(shè)計(jì)題目(1)設(shè)計(jì)四個(gè)類;學(xué)生類(描述學(xué)生基本信息);成績(jī)類:班級(jí)類;課程類(描述課程信息:課程編號(hào),科目名稱(如高等數(shù)學(xué),大學(xué)英語等);學(xué)生成績(jī)及課程信息用文件保存,每個(gè)類一個(gè)文件,程序執(zhí)行時(shí)從文件讀入; (2)能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績(jī)的錄

4、入,修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī);求學(xué)生的總分及平均分;并能根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序,能查詢學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績(jī)單。 設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比 計(jì)算學(xué)生總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占百分比+期末成績(jī)*(1-平時(shí)成績(jī)所占百分比) 顯示學(xué)生的姓名、所選課程名稱以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信息分單人顯示和以班輸出(班成績(jī)單格式輸出到文件) 注意,至少一個(gè)班,30人三門課第2章 系統(tǒng)實(shí)現(xiàn)思路2.1需求分析根據(jù)對(duì)題目的分析,程序所需要的功能大概非為如下幾種:(1)能對(duì)學(xué)生各科成績(jī)進(jìn)行錄入:

5、。(2)能對(duì)學(xué)生的成績(jī)進(jìn)行刪除。(3)能對(duì)學(xué)生的成績(jī)進(jìn)行修改。(4)能對(duì)學(xué)生的成績(jī)按總成績(jī),姓名,進(jìn)行查詢。(5)能輸出學(xué)生的所有數(shù)據(jù)。(6)能進(jìn)行成績(jī)統(tǒng)計(jì)(7)能進(jìn)行總分查詢排名。2.2系統(tǒng)性能要求要對(duì)于程序的整體把握,宏觀的規(guī)劃程序,所以對(duì)系統(tǒng)的性能要有以下的要求:(1)系統(tǒng)安全、可靠;(2)功能齊全;(3)操作方便、界面友好;(4)易于維護(hù)和擴(kuò)充;2.3模塊框圖為了方便算法的完成,應(yīng)該先畫出模塊框圖,并根據(jù)框圖進(jìn)行算法的編寫和程序的規(guī)劃。學(xué)生成績(jī)管理系統(tǒng)操作查詢成績(jī)統(tǒng)計(jì)按總成績(jī)排名錄入增加刪除修改總成績(jī)查詢姓名每個(gè)學(xué)生的平均成績(jī)各科不及格的人數(shù)輸出所有學(xué)生的成績(jī)圖21 模塊框圖第3章 系

6、統(tǒng)詳細(xì)設(shè)計(jì)3.1類的設(shè)計(jì)設(shè)計(jì)兩個(gè)類,其一為Student類,包含了需要錄入和使用的數(shù)據(jù),另一個(gè)為Function類,包含了功能函數(shù)的聲明。并且將這兩個(gè)類封裝在一個(gè)頭文件中。學(xué)生類:/Student.hclass Student protected: char name20; int number; double math,cpp,english,average,sum; public: Student();Student ( char n20, int num,double m,double c,double e ) ; double getsum(); /得到總分的函數(shù) double get

7、aver(); /得到平均分的函數(shù) friend class Fuction; ;功能函數(shù)類:/Student.hclass Fuctionpublic:void messin(); /錄入數(shù)據(jù)void delete(); /刪除信息void change(); /修改數(shù)據(jù)void search_sum(); /按恪總成績(jī)查詢void search_name(); /按名字查詢void show_student_date(); /輸出所有學(xué)生的數(shù)據(jù)void show_average(); /每個(gè)學(xué)生的平均成績(jī)void show_num(); /各科不及格人數(shù)void show(); /按總分查

8、詢排名int end();/結(jié)束;3.2功能函數(shù)設(shè)計(jì)將功能函數(shù)封裝在同一個(gè)cpp(Fuction.cpp)文件中,理清程序的條理,降低主函的冗雜性,便于程序的編寫和調(diào)試,同時(shí)增加程序的隱蔽性。(Student類中的兩個(gè)功能函數(shù),即getsum()和getaver()兩個(gè)簡(jiǎn)單的功能函數(shù)在此處略去。)(1)錄入數(shù)據(jù)函數(shù)(用于錄入數(shù)據(jù),存放于文件中)void Fuction:messin () /錄入數(shù)據(jù) char name20; char c; int number; double math,cpp,english; do cout請(qǐng)輸入姓名:name; cout請(qǐng)輸入學(xué)號(hào):number; cou

9、t請(qǐng)輸入數(shù)學(xué)成績(jī):math; cout請(qǐng)輸入C+成績(jī):cpp; cout請(qǐng)輸入英語成績(jī):english; ofstream outfile(f1.txt,ios:out|ios:app); if(!outfile) /判斷文件是否打開 cerrf1.txt can not openendl; exit(1);outfilename 學(xué)號(hào)?number 數(shù)學(xué)績(jī):math C+成績(jī):cpp 外語成績(jī):englishendl; outfile.close(); j+; Si=new Student(name, number,math, cpp, english); i+; cout數(shù)據(jù)錄入成功,想繼

10、續(xù)錄入嗎e(y/n)c; chris1=0; do /判斷是否繼續(xù)輸入 if(c!=y&c!=n) cout指令錯(cuò)洙誤請(qǐng)重新輸入!c; else chris1=1; while(chris1=0); while(c=y); /重復(fù)輸入 (2)刪除數(shù)據(jù)函數(shù)(用于刪除數(shù)據(jù))void Fuction:delete() /刪除信息 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)輸

11、入您要?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.clos

12、e(); cout數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎e(y/n)c; if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!”c; while(c=y); (3)修改數(shù)據(jù)函數(shù)(用于錄入數(shù)據(jù)的修改)void Fuction:change() /修改數(shù)據(jù) string sname,line,str,name; int nu;float eng,ma,com;int flag;char c;do flag=0; coutname; fstream fin(f1.txt,ios:in); ofstream outfile(f.txt,ios:trunc|ios:out); coutendl; while(

13、!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

14、:out);fstream inf(f.txt,ios:in);outfinf.rdbuf()endl;outf.close();inf.close(); coutc; coutendl; if(c!=y&c!=n) cout 指令錯(cuò)誤!請(qǐng)重新輸入!”endlc; while(c=y); (4)按總成績(jī)查詢函數(shù)(用于實(shí)現(xiàn)按總成績(jī)查詢)void Fuction:search_sum() /按總成績(jī)查詢 float SUM;char c;int flag; flag=0; cout請(qǐng)輸入您要查詢的學(xué)生的總成績(jī):SUM; for(int j=0;jgetsum()=SUM) flag=1;cout您

15、要查詢的學(xué)生是:(*Sj).nameendl;cout該生的信息為a: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); (5)按名字查詢函數(shù)(用于按名字查詢信息)void Fuction:search_name() /按名字查詢 char n20;char c;int flag; flag=0; cout請(qǐng)輸入要查詢的名

16、字: 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); (6)輸出學(xué)生所有的數(shù)據(jù)(用于輸出學(xué)生數(shù)據(jù))void Fuction:show_studen

17、t_date()/輸出所有學(xué)生的數(shù)據(jù) cout所有學(xué)生數(shù)據(jù)如?下?:endl; ifstream file; file.open(f1.txt,ios:in); coutfile.rdbuf(); file.close(); (7)各個(gè)學(xué)生的平均成績(jī)(用于輸出各個(gè)學(xué)生的平均成績(jī)) void Fuction:show_average()/每個(gè)學(xué)生的平均成績(jī) for(int m=0;mi;m+) cout(*Sm).name 學(xué)號(hào):(*Sm).number 總分:(*Sm).getsum() 均分:(*Sm).getaver()endl; (8)各科不及格人數(shù)(用于輸出各科不及格人數(shù))void F

18、uction:show_num()/各科不及格人數(shù) int m,n,k; m=0; n=0; k=0; for(j=0;jmathcppenglish60)k+; cout數(shù)學(xué)不及格人數(shù)為:mendl; coutc+不及格人數(shù)為:nendl; cout英語不及格人數(shù)為:kendl; (9)按總分查詢(永遠(yuǎn)總分查詢學(xué)生信息)void Fuction:show()/按恪總分查詢排名 int h,g,n;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

19、;an+1=temp; for(n=1;n=i;n+) coutanendl; (10)結(jié)束(用于結(jié)束程序)int Fuction:end()/結(jié)束 cout退出系統(tǒng)endl; return 0; 3.3主函數(shù)的設(shè)計(jì)由于程序采用封裝的形式,所以大大縮減主函數(shù)的篇幅,考慮到函數(shù)功能需要循環(huán)實(shí)現(xiàn),所以將功能函數(shù)進(jìn)行整合,利用函數(shù)的遞歸調(diào)用實(shí)現(xiàn)功能,所以主函數(shù)本體內(nèi)容其實(shí)只調(diào)用了整合的函數(shù)。重點(diǎn)在整合各個(gè)功能函數(shù),并利用函數(shù)的遞歸調(diào)用實(shí)現(xiàn)循環(huán)功能。主程序中需要調(diào)用的頭文件的聲明。#include#include#include #include#include#includeStudent.husi

20、ng namespace std; /主函數(shù)需要的各個(gè)頭文件的聲明。利用函數(shù)的遞歸調(diào)用,來實(shí)現(xiàn)函數(shù)的循環(huán),讓程序能夠在需要的情況下一直運(yùn)行下去。void menu() /利用遞歸調(diào)用實(shí)現(xiàn)循環(huán)的功能函數(shù)集合int a;/判斷變量int b;/判斷變量char w;/判斷變量Fuction f;/功能函數(shù)類 cout請(qǐng)選擇您需要的操作endl; cout(1)數(shù)據(jù)錄入endl; cout(2)刪除學(xué)生數(shù)據(jù)endl; cout(3)修改數(shù)據(jù)endl; cout(4)按總成績(jī)查詢endl; cout(5)按姓名查詢endl; cout(6)輸出所有學(xué)生的數(shù)據(jù)endl; cout(7)每個(gè)學(xué)生的平均成績(jī)

21、endl; cout(8)各科不及格人數(shù)endl; cout(9)按總分查詢排名endl; cout(10)退出a; /判斷輸入是否正確 if(a=1&a=11) b=1; else cout指令錯(cuò)誤!請(qǐng)重新輸入:endl; while(b=0); do if(a=1) f.messin(); /錄入數(shù)據(jù) if(a=2) f.delete(); /刪除信息if(a=3) f.change(); /修改數(shù)據(jù)if(a=4) f.search_sum();/按總成績(jī)查詢if(a=5) f.search_name();/按名字查詢if(a=6) f.show_student_date();/輸出所有學(xué)

22、生的數(shù)據(jù)if(a=7) f.show_average(); /每個(gè)學(xué)生的平均成績(jī)if(a=8) f.show_num();/各科不及格人數(shù)if(a=9) f.show();/按總分查詢排名if(a=10) f.end();/結(jié)束while(b=0);cout 您想繼續(xù)進(jìn)行其他操作嗎?(y/n):w; coutendl; if(w!=y&w!=n) cout 指令錯(cuò)誤!請(qǐng)重新輸入!endl; else b=1; menu(); while(b=0);int main() /主函數(shù)menu();return 0;第4章 系統(tǒng)調(diào)試運(yùn)行4.1逐步調(diào)試在每完成一個(gè)步驟以后,都及時(shí)地進(jìn)行調(diào)試,以便能夠及時(shí)

23、的發(fā)現(xiàn)問題,并解決問題。避免問題積壓,便于程序流暢的完成。4.2分級(jí)調(diào)試對(duì)每個(gè)功能函數(shù)進(jìn)行調(diào)試 ,更好的完善函數(shù)的功能。操作界面:圖41 操作界面功能1:數(shù)據(jù)錄入:圖42數(shù)據(jù)錄入功能2:刪除學(xué)生信息:圖43刪除信息課程設(shè)計(jì)體會(huì)本次實(shí)踐,是第一次使用C+編寫有實(shí)際使用功能的應(yīng)用程序。這次實(shí)踐的過程,也是對(duì)C+的一次摸索的過程。通過本次實(shí)踐,我的C+編程思路變得更加明確。本次實(shí)踐中,我還懂得了程序開發(fā)的一些重要步驟,比如需求分析、總體設(shè)計(jì)、程序模塊設(shè)計(jì)等。在此次實(shí)踐之前,我對(duì)C+的理解認(rèn)識(shí)有不足之處,某些知識(shí)點(diǎn)的掌握并不牢固。此次實(shí)踐,使用到了很多先前學(xué)習(xí)的編程技巧和C+知識(shí),等于一次變相的綜合復(fù)

24、習(xí),對(duì)我C+語言的使用能力有了不錯(cuò)的提升。參考文獻(xiàn)1譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì).清華大學(xué)出版社2譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì)題解與上機(jī)指導(dǎo).清華大學(xué)出版社3譚浩強(qiáng).C+程序設(shè)計(jì)實(shí)踐指導(dǎo).清華大學(xué)出版社4譚浩強(qiáng).C語言程序設(shè)計(jì).清華大學(xué)出版社5大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)案例教程6計(jì)算機(jī)信息技術(shù)基礎(chǔ)教程7計(jì)算機(jī)與信息技術(shù)應(yīng)用指導(dǎo)/Student.hclass Student protected: char name20; int number; double math,cpp,english,average,sum; public: Student();Student ( char n20, int n

25、um,double m,double c,double e ) ; double getsum(); /得到總分的函數(shù) double getaver(); /得到平均分的函數(shù) friend class Fuction; ;/Student.hclass Fuctionpublic:void putin(); /錄入數(shù)據(jù)void dele(); /刪除信息void change(); /修改數(shù)據(jù)void search_sum(); /按恪總成績(jī)查詢void search_name(); /按名字查詢void show_student_date(); /輸出所有學(xué)生的數(shù)據(jù)void show_ave

26、rage(); /每個(gè)學(xué)生的平均成績(jī)void show_num(); /各科不及格人數(shù)void show(); /按總分查詢排名int end();/結(jié)束;void Fuction:putin () /錄入數(shù)據(jù) char name20; char c; int number; double 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; ofstream outfile(f1.txt,ios:out|ios:app); i

27、f(!outfile) /判斷文件是否打開 cerrf1.txt can not openendl; exit(1);outfilename 學(xué)號(hào)?number 數(shù)學(xué)績(jī):math C+成績(jī):cpp 外語成績(jī):englishendl; outfile.close(); j+; Si=new Student(name, number,math, cpp, english); i+; cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎e(y/n)c; chris1=0; do /判斷是否繼續(xù)輸入 if(c!=y&c!=n) cout指令錯(cuò)洙誤請(qǐng)重新輸入!c; else chris1=1; while(chris1=

28、0); while(c=y); /重復(fù)輸入 void Fuction:dele() /刪除信息 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.f

29、ind( ,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ù)刪除嗎e(y/n)c; if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!”c; while(c=y); void Fuction:change() /修改數(shù)據(jù) string snam

30、e,line,str,name; int nu;float eng,ma,com;int flag;char c;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)outfilelineend

31、l;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(); coutc; coutendl; if(c!=y&c!=n) cout 指令錯(cuò)誤!請(qǐng)重新輸入!”endlc; wh

32、ile(c=y); void Fuction:search_sum() /按總成績(jī)查詢 float SUM;char c;int flag; flag=0; cout請(qǐng)輸入您要查詢的學(xué)生的總成績(jī):SUM; for(int j=0;jgetsum()=SUM) flag=1;cout您要查詢的學(xué)生是:(*Sj).nameendl;cout該生的信息為a: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

33、!=y&c!=n)cout指令錯(cuò)誤!請(qǐng)重新輸入!c; ; while(c=y); void Fuction:search_name() /按名字查詢 char n20;char c;int flag; 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

34、對(duì)不起您要查詢的學(xué)生不存在,請(qǐng)查證后再輸入!endl;coutc;if(c!=y&c!=n)cout指令錯(cuò)誤!請(qǐng)重新輸入:c;while(c=y); void Fuction:show_student_date()/輸出所有學(xué)生的數(shù)據(jù) cout所有學(xué)生數(shù)據(jù)如?下?:endl; ifstream file; file.open(f1.txt,ios:in); coutfile.rdbuf(); file.close(); void Fuction:show_average()/每個(gè)學(xué)生的平均成績(jī) for(int m=0;mi;m+) cout(*Sm).name 學(xué)號(hào):(*Sm).number

35、總分:(*Sm).getsum() 均分:(*Sm).getaver()endl; void Fuction:show_num()/各科不及格人數(shù) int m,n,k; m=0; n=0; k=0; for(j=0;jmathcppenglish60)k+; cout數(shù)學(xué)不及格人數(shù)為:mendl; coutc+不及格人數(shù)為:nendl; cout英語不及格人數(shù)為:kendl; void Fuction:show()/按恪總分查詢排名 int h,g,n;float a100,temp; for(g=0;gi;g+) aj=(*Sg).getsum();j+; for(h=0;hi;h+) fo

36、r(n=0;nan+1) temp=an;an=an+1;an+1=temp; for(n=1;n=i;n+) coutanendl; int Fuction:end()/結(jié)束 cout退出系統(tǒng)endl; return 0; /main.cpp#include#include#include #include#include#includeStudent.husing namespace std; /主函數(shù)需要的各個(gè)頭文件的聲明。 void menu() /利用遞歸調(diào)用實(shí)現(xiàn)循環(huán)的功能函數(shù)集合int a;/判斷變量int b;/判斷變量char w;/判斷變量Fuction f;/功能函數(shù)類 c

37、out請(qǐng)選擇您需要的操作endl; cout(1)數(shù)據(jù)錄入endl; cout(2)刪除學(xué)生數(shù)據(jù)endl; cout(3)修改數(shù)據(jù)endl; cout(4)按總成績(jī)查詢endl; cout(5)按姓名查詢endl; cout(6)輸出所有學(xué)生的數(shù)據(jù)endl; cout(7)每個(gè)學(xué)生的平均成績(jī)endl; cout(8)各科不及格人數(shù)endl; cout(9)按總分查詢排名endl; cout(10)退出a; /判斷輸入是否正確 if(a=1&a=11) b=1; else cout指令錯(cuò)誤!請(qǐng)重新輸入:endl; while(b=0); do if(a=1) f.putin(); /錄入數(shù)據(jù) i

38、f(a=2) f.dele(); /刪除信息if(a=3) f.change(); /修改數(shù)據(jù)if(a=4) f.search_sum();/按總成績(jī)查詢if(a=5) f.search_name();/按名字查詢if(a=6) f.show_student_date();/輸出所有學(xué)生的數(shù)據(jù)if(a=7) f.show_average(); /每個(gè)學(xué)生的平均成績(jī)if(a=8) f.show_num();/各科不及格人數(shù)if(a=9) f.show();/按總分查詢排名if(a=10) f.end();/結(jié)束while(b=0);cout 您想繼續(xù)進(jìn)行其他操作嗎?(y/n):w; coutendl; if(w!=y&w!=n) cout 指令錯(cuò)誤!請(qǐng)重新輸入!endl; else b=1; menu(); while(b=0);int main() /主函數(shù)menu();return 0;31

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

相關(guān)資源

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

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

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


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