C++試驗三派生類與繼承_第1頁
C++試驗三派生類與繼承_第2頁
C++試驗三派生類與繼承_第3頁
C++試驗三派生類與繼承_第4頁
C++試驗三派生類與繼承_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗三派生類與繼承班級:123班姓名:朱廣金學(xué)號:122536一、實驗?zāi)康?、學(xué)習(xí)類的繼承,能夠定義和使用類的繼承關(guān)系。2、學(xué)習(xí)派生類的聲明與定義方法。3、掌握類的定義和對象的聲明。4、熟悉公有派生和私有派生的訪問特性。5、掌握派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序。6、掌握利用訪問聲明調(diào)整基類成員在派生類中的訪問屬性。二、試驗內(nèi)容1、下面的程序可以輸出ASCII字符與所對應(yīng)的數(shù)字的對照表。修改下列程序,使其可以輸出字母a到z(或任意兩個字符間)與所對應(yīng)的數(shù)字的對照表。#include<iostream>/mm* 1omanip的作用:* 主要是對cin,cout之類的一些操縱運算子,

2、比如setfiU,setw,setbase,setprecision等等。它是I/。流控制頭文件,就像C里面的格式化輸出一樣以下是一些常見的控制函數(shù)的*dec置基數(shù)為1。相當(dāng)于"%d"* hex置基數(shù)為16相當(dāng)于,姒“"t置基數(shù)為8相當(dāng)于* setfill(c)設(shè)填充字符為c* setprecision(n)設(shè)顯示有效數(shù)字為n位* setw(n)設(shè)域?qū)挒閚個字符* 這個控制符的意思是保證輸出寬度為no#include<1omanip>usingnamespacestd;/基類classtable(public:/構(gòu)造函數(shù)table(charp,char

