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

下載本文檔

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

文檔簡介

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

2、比如setfiU,setw,setbase,setprecision等等。它是I/。流控制頭文件,就像C里面的格式化輸出一樣以下是一些常見的控制函數(shù)的*dec置基數(shù)為1。相當于"%d"* hex置基數(shù)為16相當于,姒“"t置基數(shù)為8相當于* setfill(c)設填充字符為c* setprecision(n)設顯示有效數(shù)字為n位* setw(n)設域?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,要求設計一個派生類Birthtime,*它繼承類Time和Date,并且增加一個數(shù)據(jù)成員Childname用于表示小孩的名字,*同事設計主程序顯示一個小孩的出生時間和名字。*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、編寫一個學生和教師的

9、數(shù)據(jù)輸入和顯示程序。學生數(shù)據(jù)有編號、姓名、性別、年齡、系別和成績,教師數(shù)據(jù)有編號、姓名、性別、年齡、職稱和部門。Person,并作為學生類Student要求將編號、姓名、性別、年齡的輸入和顯示設計成一個類和教師類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,"特級教師","教務

13、處)coul“學生“<<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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論