繼承與派生參考代碼_第1頁
繼承與派生參考代碼_第2頁
繼承與派生參考代碼_第3頁
繼承與派生參考代碼_第4頁
繼承與派生參考代碼_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1197:繼承與派生1Description請以點類Point為基類派生出一個圓類Circle。圓類Circle的數(shù)據(jù)成員為r(私有屬性,存儲圓的半徑,圓心的點坐標(biāo)通過繼承點類Point加以實現(xiàn)),成員函數(shù)有構(gòu)造函數(shù)Circle、計算圓的面積函數(shù)Area、計算圓的周長函數(shù)Perimeter和輸出函數(shù)Display,其中構(gòu)造函數(shù)實現(xiàn)基類和圓類的數(shù)據(jù)成員的初始化,Display函數(shù)實現(xiàn)圓心坐標(biāo)(利用基類Point的Display實現(xiàn))、圓的半徑、圓的面積(利用Area函數(shù)實現(xiàn))和圓的周長(利用Perimeter函數(shù)實現(xiàn))的輸出。請編寫圓類的定義及成員函數(shù)實現(xiàn),并在主函數(shù)中定義圓類對象,驗證各個函數(shù)

2、的正確性。說明:圓周率PI的取值為3.14已知Point類的定義及main代碼如下:(不允許改動)classPointpublic:Point(doublexx,doubleyy);/constructorvoidDisplay();/displaypointprivate:doublex,y;平面的點坐標(biāo)x,y;intmain()doublex,y,r;cinxyr;/圓心的點坐標(biāo)及圓的半徑CircleC(x,y,r);C.Display();/輸出圓心點坐標(biāo),圓的半徑,圓的面積,圓的周長return0;InputOutputSampleInput1.52.61.8SampleOutputC

3、enter:Point(1.5,2.6)Radius:1.8Area:10.1736Perimeter:11.304*#includeusingnamespacestd;classPointpublic:Point(doublexx,doubleyy)/constructorx=xx;y=yy;voidDisplay()/displaypointcoutCenter:Point(x,y)endl;private:doublex,y;平面的點坐標(biāo)x,y;classCircle:publicPointprivate:doubler;public:Circle(doublexx,doubleyy,d

4、oublerr):Point(xx,yy)r=rr;doubleArea()return3.14*r*r;doublePerimeter()return2*3.14*r;voidDisplay()Point:Display();coutRadius:rendl;coutArea:Area()endl;coutPerimeter:Perimeter()xyr;/圓心的點坐標(biāo)及圓的半徑CircleC(x,y,r);C.Display();/輸出圓心點坐標(biāo),圓的半徑,圓的面積,圓的周長return0;1217:繼承與派生2DescriptionPerson類派生大學(xué)生CollegeStu類(1)。設(shè)

5、計一個Person類,其屬性包括姓名name和身份證號id,其中name為指針類型,id為整型,編寫成員函數(shù):構(gòu)造函數(shù)Person、Display函數(shù)(顯示數(shù)據(jù)成員信息)和析構(gòu)函數(shù);由Person類派生出大學(xué)生類CollegeStu,其屬性有專業(yè)subject(指針類型),C+程序設(shè)計課程成績score(double型),編寫構(gòu)造函數(shù)(實現(xiàn)數(shù)據(jù)初始化)、輸出函數(shù)Display(包括name,id,subject,score)。main的代碼如下:(不允許改動)intmain()charname81,subject81;intid;doublescore;cinnameidsubjectscor

6、e;CollegeStucs(name,id,subject,score);cs.Display();return0;InputOutputSampleInputZhangsan2Computer89.5SampleOutputName:ZhangsanID:2Subject:ComputerC+Score:89.5*#include#includeusingnamespacestd;classPersonprivate:char*name;intid;public:Person()name=NULL;id=0;Person(char*name1,intid1)name=newcharstrl

7、en(name1)+1;strcpy(name,name1);id=id1;Person()deletename;voidDisplay()coutName:nameendl;coutID:idendl;classCollegestu:publicPersonprivate:char*subject;doublescore;public:Collegestu()subject=NULL;score=0;Collegestu(char*name1,intid1,char*subject1,doublescore1):Person(name1,id1)subject=newcharstrlen(s

8、ubject1)+1;strcpy(subject,subject1);score=score1;Collegestu()deletesubject;voidDisplay()Person:Display();coutSubject:subjectendl;coutC+Score:scorenameidsubjectscore;Collegestucs(name,id,subject,score);cs.Display();return0;1218:繼承與派生3DescriptionPerson類派生大學(xué)生CollegeStu類(2)。設(shè)計一個Person類,其屬性包括姓名name和身份證號i

9、d,其中name為指針類型,id為整型,編寫成員函數(shù):構(gòu)造函數(shù)Person、Display函數(shù)(顯示數(shù)據(jù)成員信息)和析構(gòu)函數(shù);由Person類派生出大學(xué)生類CollegeStu,其屬性有專業(yè)subject(指針類型),C+程序設(shè)計課程成績score(double型),編寫構(gòu)造函數(shù)(實現(xiàn)數(shù)據(jù)初始化)、輸出函數(shù)Display(只輸出subject,score)。main的代碼如下:(不允許改動)intmain()charname81,subject81;intid;doublescore;cinnameidsubjectscore;輸入學(xué)生的姓名、id號、專業(yè)、成績CollegeStucs(nam

10、e,id,subject,score);cs.Person:Display();輸出姓名,idcs.Display();/輸出專業(yè)、成績return0;InputOutputSampleInputLixu5Software87.5SampleOutputName:LixuID:5Subject:SoftwareC+Score:87.5#include#includeusingnamespacestd;classPersonprivate:char*name;intid;public:Person()name=NULL;id=0;Person(char*name1,intid1)name=new

