![C第8次實(shí)驗(yàn)報(bào)告匯總_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/2b874afa-4345-4bd4-a377-25f4d758f412/2b874afa-4345-4bd4-a377-25f4d758f4121.gif)
![C第8次實(shí)驗(yàn)報(bào)告匯總_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/2b874afa-4345-4bd4-a377-25f4d758f412/2b874afa-4345-4bd4-a377-25f4d758f4122.gif)
![C第8次實(shí)驗(yàn)報(bào)告匯總_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/2b874afa-4345-4bd4-a377-25f4d758f412/2b874afa-4345-4bd4-a377-25f4d758f4123.gif)
![C第8次實(shí)驗(yàn)報(bào)告匯總_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/2b874afa-4345-4bd4-a377-25f4d758f412/2b874afa-4345-4bd4-a377-25f4d758f4124.gif)
![C第8次實(shí)驗(yàn)報(bào)告匯總_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/2b874afa-4345-4bd4-a377-25f4d758f412/2b874afa-4345-4bd4-a377-25f4d758f4125.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C 語言程序設(shè)計(jì)課程實(shí)驗(yàn)報(bào)告(第次)學(xué) 院:數(shù)學(xué)與計(jì)算機(jī)學(xué)院姓 名:張?jiān)軐W(xué) 號(hào): 201510804033專 業(yè):軟件工程班 級(jí): 1 班同 組 人:實(shí)驗(yàn)地點(diǎn): 6A-2實(shí)驗(yàn)時(shí)間:指導(dǎo)教師:實(shí)驗(yàn)名稱:多態(tài)性與虛函數(shù)所使用的開發(fā)工具及環(huán)境:硬件PC -l實(shí)驗(yàn)?zāi)康模?1) 了解多態(tài)性的概念。(2) 了解虛函數(shù)的作用及使用方法。(3) 了解靜態(tài)關(guān)聯(lián)和動(dòng)態(tài)關(guān)聯(lián)的概念和川法。(4) 了解純虛函數(shù)和抽象類的概念和用法。實(shí)驗(yàn)內(nèi)容:1、分析程序運(yùn)行結(jié)果,掌握虛函數(shù)的使用。程序一:#in elude using n amespace std;class ONE public:virtual void f()c
2、outONEe ndl;class TWO:public ONE public:TWO()coutTWOe ndl;class THREE:public TWO public:virtual void f()TWO:f(); coutf();/ONE THREEcoute ndl;程序二:#in clude using n amespace std;class Base public:virtual void fn() cout In Base Classn;;class SubClass :public Base public:virtual void fn() cout fn();/l n
3、 Base Classp=≻p-fn();/In Sub Class2、 實(shí)現(xiàn)一個(gè)類 A,在A中有兩個(gè)私有的整型變量a和b,定義構(gòu)造函數(shù)對(duì) a和b進(jìn)行初始化,并實(shí)現(xiàn)成員函數(shù)geta ()取得a的值和getb ()取b的值。實(shí)現(xiàn)類 B從A繼承,覆蓋geta(),使其返回a的2倍。主函數(shù)中聲明類B對(duì)象,調(diào)用類B中的geta ()并將結(jié)果輸出。3、設(shè)計(jì)一個(gè)計(jì)算圖形面積的類庫。它的頂層是一個(gè)抽象類,并且提供相應(yīng)的接口函數(shù)。抽象基類Shape,派生出Point類、矩形Rectangle、正方形Square, Point類派生出圓 形Circle 。 要求:(1) 每個(gè)類有構(gòu)造函數(shù)、析構(gòu)函數(shù),并有相
4、應(yīng)的輸出語句,如:“正在構(gòu)造圓形”(2) 能顯示每個(gè)類的信息,如:輸出“我是圓形”(3) 能計(jì)算面積、周長(4) 定義一個(gè)基類 Shape類型的指針,實(shí)現(xiàn)動(dòng)態(tài)多態(tài)(5) 動(dòng)態(tài)創(chuàng)建一個(gè)圓形對(duì)象,賦值給基類Shape類型的指針變量,程序最后delete該指針,保證析構(gòu)函數(shù)的正確調(diào)用(提示:虛析構(gòu)函數(shù))(6 )在主函數(shù)測(cè)試。4、 設(shè)計(jì)一個(gè)基類 Base,其作用是計(jì)算一個(gè)圖形的面積,它只有一個(gè)公有的函數(shù)成員虛函數(shù)area。再從Base 類公有派生一個(gè)三角形類Triangle和一個(gè)圓類 Circle,在類Triangle和類Circle中分別定義自己的area 函數(shù),用于計(jì)算各自的面積。在主函數(shù)中設(shè)計(jì)一
5、個(gè)Base類的對(duì)象指針,分別指向類Triangle 和類Circle 的對(duì)象,調(diào)用各自的area 函數(shù)顯示相應(yīng)對(duì)象的面積。分析:用虛函數(shù)實(shí)現(xiàn)多態(tài)。5 將上題中的Base類改為抽象類,應(yīng)用抽象類,求矩形、圓形的周長和面積。分析:將Base類的其成員函數(shù) area 和perimeter 聲明為純虛函數(shù),Base就成為 一個(gè)抽 象類。然后再從Base派生矩形類和圓形類,分別實(shí)現(xiàn)Base中純虛函數(shù)的功 能結(jié)果與分析:Sy8-1:程序一:i-7 F:C+習(xí)lDebug:L 心eTWO TWOONE THREE程序二:Sy8-2:#in cludeusing n amespace std;class Ap
6、ublic:A(int a,int b):a(a),b(b) virtual int geta()return a; frie nd class B;private:int a;int b;class B:public Apublic:B(int a,int b):A(a,b) int geta()retur n 2*a;int mai n()A *p=new B(2,3); coutgeta()e ndl;system(pause);return 0;l F:K+8.Sy8-2Y3?bLig5y8-Z.exeSy8-3:#in cludeusing n amespace std;con st
7、 double Pl=3.1415926;class Shapepublic:Shape()coutC on struct ing Shape.e ndl; virtual Shape()coutDestruct ing Shape.e ndl; virtual void Name()coutSharee ndl; virtual double Area()=0;virtual double C()=0;class Point: public Shapepublic:Point()coutConstructing Point.endl; Poi nt()coutDestructi ng Poi
8、 nt.e ndl; virtual void Name()coutPo in te ndl; double Area()retur n 0; double C()return 0;class Recta ngle:public Shape public:Rectangle(int l,int w):length(l),width(w)coutConstructing Rectangle.endl;Rectangle()coutDestructing Rectangle.endl;double Area()retur n len gth*width;double C()return (le n
9、gth+width)*2;void Name()coutRecta nglee ndl;private:double len gth;double width;class Squre:public Shapepublic:Squre(i nt l):L(l)coutC on struct ing Squre.e ndl; Squre()coutDestruct ing Squre.e ndl; void Name()coutSquree ndl; double Area()retur n L*L;double C()return 4*L;private:double L;;class Circ
10、le: public virtual Pointpublic:Circle(double r):radious(r)coutConstructing Circle.endl;Circle()coutDestructing Circle.endl;void Name()coutvCirclevName();coutC()ve ndl;coutArea()vName();coutC()ve ndl;coutArea()vName();coutC()ve ndl;coutArea()vName();coutC()ve ndl;coutArea()ve ndl;delete p;system(paus
11、e);Constructin Shape* ConstFuct iny Rec tangle-. Rec tanc| leC = 10Aiea = EDestructing RectDes tmict lnj( S hctpe -.iwBUMSy8-4:#in cludeusing n amespace std;con st double Pl=3.1415926;class Basepublic:Base()coutC on struct ing Base.e ndl;virtual Base()coutDestructed Base.e ndl;virtual double Area()=
12、0;class Trian gle:public Basepublic:Tria ngle(double a,double b,double c):a(a),b(b),c(c)coutC on structi ng Tria ngle.e ndl;Tria ngle()coutDestructed Trian gle.e ndl;double Area()return sqrt(0.5*(a+b+c)*(0.5*(a+b+c)-a)*(0.5*(a+b+c)-b)*(0.5*(a+b+c)-c); private:double a,b,c;class Circle:public Basepub
13、lic:Circle(double r):radious(r)coutConstructing Circle.endl; Circle()coutDestructed Circle.e ndl;double Area()retur n Pl*radious*radious;private:double radious;int mai n()Base *p;p=new Trian gle(3,4,5);coutArea()ve ndl;delete p;coute ndl;p=new Circle(4);coutArea()ve ndl;delete p;coute ndl;system(pau
14、se);return 0;-F:C+SSy8-4DebugSyS-41exeConstruct ing Base Cons七1*1:1;insr Triangle A re a : 6Destructed Triangfle. Destructed Base-Construct ins Base . Construjct ing Circle -. AreaDestructed Circle Destructed Base-Sy8-5:#in cludeusing n amespace std; const double Pl=3.1415926; class Basepublic:Base(
15、)coutC on struct ing Base.e ndl;virtual Base()coutDestructed Base.e ndl;virtual double Area()=0;virtual double Perimeter()=0;/ 周長;class Trian gle:public Basepublic:Tria ngle(double a,double b,double c):a(a),b(b),c(c)coutC on structi ng Tria ngle.e ndl; Triangle()coutDestructed Triangle.endl;double A
16、rea()return sqrt(0.5*(a+b+c)*(0.5*(a+b+c)-a)*(0.5*(a+b+c)-b)*(0.5*(a+b+c)-c); double Perimeter()retur n a+b+c;private:double a,b,c;class Circle:public Basepublic:Circle(double r):radious(r)coutConstructing Circle.endl;Circle()coutDestructed Circle.endl;double Area()retur n PI*radious*radious;double Perimeter()retur n 2*PI*radious;private:double radious;int mai n()Base *p;p=new Trian gle(3,4,5);coutArea()ve ndl;coutPerimeter()ve ndl;delete p;coute ndl;p=new Circle(4);coutArea()ve ndl;coutPerimeter()ve ndl;delete p;coute ndl;system
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代學(xué)生餐廳的照明與色彩搭配藝術(shù)
- 深度解讀網(wǎng)絡(luò)輿情的來源與影響研究報(bào)告解讀分享
- 現(xiàn)代金融行業(yè)中的移動(dòng)支付技術(shù)與教育普及
- 快手國慶節(jié)的活動(dòng)方案
- 國慶假期活動(dòng)方案
- 國慶節(jié)酒店漲價(jià)活動(dòng)方案
- 2、3、4的乘法口訣(說課稿)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)人教版
- Unit1 There is a horse in this photo(說課稿)-2024-2025學(xué)年外研版(三起)四年級(jí)上冊(cè)001
- 17《他們那時(shí)候多有趣啊》(說課稿)-2023-2024學(xué)年統(tǒng)編版語文六年級(jí)下冊(cè)
- 13 我能行(說課稿)-統(tǒng)編版(五四制)道德與法治二年級(jí)下冊(cè)
- 春節(jié)后復(fù)工安全教育培訓(xùn)考試試題及答案
- 寄宿制學(xué)校工作總結(jié)
- 小學(xué)數(shù)學(xué)6年級(jí)應(yīng)用題100道附答案(完整版)
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測(cè)試題庫含答案
- JT-T 1495-2024 公路水運(yùn)危險(xiǎn)性較大工程專項(xiàng)施工方案編制審查規(guī)程
- JT-T-390-1999突起路標(biāo)行業(yè)標(biāo)準(zhǔn)
- 人教版二年級(jí)上冊(cè)加減混合計(jì)算300題及答案
- 2023年四川省成都市武侯區(qū)中考物理二診試卷(含答案)
- 《也是冬天-也是春天》
- 鮮切水果行業(yè)分析
- 第7章-無人機(jī)法律法規(guī)
評(píng)論
0/150
提交評(píng)論