




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程實(shí)驗(yàn)報(bào)告課程名稱C++面向?qū)ο蟪绦蛟O(shè)計(jì)班級(jí)實(shí)驗(yàn)日期姓名學(xué)號(hào)實(shí)驗(yàn)成績(jī)實(shí)驗(yàn)名稱實(shí)驗(yàn)一類和對(duì)象實(shí)驗(yàn)?zāi)康募耙蟆哆\(yùn)算符重載》理解運(yùn)算符重載的重要性及好處理解那些運(yùn)算符可以重載而那些不能重載理解單目運(yùn)算符和雙目運(yùn)算符重載時(shí)特點(diǎn)熟練掌握一般運(yùn)算符重載的方法掌握特殊運(yùn)算符重載的方法《多態(tài)與虛函數(shù)》理解靜態(tài)聯(lián)編和動(dòng)態(tài)聯(lián)編,理解多態(tài)的概念理解虛函數(shù)在類的繼承層次中的作用及虛函數(shù)的引入對(duì)程序運(yùn)行時(shí)的影響,能夠?qū)κ褂锰摵瘮?shù)的簡(jiǎn)單程序?qū)懗鲞\(yùn)行結(jié)果了解虛函數(shù)對(duì)多態(tài)性的支持掌握虛函數(shù)和純虛函數(shù)的概念理解靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性,學(xué)習(xí)使用虛函數(shù)的繼承實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性了解抽象類的概念實(shí)驗(yàn)環(huán)境VC++6.0實(shí)驗(yàn)內(nèi)容編寫一個(gè)時(shí)間類time,包含時(shí)、分、秒等數(shù)據(jù)成員,實(shí)現(xiàn)時(shí)間的加、減、輸入和輸出操作。其中加減通過重載運(yùn)算符來實(shí)現(xiàn)設(shè)計(jì)一個(gè)三角形類triangle,包含三角形三條邊長(zhǎng)的私有數(shù)據(jù)成員,另有一個(gè)重載運(yùn)算符‘+’,以實(shí)現(xiàn)兩個(gè)三角形的面積之和。分析提示:在triangle類中設(shè)計(jì)一個(gè)友元函數(shù)operator+(trianglet1,trianglet2),它重載運(yùn)算符‘+’,返回t1和t2兩個(gè)三角形的面積之和分析程序錯(cuò)誤,分析原因并改正4、下面的shape類是一個(gè)表示形狀的抽象類,area()為求圖形面積的函數(shù)。請(qǐng)從shape類派生三角形類(triangle)和圓類(circle),并給出具體的求面積函數(shù)算法描述及實(shí)驗(yàn)步驟Time類-hour:int;-mintue:int;-second:int;Time類-hour:int;-mintue:int;-second:int;+get();+disp();+operator+();+operator-();2)求兩個(gè)三角形的面積之和triangle類triangle類-p:double-sp:double-a:int-b:int-c:int+triangle(inta,intb,intc)+voiddisp()+frienddoubleoperator+(trianglet1,trianglet2)3)A類A類-x:int+virtualintdisp()+show(A&p)+A(inti)B類-y:int+virtualintdisp()+B(intj)4)SShape類+virtualfloatarea()triangle類-a:int-b:int-c:int-s:float-p:float+triangle()+virtualfloatarea()circle類-r:float+circle(floatr)+virtualfloatarea()調(diào)試過程及實(shí)驗(yàn)結(jié)果總結(jié)這一次實(shí)驗(yàn)中,運(yùn)算符重載的這一部分,對(duì)于如何去實(shí)現(xiàn)輸入時(shí)間、輸入三角形的三邊長(zhǎng),我遇到了一些困難,一開始的時(shí)候我只是在主函數(shù)中初始化了triangle的對(duì)象,使它們調(diào)用求面積函數(shù),而不是通過在運(yùn)行窗口中直接輸入求得,后來我通過查看課本上的實(shí)例,通過get()函數(shù)來獲取。在編寫time類時(shí),一開始由于編寫的重載運(yùn)算符的友元函數(shù)operator+()中的算法錯(cuò)誤,使得輸出的兩時(shí)間的和不對(duì),經(jīng)過修改后得出了正確的結(jié)果在多態(tài)與虛函數(shù)這一部分,通過使用純虛函數(shù),了解了純虛函數(shù)的使用方法,以及抽象類的定義附錄1、#include<iostream.h>classtime{public: time(inth,intm,ints){hour=h;mintue=m;second=s;}voidget(){cout<<"請(qǐng)輸入時(shí)間:";cin>>hour>>mintue>>second; if(hour>=0&&hour<24&&mintue>=0&&mintue<0&&second>=0&&second<60) { cout<<hour<<":"<<mintue<<":"<<second<<endl; } elsecout<<"時(shí)間格式不正確!"<<endl;}voiddisp(){ cout<<hour<<":"<<mintue<<":"<<second<<endl;}friendtimeoperator+(timet1,timet2){ timet(0,0,0); t.second=t1.second+t2.second; if(t.second>=60) { t.second-=60;t.mintue++; } t.mintue=t1.mintue+t2.mintue; if(t.mintue>=60) { t.mintue-=60; t.hour++; } t.hour=t1.hour+t2.hour; t.hour=t.hour%24; returnt;}friendtimeoperator-(timet1,timet2){ timet(0,0,0); if(t1.second<t2.second) { t.second=t2.second-t1.second; } else t.second=t1.second-t2.second; if(t1.mintue<t2.mintue) { t.mintue=t2.mintue-t1.mintue; } else t.mintue=t1.mintue-t2.mintue; if(t1.hour<t2.hour) { t.hour=t2.hour-t1.hour; } else t.hour=t1.hour-t2.hour; returnt;}private:inthour,mintue,second;};voidmain(){ timet1(12,12,12),t2(12,12,12); timet(0,0,0); t1.get(); t2.get(); t=t1-t2; cout<<"兩時(shí)間的差:"; t.disp(); t=t1+t2; cout<<"兩時(shí)間的和:"; t.disp();}2、#include<iostream.h>#include<math.h>classtriangle{public: triangle(inta1,intb1,intc1) {a=a1;b=b1;c=c1;p=(a+b+c)/2;sp=sqrt(p*(p-a)*(p-b)*(p-c)); } voiddisp() { cout<<"三角形面積為:"<<sp<<endl; }frienddoubleoperator+(trianglet1,trianglet2) { returnt1.sp+t2.sp; }private: inta,b,c;doublep,sp;};voidmain(){ doubles; trianglet1(3,4,5),t2(5,6,7);t1.disp(); t2.disp(); s=t1+t2; cout<<"兩三角形面積之和為:"<<s<<endl;}3、#include<iostream>usingnamespacestd;classA{public: A(inti){x=i;} voiddisp() { cout<<"x="<<x<<endl; }private: intx;};classB:publicA{public: B(inti,intj):A(i){y=j;} virtualvoiddisp() { cout<<"y="<<y<<endl; }private: inty;};intmain(){ A*p,a(1); Bb(2,3); p=&a;p->disp(); p=&b;p->disp(); return0;}4、#include<iostream>#include<cmath>usingnamespacestd;classshape{public: virtualfloatarea()=0;};classtriangle:publicshape{public: triangle(inta1,intb1,intc1){a=a1;b=b1;c=c1;} floatarea() { cout<<"請(qǐng)輸入三角形三邊長(zhǎng):"; cin>>a>>b>>c; while((a+b<=c)||(a+c<=b)||(b+c<=a)) { cout<<"無法構(gòu)成三角形!請(qǐng)重新輸入:"; cin>>a>>b>>c; } p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); cout<<"三角形面積:"<<s<<endl; returns; }private: inta,b,c; floatp,s;};classcircle:publicshape{public: circle(floatr){rad=r;} floatarea() { cout<<"請(qǐng)輸入圓的半徑:"; cin>>rad; s=rad*rad*3.14; cout<<"圓的面積:"<<s; returns; }privat
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 形體房安全管理制度
- 徹底不用氣管理制度
- 德力西福利管理制度
- 心里催眠室管理制度
- 快遞操作間管理制度
- 急凍庫安全管理制度
- 總監(jiān)辦會(huì)議管理制度
- 成品罐使用管理制度
- 我校培訓(xùn)費(fèi)管理制度
- 掘進(jìn)市場(chǎng)化管理制度
- 供電可靠性理論考試題庫大全-下(填空題)
- 社工溝通技巧課件
- 全國(guó)現(xiàn)場(chǎng)流行病學(xué)調(diào)查職業(yè)技能競(jìng)賽考試題及答案
- 接地實(shí)驗(yàn)報(bào)告
- 七年級(jí)英語下學(xué)期期末考試(無錫卷)七年級(jí)英語下冊(cè)單元重難點(diǎn)易錯(cuò)題精練(牛津譯林版)
- 2019年天津市普通高中學(xué)業(yè)水平考試地理試卷(含答案)
- 煙囪工程技術(shù)標(biāo)準(zhǔn)
- 2024年春季學(xué)期外國(guó)文學(xué)基礎(chǔ)#期末綜合試卷-國(guó)開(XJ)-參考資料
- 農(nóng)田耕作機(jī)械合同模板范文
- 江西省南昌市江西科技師范大學(xué)附屬中學(xué)2023-2024學(xué)年高一下學(xué)期第二次月考數(shù)學(xué)試卷
- 完整版2024年“安全生產(chǎn)月”課件
評(píng)論
0/150
提交評(píng)論