




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上面向對象程序設計實驗六實驗報告班級 學號 姓名 1實驗目的:(1) 掌握虛函數的定義和使用方法,理解虛函數在面向對象程序設計中的意義;(2) 理解虛函數在類的繼承層次中的作用,虛函數的引入對程序運行時的影響,能夠對使用虛函數的簡單程序寫出程序結果。2實驗任務:1、定義一個表示平面上的點的類Point,實現一個show()函數輸出其坐標,由它派生出一個表示平面上的圓的Circle類,添加一個半徑成員,實現show()函數輸出其坐標和半徑。在主函數中定義一個基類的指針,用這個指針依次指向一個Point類的對象和一個Circle類的對象,分別調用show()函數輸出對象的屬
2、性,Point類對象輸出點的坐標,Circle類對象輸出圓點坐標和圓的半徑。 2、求幾何體:長方體和圓柱體的體積。具體要求如下:(1) 設計一個立體圖形類(CStereoShape類),并滿足如下要求:CStereoShape類有一個純虛函數GetArea,能夠獲取立方體的表面積。CStereoShape類有一個純虛函數GetVolume,能夠獲取立方體的體積。(2) 設計一個立方體類(CCube類),該類繼承于CStereoShape類,并滿足如下要求:l CCube類有一個帶參數的構造函數,其參數分別為立方體的長、寬、高,默認值均為0。l 用一個成員函數put來實現對立方體長、寬、高的設置
3、。l 重載CStereoShape類的GetArea和GetVolume,分別完成立方體的表面積和體積的計算。(3) 設計一個球體類(CSphere),該類繼承于CStereoShape類,并滿足如下要求:l CSphere類有一個帶參數的構造函數,其參數對應于球體的半徑,默認值均為0。l 用一個成員函數put來實現對球體半徑的設置。l 重載CStereoShape類的GetArea和GetVolume,分別完成球體的表面積和體積的計算。(4) 在主函數完成測試,完成如下工作:3 程序清單:任務一:/*main.cpp*/#include <iostream>#include &q
4、uot;Point.h"#include "Circle.h"using namespace std;/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char* argv) Point t(2,1),*p3; Circle c(3,4,4);p0=&t;p0->show();p1=&c;p1->show();return 0;/*
5、 Point.h*/#ifndef POINT_H#define POINT_Hclass Pointpublic:Point(int=0,int=0);virtual void show();protected:int x,y;#endif/* Point.cpp*/#include "Point.h"#include <iostream>using namespace std;Point:Point(int a,int b)x=a;y=b;void Point:show()cout<<"("<<x<<&
6、quot;,"<<y<<")"<<endl; /* Circle.h*/#ifndef CIRCLE_H#define CIRCLE_H#include "Point.h"class Circle : public Pointpublic:Circle(int x,int y,int a):Point(x,y) r=a; void show();protected:int r;#endif/* Circle.cpp*/#include "Circle.h"#include <iost
7、ream>using namespace std;void Circle:show()Point:show();cout<<"半徑為:"<<r<<endl;任務二:/*main.cpp*/#include <iostream>#include "CStereoShape.h"#include "CSphere.h"#include "CCube.h"using namespace std;/* run this program using the console
8、 pauser or add your own getch, system("pause") or input loop */int main(int argc, char* argv) CStereoShape *p3; CCube b;p0=&b;b.put();p0->GetArea();p0->GetVolume();cout<<endl; CSphere s;p1=&s;s.put();p1->GetArea();p1->GetVolume(); return 0;/* CStereoShape.h*/#ifnd
9、ef CSTEREOSHAPE_H#define CSTEREOSHAPE_Hclass CStereoShapepublic:virtual double GetArea()=0;virtual double GetVolume()=0; protected:;#endif/* CCube.h*/#ifndef CCUBE_H#define CCUBE_H#include "CStereoShape.h"class CCube : public CStereoShapepublic:CCube(double=0,double=0,double=0);void put();
10、double GetArea();double GetVolume(); protected:double length,width,high;#endif/*CCube.cpp*/#include "CCube.h"#include <iostream>using namespace std;CCube:CCube(double a,double b,double c) length=a;width=b;high=c;void CCube:put()cout<<"請輸入長、寬、高:"cin>>length>&g
11、t;width>>high; double CCube:GetArea()double s;s=2*(length*width+length*high+width*high);cout<<"長方體的表面積為:"<<s<<endl;double CCube:GetVolume()cout<<"長方體的體積為:"<<length*width*high<<endl;/*CSphere.h*/#ifndef CSPHERE_H#define CSPHERE_H#include &
12、quot;CStereoShape.h"class CSphere : public CStereoShapepublic:CSphere(double=0);void put();double GetArea();double GetVolume(); protected:double r;#endif/* CSphere.cpp*/#include "CSphere.h"#include <iostream>using namespace std;CSphere:CSphere(double a)r=a;void CSphere:put()cout
13、<<"請輸入球的半徑:"cin>>r; double CSphere:GetArea()cout<<"球體的表面積為:"<<4*3.14*r*r<<endl;double CSphere:GetVolume()cout<<"球體的體積為:"<<4/3*3.14*r*r*r<<endl;4 運行結果:任務一:任務二:5 總結或感悟: 任務一中Point類的頭文件內設計一個虛函數的輸出show函數,Circle類繼承Point類里面的點坐標,同時增加了半徑的變量。主函數中利用一個數組指針來分別指向定義的變量,并實現輸出。任務二在CStereoShap
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 煤炭制品企業市場競爭力提升策略與考核試卷
- 游樂設施施工法律法規知識考核試卷
- 電氣靜電及雷電安全防護技術考核試卷
- 稀土金屬冶煉工藝考核試卷
- 玻璃防眩光涂層開發考核試卷
- 礦山電氣系統設計與優化考核試卷
- 畜牧機械質量管理與可靠性考核試卷
- 海底古海洋學研究中心考核試卷
- 海上旅游目的地營銷策略考核試卷
- 遼寧省葫蘆島市高中名校2024-2025學年高三第10次統練數學試題含解析
- 白細胞疾病及其檢驗(血液學檢驗課件)
- 案例3 哪吒-全球首個“海空一體”跨域航行器平臺
- T-CTSS 3-2024 茶藝職業技能競賽技術規程
- 車隊運營中的司機管理策略研究
- 新生兒臍部出血的護理
- 實驗室的智能化設計與建設
- 《中國海洋大學》課件
- 排污許可管理培訓課件
- 《鹽津鋪子公司盈利能力探析實例報告(10000字論文)》
- 2025年中考語文課內名著閱讀專題復習:第10部 《水滸傳》課件
- 案例:中建八局綠色施工示范工程綠色施工(76P)
評論
0/150
提交評論