3、q)(1=P;j=q;)voidascii(void);1歡迎下載protected:chari;charj;);/voidtable:ascii(void)(intk=1;for(;i<=j;i+)(每12個換行派生類的構(gòu)造函數(shù)cout<<setw(4)<<i<<(int)i;if(k)%12=0)/cout<<Mn"k+;)cout<<MnM;/派生類classder.table:publictable(public:der_table(charp,charq,char*m):table(p,q)/(c=m;)vo

4、idprint(void);protected:char*c;);/voidder_table:print(void)(cout<<c<<MnM;table:ascii();/主函數(shù)intmain()(der_tableoblfa/z','ASCIIvalue-char);obLprint();return0;2歡迎下我精品文檔I*提示:修改后的主程序為:intmatn()der_tableob(a7z,MASCIIvalue-charM);ob.print();return0;*ASCIIvalueclktra978nl09xl20y121Pressa

5、nyXb98c”diMSeUJlflM2glU3hlMiltfbJlWbhlU7nll0olllp112q112f114sllGtll&u!17ull8w119zi22keytocontinuekMSKSDBBBn&flBalDBBSSSIHHEHHBBBHHiflEnMHHSSHHBKSHEISKBHBHBBaHHEIHOIHSflSSEEflSB*2、已有類Time和Date,要求設(shè)計一個派生類Birthtime,*它繼承類Time和Date,并且增加一個數(shù)據(jù)成員Childname用于表示小孩的名字,*同事設(shè)計主程序顯示一個小孩的出生時間和名字。*I/*#1nclude&l

6、t;iostream>usingnamespacestd;#include<string>iiiiiilliiiiiiilliiiiillilliiiiiiinnmumunmuuhuuuuuhunun/classTimepublic:Time(inth,intmi,1nts)(hours=h;minutes=mi;seconds=s;)voiddisplay()(cout«”出生時間:"vvhoursvv叩寸”vvminutesvv"分"vvsecondsw”秒“vvendl;3歡迎下我精品文檔)protected:inthours;i

7、ntminutes;intseconds;);/classDatepublic:Date(intm,intdjnty)month=m;day=d;year=y;)voiddisplayO£cout«"出生年月:"<<year<<"年"<<month<<"月"«day«"日"«endl;protected:intmonth;intday;intyear;);/classBirthTime:publicTime,publi

8、cDatepublic:BirthTime(inth,1ntmi,ints,intm,intd,intn):Time(s,h,m),Date(m,d,y)name=n;)voiddisplay()cout<<“姓名為:"<<name<<endl;private:stringname;4歡迎下我精品文檔/小明)intmatn()BirthTImechild(36,34,12,11,30,2013,“child.displayO;child.Date:display();child.Time:display();return0;3、編寫一個學(xué)生和教師的

9、數(shù)據(jù)輸入和顯示程序。學(xué)生數(shù)據(jù)有編號、姓名、性別、年齡、系別和成績,教師數(shù)據(jù)有編號、姓名、性別、年齡、職稱和部門。Person,并作為學(xué)生類Student要求將編號、姓名、性別、年齡的輸入和顯示設(shè)計成一個類和教師類Teacher的基類。*循nclude<iostream>usingnamespacestd;#include<string>/classPerson(public:Person(intnu,stringna,stringse,intag)number=nu;name=na;sex=se;age=ag;)voiddisplay()(coutw”編號:<&l

10、t;number«endl;coutw”姓名:M«name<<endl;coutw”性另J:M<<sex<<endl;cout<<“年齡:"«age<<endl;Jprivate:int number; /編號string name; /姓名string sex; /性別int age; /年齡);/class Studentrpubllc Person (public:Student(int nu,string na,stringsc):Person(nu,na,se,ag)se,int ag

11、,string fa,doublefaculty=fa;score=sc;void displayOcout«M 系別:"«faculty<<endl; cout<<M 成績:"<<score<<endl;private:string faculty; /系別double score; /成績se,intag,stringpo,string/classTeacher:publicPersonpublic:Teacher(1ntnu,stringna,stringde):Person(nu,na,se,ag)

12、position=po;department=de;)voiddisplayO(cout«M職稱:"«position<<endl;coutw”部門:M«department<<endl;private:6歡迎下載stringposition;/職稱stringdepartment;音部門;/intmain()(Studenta(122536,"小明","男",19計算機院",87);Teacherb(122533;,王明:男33,"特級教師","教務(wù)

13、處)coul“學(xué)生“<<endl;a.Person:displayo;a. displayO;coutw”老師”endl;b. Person:d1splay0;b.displayO;return0;)J*C/illscrsAAdministrjtorXPesktciplzhiJguargjinxDebugzhu.exe122536小明男芋算機院87122E33王明branypk&ytocontinue4、給出下面的基類:classarea(protected:doubleheight;doublewidth;public:area(doubleh,doublew)heigh

14、t=h;width=w;)7歡迎下我精品文檔virtualdoublegetarea()=0;);【要求】(1)建立基類area的倆個派生類rectangle與isosceles,讓每一,個派生類都包含一個函數(shù)getarea(),分別用來返回矩形與三角形的面積。用構(gòu)造函數(shù)對height與width進行初始化。(2)寫出主程序,用來求height與width分別為10.0與5.0的矩形面積,以及求height與width分別為4.0與6.。的三角形面積。(3)要求通過使用基類指針訪問虛函數(shù)的方法(即運行時的多態(tài)性)分別求出矩形和三角形面積。*I/*#include<iostream>

15、usingnamespacestd;#include<string>/Imhhclassareaprotected:doubleheight;doublewidth;public:area(doubleh,doublew)(height=h;width=w;)virtualdoublegetarea()=0;);/limnclassrectangle:virtualpublicarea(public:rectangle(doubleh,doublew):area(h,w)(h1=h;w1=w;)virtualdoublegetarea()(cout«"矩形的面積

16、為:wendl;returnh1*w1;private:doublehi;doublew1;):IiiilliiiiiiIiiiiiiiiIilliiiiiiilliiuuuuuuuIunhuhunnmunnu/IHUHclassisosceles:virtualpublicarea(public:1sosceles(doubleh,doublew):area(h,w)(h2=h;w2=w;)virtualdoublegetarea()(coutvv"三角形的面積:"<<(h2*w2)/2«endl;return(h2*w2)/2;)private:d

17、oubleh2;doublew2;);/intmain()(rectanglea(10.0,5.0);a. getarea();isoscelesb(4.0,6.0);b. getarea();return0;*/rfCAJJicr3bAdmirinDcbugVh_Lc典>>矩形的面積為£5。三窗影的面積t12ankeytocontinue*9歡迎下我品文檔5、編寫一個程序,遞歸調(diào)用被繼承的基類成員函數(shù),實現(xiàn)求素數(shù)的功能。#include<iostream>usingnamespacestd;/classNumberpublic:Number()0Number(inti)(m=i;)boolisprime(1nti);protected:intm;);/boolNumber:ispr1me(inti)(if(m=2)return1;if(m=11|m%2=0)return0;if(m%i!=0)returnispr1me(i+2);elsereturn0;if(i>m/2)return1;

溫馨提示

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

最新文檔

評論

0/150

提交評論