版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗 5 繼承與派生北京電子科技學(xué)院( BESTI)實驗報告課程:面向?qū)ο蟀嗉墸?243姓名: 孟愫愫1243學(xué)號:程序設(shè)計08成績:指導(dǎo)教師:徐日實驗日期:2013.12.3實驗密級: 預(yù)習(xí)程度:實驗時間:下午 3:306:00儀器組次: B23必修 /選修:選修實驗序號:5實驗名稱繼承與派生實驗?zāi)康呐c要求:1. 使學(xué)生掌握 C+語言類的繼承和派生的基礎(chǔ)編程;2. 培養(yǎng)學(xué)生具有運用 C+ 語言編程解決問題的能力,提高學(xué)生的計算機編程能力;3. 引導(dǎo)和培養(yǎng)學(xué)生具有認真嚴(yán)謹(jǐn)?shù)膶嶒瀾B(tài)度和勇于實踐的學(xué)習(xí)精神。實驗儀器:名稱型號數(shù)量微機TOSHIBA L8001第1頁,共 10 頁實驗內(nèi)容1. 類 P
2、oint 、類 Circle 和 Cylinder首先定義類 Point ,然后定義類 Point 的公有派生類 Circle ,再定義類 Circle 的公有派生類 Cylinder 。類 Point 有數(shù)據(jù)成員 int 型的 x 和 y ,用于表示點的坐標(biāo)位置,有成員函數(shù) p_show() 、構(gòu)造函數(shù)和析構(gòu)函數(shù)、 p_set(),p_show() 用于顯示輸出點的坐標(biāo), p_set() 用于設(shè)置 x 和 y 的值。類 Circle 有新增私有數(shù)據(jù)成員 float 型的 r 和 double 型的 s,表示圓的半徑和面 積,有成員函數(shù) c_area()用于計算圓的面積并對 s 賦值,有成員函
3、數(shù) c_set()用于 對成員 r 賦值,有成員函數(shù) c_show()用于顯示輸出半徑 r 和面積 s,有成員函數(shù) getr() 用于獲取半徑 r 的值,有構(gòu)造函數(shù)和析構(gòu)函數(shù)。類 Cylinder 有新增數(shù)據(jù)成員 float 型的 h 和 double 型的 bs、 v,分別表示 圓柱體的高、表面積、體積,有對成員 h 賦值的成員函數(shù) cy_set(),有計算表面 積并對 bs 賦值的成員函數(shù) cy_area(),有計算體積并對 v 賦值的成員函數(shù) volume() ,有成員函數(shù) cy_show()用于顯示輸出高 h、表面積 bs 和體積 v,有構(gòu) 造函數(shù)和析構(gòu)函數(shù)。在主函數(shù) main() 中
4、分別定義 Point 、 Circle 、Cylinder 類的對象,觀察并記錄各 類所屬的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況,然后在 main() 函數(shù)中通過調(diào)用成員 函數(shù)對各類的對象的所有數(shù)據(jù)成員 (包括繼承所得 )賦值并輸出顯示其值。 要求:? 本程序中所有函數(shù)都要有明確的執(zhí)行信息輸出,例如 Point 類的構(gòu)造函數(shù) 執(zhí)行時應(yīng)輸出“執(zhí)行類 Point 的構(gòu)造函數(shù)”。第2頁,共 10 頁? 各類定義時,數(shù)據(jù)成員都是私有屬性,成員函數(shù)都是公有屬性。? 各構(gòu)造函數(shù)都有參數(shù) ( 無默認形參值 ),并用參數(shù)對相應(yīng)的數(shù)據(jù)成員初始化。 【編程設(shè)計思想】根據(jù)題目要求,一點一點的編寫代碼即可。首先定義點坐標(biāo)的類
5、, 然后定義類 Point 坐標(biāo)的公有派生類 Circle ,再定義 類 Circle 的公有派生類 Cylinder 。( 1)類 Point 坐標(biāo)定義私有數(shù)據(jù)成員 x 和 y,用于表示點的坐標(biāo), 成員函數(shù) p_set 用于設(shè)置 x 和 y 的值, p_show() 用于顯示輸出點的坐標(biāo)。( 2)類 Circle 作為類 Point 的公有派生類,新增私有數(shù)據(jù)成員 float 型的 h 和 double 型的 s,表示圓的半徑和面積,成員函數(shù) c_area 用于計算圓的面積并對 s 賦值, c_set用于對成員 r 賦值, getr()用于獲取半徑 r 的值, c_show用于顯示 半徑 r
6、 和圓面積 s。(3)類 Cylinder 作為類 Circle 的公有派生類, 和類 Point 坐標(biāo)是間接繼承關(guān)系。 新增私有數(shù)據(jù)成員有 float 型的 h 和 double 型的 bs、v,分別表示圓柱體的高、 表面積、體積。成員函數(shù) cy_set對成員 h 賦值, cy_area 計算表面積并對 bs賦 值,volume 計算體積并對 v 賦值, cy_show 顯示輸出高 h,表面積 bs和體積 v。 【源代碼】#includeclass Pointprivate:int x,y;public:Point(int a,int b);void p_show();void p_set(
7、int a,int b);Point();Point:Point(int a ,int b)第3頁,共 10 頁x=a;y=b;cout 執(zhí)行類 Point 的構(gòu)造函數(shù) endl;void Point:p_show()cout 執(zhí)行類 Point 的函數(shù) p_show,輸出坐標(biāo) 值:x,ye void Point:p_set(int a,int b)x=a;y=b;cout 執(zhí)行類 Point 的函數(shù) p_setendl;Point:Point()cout 執(zhí)行類 Point 的析構(gòu)函數(shù) endl;class Circle:public Pointprivate:float r;double
8、s;public:Circle(int a,int b,float c ,double d);void c_show();void c_set(float);void c_area();float getr();Circle();Circle:Circle(int a,int b,float c,double d):Point(a,b)/ 派生類 Circle 的構(gòu)造函數(shù) r=c;s=d;的構(gòu)造函數(shù) endl;的函數(shù) c_show,輸出 值 :r,sendl;cout 執(zhí)行類 Circle void Circle:c_show() cout 執(zhí)行類 Circlevoid Circle:c_se
9、t(float a)的函數(shù) c_setendl;r=a;cout 執(zhí)行類 Circle第4頁,共 10 頁void Circle:c_area()/ 面積函數(shù),面積為 r2cout 執(zhí)行類 Circle 的函數(shù) c_areaendl; s=r*r*3.14159;float Circle:getr()cout 執(zhí)行類 Cricle 的函數(shù) getrendl; return r;Circle:Circle()cout 執(zhí)行類 Circle 的析構(gòu)函數(shù) endl;class Cylinder:public Circleprivate:float h;double bs,v;public:Cylin
10、der(int a,int b,float c,double d,float e,double f,double g);void cy_show();void cy_set(float a);void cy_area();void volume();Cylinder();派生Cylinder:Cylinder(int a,int b,float c,double d,float e,double f,double g):Circle(a,b,c,d)/ 類 Cylinder 的構(gòu)造函數(shù)h=e;bs=f;v=g;cout 執(zhí)行類 Cylinder 的構(gòu)造函數(shù) endl;void Cylinder
11、:cy_area() bs=2*3.14159*Circle:getr()*h+Circle:getr()*Circle:getr()*3.14159*2; cout 執(zhí)行類 Cylinder 的函數(shù) cy_areaendl;void Cylinder:cy_set(float a)h=a;cout 執(zhí)行類 Cylinder 的函數(shù) cy_setendl;第5頁,共 10 頁 void Cylinder:cy_show()cout 執(zhí) 行 類 Cylinder 的 函 數(shù) cy_show , 輸 出 值 h,bs,vendl;void Cylinder:volume()v=3.14159*Ci
12、rcle:getr()*Circle:getr()*h;cout 執(zhí)行類 Cylinder 的函數(shù) volumeendl; Cylinder:Cylinder()cout 執(zhí)行類 Cylinder 的析構(gòu)函數(shù) endl; void main()int x,y;float r,h;Point a1(0,0);a1.p_show();cout 請輸入類 Point 對象的 :;cinxy;a1.p_set(x,y);a1.p_show();Circle a2(1,1,1,0);a2.p_show();a2.c_show();cout 請出入類 Circle 對象的 :;cinxyr;a2.Circ
13、le:p_set(x,y);a2.c_set(r);a2.c_area();避免二義性 ,更可以清楚的知道使用a2.Point:p_show();/ 加基類名和作用域運算符 的是哪個類里的函數(shù)。a2.c_show();Cylinder a3(10,10,1,0,1,0,0); a3.Point:p_show(); a3.Circle:c_show(); a3.cy_show();cout 請輸入類 Cylinder 對象的 : cinxyrh;a3.Point:p_set(x,y);a3.Circle:c_set(r);a3.Circle:c_area();a3.cy_set(h);a3.cy
14、_area();第6頁,共 10 頁a3.volume();a3.Point:p_show();a3.Circle:c_show();a3.cy_show();【執(zhí)行結(jié)果】展示對不同大小數(shù)據(jù)的處理第7頁,共 10 頁第8頁,共 10 頁二、實驗感想1、通過本次實驗, 首先是熟悉了類和對象的定義, 加強了類內(nèi)構(gòu) 造函數(shù)和析構(gòu)函數(shù)的應(yīng)用,對類的數(shù)據(jù)成員的類內(nèi)訪問和類外訪問有 了進一步了解。2、總的來說, 本次實驗相對難度不大, 因為可以根據(jù)詳細的題目 要求一步一步寫出程序。其次是通過對輸出結(jié)果樣例的分析,確定哪 些值是程序應(yīng)該給定的初始值,然后在程序的相應(yīng)位置進行附初值。3、由于自己的馬虎, 存在
15、漏寫括號及分號的現(xiàn)象, 需要進一步認第9頁,共 10 頁真,杜絕不必要的馬虎現(xiàn)象4、編程過程中, 運用的思想, 都是徐老師上課講的內(nèi)容, 通過反 復(fù)閱讀課本,翻閱筆記,了解了老師講的內(nèi)容的精髓,并結(jié)合進本編 程里,成功并不困難。三、思考題1、請舉例或結(jié)合實驗,說明類的數(shù)據(jù)成員 (含繼承所得數(shù)據(jù)成員 ) 如何訪問。如果是在類內(nèi),可以直接通過成員函數(shù)訪問;如果是類的公有 繼承,則基類中公有成員和保護成員仍可以訪問,而私有成員和不可 訪問成員則不可訪問;如果是私有繼承,則基類的私有成員和保護成 員變成保護成員,基類的私有和不可訪問成員是不可訪問的;如果是 私有繼承,則基類中的公有成員和保護成員變成私有成員,基類的私 有成員和不可訪問成員是不可訪問的。但是,這些不可訪問卻不是絕
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年在線工業(yè)制造平臺用戶注冊協(xié)議
- 2025年公用事業(yè)水電燃氣協(xié)議
- 2025年人力資源抵押合同
- 二零二五版7月:生物制藥研發(fā)成果轉(zhuǎn)讓及收益分成還款協(xié)議模板3篇
- 二零二五年度高檔實木地板定制安裝合同4篇
- 中銀個人購買寫字樓貸款合同(2024年版)
- 2025年度木地板生產(chǎn)工藝優(yōu)化與節(jié)能減排合同4篇
- 二零二五年度母子公司智能裝備制造合作協(xié)議4篇
- 臨時用電施工安全規(guī)范合同匯編版B版
- 2025年度鋼結(jié)構(gòu)承包項目安全風(fēng)險評估協(xié)議
- 9.2溶解度(第1課時飽和溶液不飽和溶液)+教學(xué)設(shè)計-2024-2025學(xué)年九年級化學(xué)人教版(2024)下冊
- 礦山隱蔽致災(zāi)普查治理報告
- 副總經(jīng)理招聘面試題與參考回答(某大型國企)2024年
- PDCA循環(huán)提高護士培訓(xùn)率
- 《獅子王》電影賞析
- 河北省保定市定州市2025屆高二數(shù)學(xué)第一學(xué)期期末監(jiān)測試題含解析
- 中醫(yī)護理人文
- 2024-2030年中國路亞用品市場銷售模式與競爭前景分析報告
- 貨物運輸安全培訓(xùn)課件
- 前端年終述職報告
- 市人民醫(yī)院關(guān)于開展“改善就醫(yī)感受提升患者體驗主題活動”2023-2025年實施方案及資料匯編
評論
0/150
提交評論