11、charstrlen(name1)+1;strcpy(name,name1);id=id1;Person()deletename;voidDisplay()coutName:nameendl;coutID:idendl;classCollegeStu:publicPersonprivate:char*subject;doublescore;public:CollegeStu()subject=NULL;score=0;CollegeStu(char*name1,intid1,char*subject1,doublescore1):Person(name1,id1)subject=newchar

12、strlen(subject1)+1;strcpy(subject,subject1);score=score1;CollegeStu()deletesubject;voidDisplay()coutSubject:subjectendl;coutC+Score:scorenameidsubjectscore;輸入學(xué)生的姓名、id號、專業(yè)、成績CollegeStucs(name,id,subject,score);cs.Person:Display();輸出姓名,idcs.Display();/輸出專業(yè)、成績return0;1219:繼承與派生4Description已知Base為基類,派生出

13、Derived類,兩個類的定義及main的代碼如下(不允許改動),請完成Base類和Derived類的構(gòu)造函數(shù)和析構(gòu)函數(shù),能夠根據(jù)輸入獲取相應(yīng)的輸出。classBaseprivate:intb;public:Base(int);Base();classDerived:publicBaseprivate:intd;public:Derived(int,int);Derived();intmain()inta,b;cinab;Deriveddr(a,b);return0;InputOutputSampleInput13SampleOutputBase1sayshelloDerived3sayshi

14、Derived3saysbyeBase1saysgoodbye*#includeusingnamespacestd;classBaseprivate:intb;public:Base(intc)b=c;coutBasebsayshelloendl;Base()coutBasebsaysgoodbyeendl;classDerived:publicBaseprivate:intd;public:Derived(intc,intb):Base(c)d=b;coutDeriveddsayshiendl;Derived()coutDeriveddsaysbyeab;Deriveddr(a,b);ret

15、urn0;1220:繼承與派生5Description由Array類派生出有序數(shù)組SortArray類,SortArray類中實現(xiàn)有序數(shù)組的插入。已知Array類的定義如下(不允許增加成員函數(shù)):classArraypublic:Array();構(gòu)造函數(shù),初始化為空數(shù)組(length置為0)intLength();/獲取數(shù)組的實際長度doubleGet(intpos);獲取data中下標(biāo)為pos的元素的值voidInsert(intpos,doublex);/在下標(biāo)pos處插入xvoidDisplay();/輸出線性表private:doubledataMaxSize;存儲元素(MaxSize

16、為常量)intlength;/數(shù)組的實際長度;SortArray類定義如下(不允許增加成員函數(shù)):classSortArray:privateArraypublic:SortArray();intLength();/獲取數(shù)組的實際長度doubleGet(intpos);獲取data中下標(biāo)為pos的元素的值voidDisplay();/輸出線性表voidInsert(doublex);/遞增有序數(shù)組中插入x,使序列仍有序;請實現(xiàn)Array類和SortArray類的成員函數(shù),main中輸入若干個實數(shù),以0結(jié)束,利用SortArray類中的Insert函數(shù)將它們插入data中,得到有序序列,再利用D

17、isplay函數(shù)輸出有序序列。代碼如下(不允許修改):intmain()SortArraysa;doublenum;while(1)cinnum;if(fabs(num)=1e-6)break;trysa.Insert(num);/catch(char*message)coutmessageendl;/如失敗提示失敗信息sa.Display();return0;InputOutputSampleInput2.56.78.32.86.536.827.330SampleOutputThelength:7Theelements:2.52.86.536.76.827.338.3*#include#in

18、cludeusingnamespacestd;constintMaxSize=100;/順序表的最大長度classArraypublic:Array();構(gòu)造函數(shù),初始化為空數(shù)組(length置為0)intLength();/獲取順序表實際長度doubleGet(intpos);獲取下標(biāo)為pos的元素的值voidInsert(intpos,doublex);在下標(biāo)pos處插入xvoidDisplay();/輸出線性表private:doubledataMaxSize;/存儲元素intlength;/數(shù)組的實際長度;Array:Array()length=0;intArray:Length()r

19、eturnlength;doubleArray:Get(intpos)if(poslength-1)/下標(biāo)不合法throwIllegalposition;returndatapos;voidArray:Insert(intpos,doublex)/在下標(biāo)pos處插入xinti;if(length=MaxSize)/表滿不能插入throwOverflow;if(poslength)/下標(biāo)不合法throwIllegalposition;for(i=length-1;i=pos;i-)將下標(biāo)大于等于pos的元素后移datai+1=datai;datapos=x;在下標(biāo)pos處插入元素xlength+;/線性表長度增1voidArray:Display()/輸出線性表inti;coutThelength:lengthendl;coutTheelements:;for(i=0;ilength;i+)coutdatai;cout=MaxSize)throwOverflow;for(i=0;ix)break;Array

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論