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