版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 研究生成績管理系統(tǒng)</b></p><p> C++ 程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告</p><p> 中南大學(xué)信息科學(xué)與工程學(xué)院</p><p><b> 專業(yè):電氣信息類</b></p><p><b> 班級:————</b></p>
2、<p><b> 學(xué)號:————</b></p><p><b> 姓名:————</b></p><p> 選題:研究生成績管理系統(tǒng)</p><p><b> 目錄</b></p><p> 一.封面---------------------------
3、---1</p><p> 二.目錄頁--------------------------------2</p><p> 三.基本內(nèi)容和要求------------------------3-4</p><p> 四.軟件設(shè)計(jì)整體規(guī)劃及方案----------------5</p><p> 五.程序功能簡介------------
4、--------------6</p><p> 六.主體內(nèi)容------------------------------6-30</p><p> 1.設(shè)計(jì)分析----------------------------6-7</p><p> 2.程序結(jié)構(gòu)----------------------------7</p><p> 3
5、.各模塊功能、程序說明與源程序---------7-25</p><p> 4.操作方法與試驗(yàn)結(jié)果------------------26-29</p><p> 5.設(shè)計(jì)體會----------------------------30</p><p> 6.參考文獻(xiàn)----------------------------30</p><p
6、><b> 三.基本內(nèi)容和要求</b></p><p> C++研究生成績管理系統(tǒng)</p><p> 設(shè)計(jì)一個(gè)研究生基本信息管理案例,實(shí)現(xiàn)對不同學(xué)制的研究生的信息管理。研究生的學(xué)制包括:學(xué)術(shù)碩士和工程碩士。定義一個(gè)基本的研究生類,基本信息包括:專業(yè),發(fā)表論文((名稱與級別1、2、3)可以多篇,最多三篇),論文成績,總成績;工程碩士屬性包括:領(lǐng)域,參與項(xiàng)目(
7、名稱與級別A,B,C…)項(xiàng)目成績,總成績。計(jì)算方式如下</p><p> 學(xué)術(shù)碩士論文成績計(jì)算:各個(gè)級別的論文得分為:級別*10,每個(gè)學(xué)生論文最高90分:假設(shè)某研究生發(fā)表兩篇論文,級別分別為1、2,那么論文成績=(10\90+20\90)*100,總成績=課程成績*0.7+論文成績*0.3;</p><p> 工程碩士項(xiàng)目成績計(jì)算:每個(gè)學(xué)生只參與一項(xiàng)項(xiàng)目,各個(gè)級別得分:A級90,B級7
8、5,C級60,不參與項(xiàng)目得分為0。</p><p> 總成績=課程成績*0.5+項(xiàng)目成績*0.5;</p><p><b> 基本功能與技術(shù)要求</b></p><p> 數(shù)據(jù)文件管理功能:利用輸入輸出流創(chuàng)建新文件、打開文件、保存文件。</p><p> 計(jì)算與統(tǒng)計(jì)功能:采用靜態(tài)數(shù)據(jù)成員與成員函數(shù)完成記錄中的相關(guān)
9、數(shù)據(jù)統(tǒng)計(jì)。</p><p> 能夠打開已存在的數(shù)據(jù)表文件,對數(shù)據(jù)表中與某關(guān)鍵字匹配的相關(guān)記錄進(jìn)行數(shù)據(jù)統(tǒng)計(jì)(包括總數(shù)、平均值、分段信息),例如:按總成績得分為100、90-99、80-89、70-79、60-69和不及格學(xué)生的人數(shù),以及所占的百分比。</p><p> 計(jì)算每個(gè)研究生的總成績。</p><p> 記錄管理功能:利用繼承與派生思想創(chuàng)建不同的類;記錄
10、的管理采用鏈表或者指針數(shù)組實(shí)現(xiàn);采用抽象類、虛函數(shù)等實(shí)現(xiàn)對象與函數(shù)的動(dòng)態(tài)關(guān)聯(lián),體現(xiàn)多態(tài)性。</p><p> 輸入\添加\插入記錄:利用重載運(yùn)算符“>>”完成對任意一條記錄輸入、添加或插入數(shù)據(jù)表中,并保存到數(shù)據(jù)文件中。</p><p> 查詢、顯示記錄:能夠打開已經(jīng)存在的數(shù)據(jù)表文件,根據(jù)用戶要求按所給記錄關(guān)鍵字查詢一個(gè)或多個(gè)相關(guān)聯(lián)記錄的各項(xiàng)信息。利用重載運(yùn)算符“<<”輸出個(gè)
11、對象的信息。</p><p> 修改記錄:能夠打開已存在的數(shù)據(jù)表文件,并對確定的任意記錄進(jìn)行修改,在修改過程中,應(yīng)顯示記錄信息,給出確認(rèn)提示,并對更新的記錄信息進(jìn)行文件保存。</p><p> 刪除記錄:能夠打開已存在的數(shù)據(jù)表文件,可以刪除數(shù)據(jù)表中的任一記錄,要求具備邏輯刪除(具有恢復(fù)功能)和物理刪除功能,并對更新的數(shù)據(jù)表信息進(jìn)行文件保存。</p><p>
12、四.軟件設(shè)計(jì)整體規(guī)劃及方案</p><p> 1.對于研究生信息,建立基類Graduated,并由此派生出兩種研究生學(xué)制:學(xué)術(shù)碩士Xueshu和工程碩士Gongcheng,以此實(shí)現(xiàn)對基本信息的錄入。</p><p> 2.在編寫程序過程中,可以用到重載,派生,多態(tài)性,鏈表等功能來實(shí)現(xiàn)相應(yīng)的功能。</p><p><b> 3.大致方案:</b&
13、gt;</p><p> 對研究生各類論文和項(xiàng)目進(jìn)行收集和錄入。先定義一個(gè)研究生基類,錄入兩類研究生的基本個(gè)人信息:班級,學(xué)號,姓名,性別等。由研究生基類派生出兩類研究生:學(xué)術(shù)碩士研究生和工程碩士研究生。在研究生個(gè)人基本信息錄入成功后,再設(shè)計(jì)模塊對各類研究生的論文和項(xiàng)目信息進(jìn)行收集,進(jìn)行計(jì)分和成績統(tǒng)計(jì)及計(jì)算平均分和各分段所占相應(yīng)總體的成績。在完成相應(yīng)信息和成績的錄入后再輸出各類研究生的基本信息及成績和各分段所占
14、相應(yīng)總體的成績,在系統(tǒng)已經(jīng)錄入了各類研究生的各項(xiàng)信息的前提下,使用輸出功能可以顯示各類研究生的所有信息及相應(yīng)成績的相關(guān)內(nèi)容等等。具體包括兩類研究生的姓名,學(xué)號,性別,論文成績/項(xiàng)目成績,論文/項(xiàng)目題目,以及各分段占總體相應(yīng)的比例。然后實(shí)現(xiàn)查看各類研究生各方面的信息功能,再返回到主菜單進(jìn)行之后的相應(yīng)操作,選擇插入、修改、刪除等所需操作來繼續(xù)進(jìn)行系統(tǒng)的完善。然后在所有操作完成后對所記錄的信息進(jìn)行保存,方便在下次使用時(shí)直接對已錄入并記錄的信息
15、進(jìn)行查詢或者其它相應(yīng)操作。</p><p><b> 五.程序功能簡介</b></p><p> 本系統(tǒng)主要用于對不同種類(學(xué)術(shù)碩士、工程碩士兩種)的研究生各類成績進(jìn)行信息收集和管理。通過本系統(tǒng),可以將各個(gè)類的研究生的個(gè)人基本信息和相應(yīng)成績輸入到系統(tǒng)中,由系統(tǒng)對不同種類的研究生的成績進(jìn)行相應(yīng)各類計(jì)算和錄入,再保存到相應(yīng)文件中,實(shí)現(xiàn)信息的錄入和記錄,便于進(jìn)行相關(guān)查詢
16、和相關(guān)管理操作。</p><p> 此程序可以實(shí)現(xiàn):錄入、添加各類研究生信息,刪除各類研究生相關(guān)信息,修改各類研究生信息,查詢各類研究生信息,計(jì)算與統(tǒng)計(jì)各類研究生相關(guān)信息并將所錄入的信息保存至txt文件,在查詢時(shí)可顯示之前所錄入的相關(guān)信息。</p><p><b> 六.主體內(nèi)容</b></p><p> 1.設(shè)計(jì)分析:對于一個(gè)管理系統(tǒng)而
17、言,主函數(shù),函數(shù)以及成員函數(shù)是其重要組成部分。主函數(shù)的主要任務(wù)是確定所需調(diào)用函數(shù),根據(jù)課程設(shè)計(jì)要求,該系統(tǒng)至少應(yīng)該實(shí)現(xiàn)以下幾種基本功能:輸出研究生各類基本信息,刪除所需的各類研究生相關(guān)信息,修改各類研究生相關(guān)信息,查找各類研究生相關(guān)信息,保存所輸入的研究生相關(guān)信息。實(shí)現(xiàn)以上任何一種功能都必須要調(diào)用一個(gè)函數(shù),而編寫函數(shù)的目的是編寫一個(gè)能實(shí)現(xiàn)某種功能的函數(shù)供主函數(shù)調(diào)用。根據(jù)C++面向?qū)ο蟮奶攸c(diǎn),函數(shù)可以調(diào)用類中的成員函數(shù)。這樣主函數(shù)和函數(shù)以
18、及成員函數(shù)之間就層次分明,關(guān)系清晰明了,避免過于繁長。不同的函數(shù)調(diào)用的成員函數(shù)是不盡相同的,大體上每個(gè)函數(shù)都有一個(gè)相對應(yīng)的成員函數(shù),這些成員函數(shù)都是共有函數(shù),并且只被其對應(yīng)函數(shù)僅且只調(diào)用一次。當(dāng)然,每個(gè)函數(shù)不可能只調(diào)用一個(gè)成員函數(shù)。而成員函數(shù)是一個(gè)系統(tǒng)的靈魂所在,因?yàn)樗械奶幚磉^程的細(xì)節(jié)都在成員函數(shù)中完成的。編寫成員函數(shù)實(shí)際上就是一個(gè)算法的實(shí)現(xiàn)。成員函數(shù)的設(shè)計(jì)包括兩方面內(nèi)容:成員函數(shù)算法的實(shí)現(xiàn)和成員函數(shù)過程的實(shí)現(xiàn)。 有了這些重
19、要的部分,一個(gè)程序也就具備了初步的條件,一個(gè)管理系統(tǒng)的模型就被建立了起來。</p><p> 2.程序結(jié)構(gòu):主界面1----輸入菜單----選擇操作----選擇所要錄入研究生類別----錄入相關(guān)信息和成績----修改\插入\查詢\刪除\退出。</p><p> 3.各模塊功能、源程序及程序說明:</p><p><b> 1.頭文件</b>
20、;</p><p> //#include "stdafx.h"</p><p> #include <fstream></p><p> #include <iostream></p><p> #include <string></p><p>
21、using namespace std;</p><p><b> 2.重載</b></p><p> class Xueshu;</p><p> istream& operator>>(istream &in,Xueshu &x); </p><p> ostream&am
22、p; operator<< (ostream &out,Xueshu &x);</p><p><b> 3.基類與派生模塊</b></p><p> class Graduated //研究生類 為基類</p><p><b> {publ
23、ic:</b></p><p> int num; //學(xué)號</p><p> string name; //姓名</p><p> char s //性別</p>
24、<p> int age; //年齡</p><p> float score; //課程分?jǐn)?shù) </p><p><b> };</b></p><p> //////////////////////
25、///////////////////////////////////////////////////////////////</p><p> class Gongcheng; //全局聲明</p><p> class Xueshu:public Graduated //學(xué)術(shù)碩士類</p>&l
26、t;p><b> {public:</b></p><p> string major; </p><p> Paper pap[3]; </p><p> float scopap; //學(xué)術(shù)碩士論文成績</
27、p><p> float sump; //學(xué)術(shù)碩士總成績</p><p><b> public:</b></p><p> static float sum; //學(xué)術(shù)碩士全體總成績</p><p> static int c
28、ount; //學(xué)術(shù)碩士總?cè)藬?shù)</p><p> static float average; //學(xué)術(shù)碩士平均成績</p><p> static int a[6]; //學(xué)術(shù)碩士總分分段人數(shù)</p><p> friend void ifshuo
29、shi(Xueshu x[],Gongcheng g[]);</p><p> friend void ofshuoshi(Xueshu x[],Gongcheng g[]);</p><p> friend istream& operator>>(istream &in,Xueshu &x); //重載運(yùn)算符>>為"in&q
30、uot;</p><p> friend ostream& operator<< (ostream &out,Xueshu &x); //重載運(yùn)算符<<為"out"</p><p> void sumpap(); //成員函數(shù),求學(xué)術(shù)碩士論文成績</p>
31、<p> void sumsump(); //成員函數(shù),求學(xué)術(shù)碩士論文總成績</p><p> void sumsum(); //成員函數(shù),求學(xué)術(shù)碩士總成績,為以后的函數(shù)求平分</p><p> static void aver(); //
32、成員函數(shù),求學(xué)術(shù)碩士平均成績</p><p> void tongji(); //成員函數(shù),統(tǒng)計(jì)不同分段的情況</p><p> int chanum(int n); //成員函數(shù),用于學(xué)號的查詢是否正確,然后返回相應(yīng)值</p><p> int chaname(strin
33、g n); //成員函數(shù),用于姓名的查詢是否正確,然后返回相應(yīng)值</p><p> int renum(); //成員函數(shù),重置學(xué)號,使其歸0,便于查詢功能的實(shí)現(xiàn)</p><p><b> };</b></p><p> ///////////////////
34、/////////////////////////////////////////////////////////////////////////</p><p> class Gongcheng:public Graduated //工程碩士類</p><p><b> {public:</b></p><p> stri
35、ng block; //領(lǐng)域</p><p> Project pro; //項(xiàng)目</p><p> float scopro; //工程碩士項(xiàng)目成績</p><p> float sump;
36、 //工程碩士總成績</p><p><b> public:</b></p><p> static float sum; //靜態(tài)數(shù)據(jù)成員求和</p><p> static int count; //靜態(tài)數(shù)據(jù)成員累計(jì)</p><p>
37、 static float average; //求靜態(tài)數(shù)據(jù)成員全體平均成績</p><p> static int a[6]; //求靜態(tài)數(shù)據(jù)成員存放6個(gè)分段的人數(shù)</p><p> friend void ifshuoshi(Xueshu x[],Gongcheng g[]); //從文件輸入信息</p>
38、<p> friend void ofshuoshi(Xueshu x[],Gongcheng g[]);//將信息保存于文件中</p><p> friend istream& operator>>(istream&in,Gongcheng&g); //友元重載輸入函數(shù)輸入工程碩士</p><p> friend ostream&
39、amp; operator<< (ostream&out,Gongcheng&g);//友元重載輸出函數(shù)輸出工程碩士</p><p> void sumpro(); //求成員函數(shù)工程碩士項(xiàng)目成績</p><p> void sumsump(); //求成員函數(shù)工程碩士總成績&
40、lt;/p><p> void sumsum(); //求成員函數(shù)工程碩士全體總成績</p><p> static void aver(); //求成員函數(shù)工程碩士全體平均成績</p><p> void tongji(); //成員函數(shù)統(tǒng)計(jì)不同分
41、段信息</p><p> int chanum(int n); //成員函數(shù),用于學(xué)號的查詢是否正確,然后返回相應(yīng)的值</p><p> int chaname(string n); //成員函數(shù),用于姓名的查詢是否正確,然后返回相應(yīng)的值</p><p> int return_num2();
42、 //成員函數(shù),重置學(xué)號,使其歸0, 便于查詢功能的實(shí)現(xiàn)</p><p><b> }</b></p><p> 3.聲明、定義函數(shù)與文件操作</p><p> class Paper //論文類</p>&l
43、t;p><b> {public:</b></p><p> Paper():name("as"),level(0){} //構(gòu)造函數(shù)進(jìn)行初始化</p><p> int level; //論文等
44、級</p><p> string name; //論文題目</p><p> void input(); //構(gòu)造一個(gè)輸入論文的成員函數(shù)</p><p> void output();
45、 //構(gòu)造一個(gè)輸出論文的成員函數(shù)</p><p><b> };</b></p><p> void Paper:: input()</p><p><b> {</b></p><p> cout<<"請
46、輸入學(xué)術(shù)碩士論文題目:";</p><p> cin>>name;</p><p> cout<<"請輸入學(xué)術(shù)碩士論文等級(1,2,3):";</p><p> cin>>level;</p><p> for(;level!=1&&level!=2&a
47、mp;&level!=3;)</p><p><b> {</b></p><p> cout<<"!輸入錯(cuò)誤!請重新輸入!:";</p><p> cin>>level;</p><p><b> }</b></p><
48、;p><b> }</b></p><p> void Paper::output()</p><p><b> {</b></p><p> cout<<"該學(xué)術(shù)碩士論文題目為:"<<name<<endl;</p><p>
49、cout<<"該學(xué)術(shù)碩士論文等級為:"<<level<<endl;</p><p><b> } </b></p><p> ////////////////////////////////////////////////////////////////////////////////////////<
50、/p><p> class Project //項(xiàng)目類</p><p><b> {public:</b></p><p> Project():name("as"),level('a'){}
51、 //構(gòu)造函數(shù)進(jìn)行初始化</p><p> char level; //項(xiàng)目等級</p><p> string name; //項(xiàng)目名稱</p><p> void
52、input(); //構(gòu)造一個(gè)輸入項(xiàng)目的成員函數(shù)</p><p> void output(); //構(gòu)造一個(gè)輸出論文的成員函數(shù)</p><p><b> };</b></p><p&
53、gt; void Project:: input()</p><p><b> {</b></p><p> cout<<"請輸入工程碩士參與項(xiàng)目名稱:";</p><p> cin>>name;</p><p> cout<<"請輸入工程碩士項(xiàng)
54、目得分(A,B,C):";</p><p> cin>>level;</p><p> for(;level!='A'&&level!='B'&&level!='C';)</p><p><b> {</b></p><
55、;p> cout<<"!輸入錯(cuò)誤!請重新輸入:";</p><p> cin>>level;</p><p><b> }</b></p><p><b> }</b></p><p> void Project::output()<
56、/p><p><b> {</b></p><p> cout<<"該工程碩士參與項(xiàng)目為:"<<name<<endl;</p><p> cout<<"該工程碩士項(xiàng)目等級為:"<<level<<endl;</p>&l
57、t;p><b> } </b></p><p> //////////////////////////////////////////////////////////////////////////////////</p><p> class Gongcheng; /
58、/全局聲明</p><p> class Xueshu:public Graduated //學(xué)術(shù)碩士類</p><p><b> {public:</b></p><p> string major; </p><p>
59、 Paper pap[3]; </p><p> float scopap; //學(xué)術(shù)碩士論文成績</p><p> float sump; //學(xué)術(shù)碩士總成績</p&g
60、t;<p><b> public:</b></p><p> static float sum; //學(xué)術(shù)碩士全體總成績</p><p> static int count; //學(xué)術(shù)碩士總?cè)藬?shù)&
61、lt;/p><p> static float average; //學(xué)術(shù)碩士平均成績</p><p> static int a[6]; //學(xué)術(shù)碩士總分分段人數(shù)</p><p> friend void ifshuo
62、shi(Xueshu x[],Gongcheng g[]);</p><p> friend void ofshuoshi(Xueshu x[],Gongcheng g[]);</p><p> friend istream& operator>>(istream &in,Xueshu &x); //重載運(yùn)輸符>>為"
63、in"</p><p> friend ostream& operator<< (ostream &out,Xueshu &x); //重載運(yùn)算符<<為"out"</p><p> void sumpap(); //成員函
64、數(shù),求學(xué)術(shù)碩士論文成績</p><p> void sumsump(); //成員函數(shù),求學(xué)術(shù)碩士論文總成績</p><p> void sumsum(); //成員函數(shù),求學(xué)術(shù)碩士總成績,為以后的函數(shù)求平均分</p&g
65、t;<p> static void aver(); //成員函數(shù),求學(xué)術(shù)碩士平均成績</p><p> void tongji(); //成員函數(shù),統(tǒng)計(jì)不同分段的情況</p><p> int chanum(int
66、n); //成員函數(shù),用于學(xué)號的查詢是否正確,然后返回相應(yīng)的值</p><p> int chaname(string n); //成員函數(shù),用于姓名的查詢是否正確,然后返回相應(yīng)的值</p><p> int renum();
67、 //成員函數(shù),重置學(xué)號,使其歸0,便于查詢功能的實(shí)現(xiàn)</p><p><b> };</b></p><p> float Xueshu::sum=0;</p><p> int Xueshu::count=0;</p><p> float Xu
68、eshu::average=0;</p><p> int Xueshu::a[6]={0,0,0,0,0,0};</p><p> istream& operator>>(istream&in,Xueshu&x) //重載運(yùn)算符>></p><p><b> {&
69、lt;/b></p><p><b> int i;</b></p><p> char j='y'; </p><p> cout<<"請輸入學(xué)術(shù)碩士學(xué)號:";</p><p> in>>x.num;</p><p>
70、 cout<<"請輸入學(xué)術(shù)碩士姓名:";</p><p> in>>x.name;</p><p> cout<<"請輸入學(xué)術(shù)碩士性別【m(男)/f(女)】:";</p><p> in>>x.sex;</p><p> for(;x.sex!=&
71、#39;m'&&x.sex!='f';)</p><p><b> {</b></p><p> cout<<"!輸入錯(cuò)誤!請重新輸入!:";</p><p> in>>x.sex;</p><p><b> }<
72、/b></p><p> cout<<"請輸入學(xué)術(shù)碩士年齡:";</p><p> in>>x.age;</p><p> cout<<"請輸入學(xué)術(shù)碩士成績:"; </p><p> in>>x.score;&
73、lt;/p><p> for(;x.score<0||x.score>100;)</p><p><b> {</b></p><p> cout<<"!成績無效!請重新輸入:";</p><p> in>>x.score;</p><p&g
74、t;<b> }</b></p><p> cout<<"請輸入學(xué)術(shù)碩士專業(yè):";</p><p> in>>x.major;</p><p> for(i=0;i<3&&j=='y';i++) </p>
75、;<p><b> {</b></p><p> x.pap[i].input();</p><p> cout<<"(y/n)繼續(xù)/停止輸入學(xué)術(shù)論文:";</p><p><b> in>>j;</b></p><p><b&
76、gt; }</b></p><p> return in;</p><p><b> }</b></p><p> ostream& operator<< (ostream&out,Xueshu&x) //重載運(yùn)算符<<</p>
77、<p><b> {</b></p><p><b> int i;</b></p><p> out<<"該學(xué)術(shù)碩士學(xué)號為:"<<x.num<<endl;</p><p> out<<"該學(xué)術(shù)碩士姓名為:"<
78、<x.name<<endl;</p><p> out<<"該學(xué)術(shù)碩士性別為:"<<x.sex<<endl;</p><p> out<<"該學(xué)術(shù)碩士年齡為:"<<x.age<<endl;</p><p> out<<
79、"該學(xué)術(shù)碩士課程成績?yōu)椋?quot;<<x.score<<endl;</p><p> out<<"該學(xué)術(shù)碩士專業(yè)為:"<<x.major<<endl;</p><p> for(i=0;i<3&&(x.pap[i].level==1||x.pap[i].level==2||
80、x.pap[i].level==3);i++)</p><p> x.pap[i].output();</p><p> out<<"該學(xué)術(shù)碩士總成績?yōu)椋?quot;<<x.sump<<endl;</p><p> return out;</p><p><b> }</b
81、></p><p> void Xueshu::sumpap() </p><p><b> {</b></p><p><b> scopap=0;</b></p><p><b> int i;</b></p>
82、;<p> for(i=0;i<3&&(pap[i].level==1||pap[i].level==2||pap[i].level==3);i++) </p><p> scopap+=pap[i].level/9*100;</p><p><b> }</b></p><p> vo
83、id Xueshu::sumsump() </p><p><b> {</b></p><p><b> sumpap();</b></p><p> sump=(float)(scopap*0.3+score*0.7);</p><p><b>
84、; }</b></p><p> void Xueshu::sumsum() </p><p><b> {</b></p><p> sum+=sump;</p><p><b> count++;</b></p><p>&
85、lt;b> }</b></p><p> void Xueshu::aver() </p><p><b> {</b></p><p> average=sum/count;</p><p><b> }</b></p><p>
86、 void Xueshu::tongji() </p><p><b> {</b></p><p> if(sump==100)a[0]++;</p><p> if(sump>=90&&sump<100)a[1]++;</p><p> if(sump>=80&a
87、mp;&sump<90)a[2]++;</p><p> if(sump>=70&&sump<80)a[3]++;</p><p> if(sump>=60&&sump<70)a[4]++;</p><p> if(sump<60)a[5]++;</p><p>
88、;<b> }</b></p><p> int Xueshu::chanum(int n)</p><p><b> {</b></p><p> if(num==n) </p><p><b> return 1;</b></p>
89、<p><b> else </b></p><p><b> return 0;</b></p><p><b> }</b></p><p> int Xueshu::chaname(string n)</p><p><b> {<
90、/b></p><p> if(name==n)</p><p><b> return 1;</b></p><p><b> else </b></p><p><b> return 0;</b></p><p><b>
91、 }</b></p><p> int Xueshu::renum()</p><p><b> {</b></p><p> return num;</p><p><b> }</b></p><p> ///////////////////////
92、//////////////////////////////////////////////////////////////////</p><p> class Gongcheng:public Graduated //工程碩士類</p><p><b> {public:</b></p><p&g
93、t; string block; //領(lǐng)域</p><p> Project pro; //項(xiàng)目</p><p> float scopro; //工程碩士項(xiàng)目成
94、績</p><p> float sump; //工程碩士總成績</p><p><b> public:</b></p><p> static float sum; //靜態(tài)數(shù)據(jù)成員求和<
95、;/p><p> static int count; //靜態(tài)數(shù)據(jù)成員累計(jì)</p><p> static float average; //靜態(tài)數(shù)據(jù)成員,求工程碩士全體平均成績</p><p> static int a[6];
96、 //靜態(tài)數(shù)據(jù)成員,求工程碩士存放6個(gè)分段的人數(shù)</p><p> friend void ifshuoshi(Xueshu x[],Gongcheng g[]); //從文件輸入信息</p><p> friend void ofshuoshi(Xueshu x[],Gongcheng g[]); //將信息保存于文件中
97、</p><p> friend istream& operator>>(istream&in,Gongcheng&g); //友元重載輸入函數(shù)輸入工程碩士</p><p> friend ostream& operator<< (ostream&out,Gongcheng&g);//友元重載輸出函數(shù)輸出工程碩士
98、</p><p> void sumpro(); //求成員函數(shù)工程碩士項(xiàng)目成績</p><p> void sumsump(); //求成員函數(shù)工程碩士總成績</p><p> void sumsum();
99、 //求成員函數(shù)工程碩士全體總成績</p><p> static void aver(); //求成員函數(shù)工程碩士全體平均成績</p><p> void tongji(); //成員函數(shù)統(tǒng)計(jì)
100、不同分段信息</p><p> int chanum(int n); //成員函數(shù),用于學(xué)號的查詢是否正確,然后返回相應(yīng)的值</p><p> int chaname(string n); //成員函數(shù),用于姓名的查詢是否正確,然后返回相應(yīng)的值</p>
101、<p> int return_num2(); //成員函數(shù),重置學(xué)號,使其歸0,便于查詢功能的實(shí)現(xiàn)</p><p><b> };</b></p><p> float Gongcheng::sum=0;</p><p> int Gongcheng::coun
102、t=0;</p><p> float Gongcheng::average=0;</p><p> int Gongcheng::a[6]={0,0,0,0,0,0};</p><p> istream& operator>>(istream&in,Gongcheng&g) //重載 >>
103、</p><p><b> {</b></p><p><b> char j;</b></p><p> cout<<"請輸入工程碩士學(xué)號:";</p><p> in>>g.num;</p><p> cout<
104、<"請輸入工程碩士姓名:";</p><p> in>>g.name;</p><p> cout<<"請輸入工程碩士性別【m(女)/f(男)】:";</p><p> in>>g.sex;</p><p> for(;g.sex!='m'
105、;&&g.sex!='f';)</p><p><b> {</b></p><p> cout<<"!輸入錯(cuò)誤!請重新輸入:";</p><p> in>>g.sex;</p><p><b> }</b><
106、/p><p> cout<<"請輸入工程碩士年齡:";</p><p> in>>g.age;</p><p> cout<<"請輸入工程碩士成績:";</p><p> in>>g.score;</p><p> for(
107、;g.score<0||g.score>100;)</p><p><b> {</b></p><p> cout<<"抱歉!成績無效!請重新輸入:";</p><p> in>>g.score;</p><p><b> }</b>
108、</p><p> cout<<"請輸入工程碩士領(lǐng)域名稱:";</p><p> in>>g.block;</p><p> cout<<"(y/n)是/否輸入工程項(xiàng)目:";</p><p><b> in>>j;</b>&l
109、t;/p><p> if(j=='y')</p><p> g.pro.input();</p><p> return in;</p><p><b> }</b></p><p> ostream& operator<< (ostream&ou
110、t,Gongcheng&g) //重載 <<</p><p><b> {</b></p><p> out<<"該工程碩士學(xué)號為:"<<g.num<<endl;</p><p> out<<"該工程碩士姓名為:"
111、;<<g.name<<endl;</p><p> out<<"該工程碩士性別為:"<<g.sex<<endl; </p><p> out<<"該工程碩士年齡為:"<<g.age<<endl;</p><p> out&l
112、t;<"該工程碩士成績?yōu)椋?quot;<<g.score<<endl;</p><p> out<<"該工程碩士領(lǐng)域?yàn)椋?quot;<<g.block<<endl;</p><p> if(g.pro.level=='A'||g.pro.level=='B'||g.pr
113、o.level=='C')</p><p> g.pro.output();</p><p> out<<"該工程碩士總成績?yōu)椋?quot;<<g.sump<<endl;</p><p> return out;</p><p><b> }</b>&
114、lt;/p><p> void Gongcheng::sumpro() //求工程碩士項(xiàng)目成績 </p><p><b> {</b></p><p><b> scopro=0;</b></p>&l
115、t;p> if(pro.level=='A'||pro.level=='B'||pro.level=='C')</p><p><b> {</b></p><p> if(pro.level=='A')</p><p> scopro=90;</p>
116、<p> if(pro.level=='B')</p><p> scopro=75;</p><p> if(pro.level=='C')</p><p> scopro=60;</p><p><b> }</b></p><p><
117、b> }</b></p><p> void Gongcheng::sumsump() //求工程碩士個(gè)人總成績 </p><p><b> {</b></p><p><b> sumpro();</b&g
118、t;</p><p> sump=(float)(scopro*0.5+score*0.5);</p><p><b> }</b></p><p> void Gongcheng::sumsum() //求工程碩士全體總成績 </p><p&
119、gt;<b> {</b></p><p> sum+=sump;</p><p><b> count++;</b></p><p><b> }</b></p><p> void Gongcheng::aver()
120、 //求工程碩士全體平均成績</p><p><b> {</b></p><p> average=sum/count;</p><p><b> }</b></p><p> void Gongcheng::tongji()
121、 //統(tǒng)計(jì)分段信息</p><p><b> {</b></p><p> if(sump==100) a[0]++;</p><p> if(sump>=90&&sump<100) a[1]++;</p><p> i
122、f(sump>=80&&sump<90) a[2]++;</p><p> if(sump>=70&&sump<80) a[3]++;</p><p> if(sump>=60&&sump<70) a[4]++;</p><p> if(sump<60)a[5
123、]++;</p><p><b> }</b></p><p> int Gongcheng::chanum(int n) //按學(xué)號查詢</p><p><b> {</b></p><p> if(num==n)</
124、p><p><b> return 1;</b></p><p><b> else </b></p><p><b> return 0;</b></p><p><b> }</b></p><p> int Gongch
125、eng::chaname(string n) //按姓名查詢</p><p><b> {</b></p><p> if(name==n)</p><p><b> return 1;</b></p><p><b> e
126、lse </b></p><p><b> return 0;</b></p><p><b> }</b></p><p> int Gongcheng::return_num2()</p><p><b> {</b></p><p&
127、gt; return num;</p><p><b> }</b></p><p> ///////////////////////////////////////////////////////////////////////////////////</p><p> static int X=0;
128、 //功能函數(shù)</p><p> static int G=0;</p><p> void inxue(Xueshu x[]) //從鍵盤輸入學(xué)術(shù)碩士信息</p><p><b> {</b></p>
129、;<p> cout<<"輸入學(xué)術(shù)碩士人數(shù):";</p><p><b> cin>>X;</b></p><p><b> int i;</b></p><p> for(i=0;i<X;i++)</p><p><b&
130、gt; {</b></p><p> cin >> x[i];</p><p><b> }</b></p><p><b> }</b></p><p> void outxue(Xueshu x[])
131、 //學(xué)術(shù)碩士信息輸出到屏幕</p><p><b> {</b></p><p><b> int i;</b></p><p> for(i=0;i<X;i++)</p><p><b> {</b></p><p> x[
132、i].sumsump();</p><p> x[i].sumsum();</p><p> x[i].tongji();</p><p> cout<<x[i];</p><p> cout<<endl;</p><p><b> }</b></p>
133、<p> Xueshu::aver();</p><p> cout<<"學(xué)術(shù)碩士總?cè)藬?shù)為:"<<X<<endl;</p><p> cout<<"其中他們的平均分為:"<<Xueshu::average<<endl;</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++程序課程設(shè)計(jì)報(bào)告—學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告--成績管理系統(tǒng)
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告--學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)--簡單成績管理系統(tǒng)
- 成績統(tǒng)計(jì)程序課程設(shè)計(jì)報(bào)告
- c++程序設(shè)計(jì)課程設(shè)計(jì) ----學(xué)生成績管理系統(tǒng)實(shí)驗(yàn)報(bào)告
- c++課程設(shè)計(jì)報(bào)告---學(xué)生成績管理系統(tǒng)設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)學(xué)生學(xué)籍成績管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)--學(xué)習(xí)成績管理系統(tǒng)
評論
0/150
提交評論