


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、天津理工大學實驗報告學院(系)名稱: 計算機與通信工程學院姓 名學號專業(yè)計算機科學與技術(shù)班級教學二班實驗項目實驗四多態(tài)程序設(shè)計課程名稱咼級程序設(shè)計語言II課程代碼0667026實驗時間2016年11月11日第7、8節(jié)實驗地點計算機軟件實驗室 7-215批改意見成績教師簽字:實驗目的:(1)理解類和對象的概念;(2)掌握類與對象的定義方法;(3)理解類的成員的訪問控制的含義,公有和私有成員的區(qū)別;(4)掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的含義與作用、定義方式和實現(xiàn);(5)能夠根據(jù)給定的要求定義類并實現(xiàn)類的成員函數(shù);(6)掌握string類的使用方法(7)了解C+面向?qū)ο蟪绦蛟O(shè)計的基本思想、基本方法和基本步驟
2、;(8)掌握 MS Visual C+6.0或DEV C+調(diào)試C+程序的基本方法、基本步驟。實驗內(nèi)容:1.疋義Point類,有坐標x,y兩個成員變量,利用友兀函數(shù)對Point類重載 +運算符,頭現(xiàn)對坐標值的改變。具體要求如下:(1)編與程序疋義Point類,在類中疋義整型的私有成員變量x,y ;(2)在類中定義兩個友元函數(shù),分別重載前置+和后置+ ;(3)編寫主函數(shù)測試。注意函數(shù)有無返回值的區(qū)別,以及返回值是否帶有&應(yīng)用符號。代碼:#include viostream>using namespace std;class Pointprivate:double x,y;public
3、:Point(double _x=0,double _y=0) x=_x;y=_y;Point()void setx(double _x)x=_x;void sety(double _y)y=_y; double getx()return x;double gety()return y;friend void operatorvv(ostream &out,const Point &p) outvv"Point("vvp.xvv","vvp.yvv")n"friend void operator+(Point &
4、; p,int); friend void operator+(Point & p);;void operator+(Point &p,int)p.x+;p.y+;void operator+(Point &p)+p.x;+p.y;int main() Point a(1,1),b(3,4); coutvva; coutvvb; a+;+b; coutvva; coutvvb; return 0;運行結(jié)果如下:C FA翹密W鞍匚+爆驗源代碼直題臥|Point(1J) Point(3,4) Point(2,2) Point(4,5)Process exited with
5、return value 0 Press any key to cont inue * . +2. 定義Point類,有坐標x,y兩個成員變量,利用運算符重載對Point類重載“ + ”運算符,實現(xiàn)對坐標值的改變。具體要求如下:(1) 編寫程序定義Point類,在類中定義整型的私有成員變量x,y ;(2) 定義成員函數(shù) Point& operator+(); Point operator+(int);以實現(xiàn)對 Point 類重載“ + ”運算 符,分別重載前置+和后置+ ;(3) 編寫主函數(shù)測試。源代碼如下:#include viostream>using namespace s
6、td;class Pointprivate:double x,y;public:Point(double _x=0,double _y=0) x=_x;y=_y;Point()void setx(double _x)x= x;void sety(double _y)y=_y;double getx()return x;double gety() return y;friend void operatorvv(ostream &out,const Point &p) outvv"Point("vvp.xvv","vvp.yvv")
7、n"Point operator+(int)x+=2;y+=2;return *this;Point &operator+()+x;+y; return *this;int main()Point a(1,1),b(3,4);coutvva;coutvvb;a+;+b;coutvva;coutvvb;return 0;運行結(jié)果如下:3. 定義一個分數(shù)類,通過重載運算符實現(xiàn)分數(shù)的四則運算、求負運算和賦值運算。其中,要求加法+和減法用友元函數(shù)實現(xiàn)重載,其他運算符用成員函數(shù)實現(xiàn)重載。代碼:#include viostream>#include <cmath>Usi
8、ng namespace std;class Fenshuprivate:int zi;int mu;public:Fenshu(int _zi=0,int _mu=1)zi=_zi;mu=_mu;Fenshu()void setzi(int _zi=0)zi=_zi;void setmu(int _mu=1)mu=_mu;int getzi()return zi;int getmu()return mu;void print();friend Fenshu operator+(const Fenshu & f1,const Fenshu & f2); friend Fensh
9、u operator-(const Fenshu & f1,const Fenshu & f2); Fenshu operator*(int n )Fenshu x;x.zi=zi*n;x.mu=mu; return x; Fenshu operator/(int n)if(n=0)coutvv"Nagetive!" return *this;Fenshu x;x.zi=zi;x.mu=mu*n; return x;Fenshu operator-。Fenshu x;x.zi=-zi;x.mu=mu; return x;void operator=(cons
10、t Fenshu & f)zi=f.zi; mu=f.mu;Fenshu operator+(const Fenshu & f1,const Fenshu & f2)Fenshu f;f.zi=f1.zi*f2.mu+f2.zi*f1.mu;f.mu=f1.mu*f2.mu;return f;Fenshu operator-(const Fenshu & f1,const Fenshu & f2)Fenshu f;f.zi=f1.zi*f2.mu-f2.zi*f1.mu;f.mu=f1.mu*f2.mu; return f;void Fenshu:pri
11、nt()if(zi=0)coutvv0vvendl;elseint _zi=abs(zi>mu?zi:mu),_mu=abs(mu<zi?mu:zi); int x;x=_zi % _mu;while(x!=0)_mu=_zi;_zi=x; x=_mu % _zi;zi/=(_zi>_mu?_mu:_zi); mu/=(_zi>_mu?_mu:_zi); coutvvzivv"/"vvmu<vendl;int main()Fenshu x(2,4),y(4,4);Fenshu z,a,b,c,d,e;z=x+y;a=y-x; b=x-y;c=-
12、x;d=y*(-1); e=y/2;乙 print();a. print();b. print();c. print();d. print();e. print(); return 0;運行結(jié)果如下:13/2 卩/21/2-1/2 -1/1>1/2Process exitd with re-turn value 0 rress any key to cc-nt inue 4. 編寫程序,定義抽象基類Container,由此派生出2個派生類球體類 Sphere,圓柱體類Cylinder,分別用虛函數(shù)分別計算表面積和體積。.” ,243(1) 球體的表面積為:4二r,球體的體積為 一 r ;
13、圓柱表面積為:2 nR ( h+R)3圓柱體的體積 n R2h(2) 定義相應(yīng)的對象,編寫主函數(shù)測試。代碼如下:#include viostream>using namespace std;const double Pl=3.14;class Containerprivate:double r;double h;public:Container()Container(double _r=0.0,double _h=0.0)r=_r;h=_h;void setr(double _r=0.0)r=_r;double getr()return r;void seth(double _h=0.0
14、)h=_h;double geth()return h;virtual double s()=0;virtual double v()=0;;class Sphere:public Containerpublic:Sphere()Sphere(double _r=0.0):Container(_r)double s()return 4*PI*getr()*getr();double v()return (double(4)/3)*PI*getr()*getr()*getr();class Cylinder:public Containerpublic:Cylinder()Cylinder(do
15、uble _r=0.0,double _h=0.0):Container(_r,_h) double s()return 2*PI*getr()*(geth()+getr();double v()return 2*PI*getr()*geth();;int main()Container *p;Sphere a(1);Cylinder b(1,2);P=& a;cout«"Sphere s="vvp->s()vv" v="vvp->v()vvendl; p=&b;coutvv"Cylinder s=&quo
16、t;vvp->s()vv" v="vvp->v()vvendl;return 0;運行結(jié)果如下:*F:筆商創(chuàng)鞍匚+僅驗源代碼實驗四4心eSphere s=12.56 v=4.18667Cyl inder s=18.84 v=12.56Process exited with return value 0 Press any key to cont inje + *5. 設(shè)計一個時鐘類 TIME,內(nèi)含數(shù)據(jù)成員 hour, mi nu te , seco nd表示時間,成員函數(shù)set()設(shè)置時間數(shù)據(jù),show()顯示時間數(shù)據(jù)。重載運算符+和-(具有返回值),每執(zhí)行一次
17、+,seco nd自增1,執(zhí)行一次-,seco nd自減1。seco nd和mi nute的值在059區(qū)間循環(huán)(滿59后再自增則歸 0, min ute加1 ; seco nd為0時再自減則為 59, mi nute減1)。 hour的值在023區(qū)間循環(huán)。源代碼如下:#include viostream>using namespace std;class Timeprivate:int hour;int minute;int second;public:Time(int=0,int=0,int=0);Time()void sethour(int);void setminute(int);
18、void setsecond(int);int gethour();int getsecond();int getminute();void set(int=0,int=0,int=0); void show();Time & operator+(int); Time & operator-(int); ;Time:Time(int h,int m,int s) if(s>59)s%=60; m=m+s/60; if(m>59) m%=60; h=h+m /60;if(h>23) h%=24; hour=h; minute=m; second=s;void T
19、ime:sethour(int h)if(h>23) h%=24; hour=h;void Time:setminute(int m) if(minute>59)minute%=60; hour=hour+minute/60; if(hour>23) hour%=24; minute=m;void Time:setsecond(int s) if(s>59)minute=minute+s/60; s%=60; if(minute>59) hour=hour+minute/60; minute%=60; if(hour>23) hour%=24;second=
20、s;int Time:gethour() return hour;int Time:getsecond() return second;int Time:getminute() return minute;void Time:set(int h,int m,int s) if(s>59)m=m+s/60; s%=60; if(m>59) h=h+m /60; m%=60;if(h>23) h%=24; hour=h;minute=m; second=s;void Time:show()coutvvhourvv":"vvminutevv":&quo
21、t;vvsecondvvendl;Time & Time:operator+(int)second+;if(second>59)minute=minute+second/60; second%=60;if(minute>59)hour=hour+minute /60; minute%=60;if(hour>23) hour%=24; return *this;Time & Time:operator-(int)second-;if(secondvO)minute-; second=59; if(minutevO)minute=59; hour-;if(hour
22、<0)hour=0; return *this;int main()Time t;int x,y,z;char temp;coutvv"現(xiàn)在初始化計數(shù)器(Hour Minute Second ): cin>>x;cin>>y;cin>>z;t.set(x,y,z);coutw"現(xiàn)在時間是:";t.show();docoutvv"輸入*重新設(shè)置計數(shù)器;"vvendl;coutvv"輸入+計數(shù)器遞加,輸入-計數(shù)器遞減;"vvendl;coutvv"輸入字母o計數(shù)器清零;"vvendl;coutvv"輸入q退出計數(shù)器。"vvendl;coutvv"請輸入 >"cin»temp;switch(temp)case '*':coutvv"現(xiàn)在初始化計數(shù)器(Hour Minute Second): cin>>x;cin>>y;cin>>z;t.set(x,y,z);coutvv"現(xiàn)在時間是:"t.show(); break;case '+':t+;coutvv"現(xiàn)在時間是:&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)開戶銀行合同范本
- 個體老板合同范本
- vr公司合同范本
- 2025年煙臺駕駛資格證模擬考試
- 化妝店轉(zhuǎn)租上海合同范本
- 獸醫(yī)診所轉(zhuǎn)讓合同范本
- 副業(yè)兼職合同范本
- 二手車行業(yè)勞動合同范本
- 軍旅衣服租賃合同范本
- 農(nóng)村房屋場地出租合同范本
- 高教版2023年中職教科書《語文》(基礎(chǔ)模塊)上冊教案全冊
- 存款代持協(xié)議書范文模板
- 2023年部編人教版三年級《道德與法治》下冊全冊課件【全套】
- 基礎(chǔ)模塊下冊《中國人民站起來了》2
- 光伏項目施工總進度計劃表(含三級)
- DB32-T 4757-2024 連棟塑料薄膜溫室建造技術(shù)規(guī)范
- 2024年云上貴州大數(shù)據(jù)(集團)有限公司招聘筆試沖刺題(帶答案解析)
- 廣州預拌混凝土行業(yè)發(fā)展專項規(guī)劃
- 初中英語考試答題卡(可編輯WORD版)
- 【教案】 人民音樂家 教案高中人音版(2019)必修《音樂鑒賞》
- 風光高壓變頻器用戶手冊最新2011-11-17
評論
0/150
提交評論