C++實驗三派生類與繼承_第1頁
C++實驗三派生類與繼承_第2頁
C++實驗三派生類與繼承_第3頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(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>/*iomanip的作用:*主要是對cin,cout之類的一些操縱運算子,

2、比如setfill,setw,setbase,setprecision等等。它是I/O流控制頭文件,就像C里面的格式化輸出一樣.以下是一些常見的控制函數(shù)的10相當(dāng)于"%d"16相當(dāng)于"%X"8相當(dāng)于"%o"設(shè)填充字符為c設(shè)顯示有效數(shù)字為n位*dec置基數(shù)為*hex置基數(shù)為*oct置基數(shù)為*setfill('c')*setprecision(n)*setw(n)設(shè)域?qū)挒閚個字符n。*這個控制符的意思是保證輸出寬度為*#include<iomanip>usingnamespacestd;/基類classtabl

3、epublic:/構(gòu)造函數(shù)table(charp,charq)i=p;j=q;voidascii(void);protected:chari;charj;;/voidtable:ascii(void)(intk=1;for(;i<=j;i+)(cout<<setw(4)<<i<<(int)i;if(k)%12=0)/每12個換行cout<<"n”;k+;cout<<"n"/派生類classder_table:publictable(public:der_table(charp,charq,char*

4、m):table(p,q)/派生類的構(gòu)造函數(shù)(c=m;voidprint(void);protected:char*c;/voidder_table:print(void)(cout<<c<<"n"table:ascii();/主函數(shù)intmain()(der_tableobl('a','z',"ASCIIvalue-char");obl.print();return0;提示:修改后的主程序為:intmain()(der_tableob('a','z',"A

5、SCIIvalue-char");ob.print();return0;*2、已有類Time和Date,要求設(shè)計一個派生類Birthtime,*它繼承類Time和Date,并且增加一個數(shù)據(jù)成員Childname用于表示小孩的名字,*同事設(shè)計主程序顯示一個小孩的出生時間和名字。*/*#include<iostream>usingnamespacestd;#include<string>/IIIIclassTime(public:Time(inth,intmi,ints)(hours=h;minutes=mi;seconds=s;voiddisplay()(cou

6、t<<"出生時間:"<<hours<<”時"<<minutes<<"分"<<seconds<<"秒"<<endl;protected:inthours;intminutes;intseconds;/classDate(public:Date(intm,intd,inty)(month=m;day=d;year=y;voiddisplay()(cout<<"出生年月:"<<year<

7、<"年"<<month<<"月"<<day<<"日"<<endl;protected:intmonth;intday;intyear;/classBirthTime:publicTime,publicDate(public:BirthTime(inth,intmi,ints,intm,intd,inty,stringn):Time(s,h,m),Date(m,d,y)name=n;voiddisplay()cout<<"姓名為:"<

8、<name<<endl;private:stringname;/intmain()(BirthTimechild(36,34,12,11,30,2013,”child.display();child.Date:display();child.Time:display();return0;*/*3、編寫一個學(xué)生和教師的數(shù)據(jù)輸入和顯示程序。學(xué)生數(shù)據(jù)有編號、姓名、性別、年齡、系別和成績,教師數(shù)據(jù)有編號、姓名、性別、年齡、職稱和部門。要求將編號、姓名、性別、年齡的輸入和顯示設(shè)計成一個類Person,并作為學(xué)生類Student和教師類Teacher的基類。*#include<io

9、stream>usingnamespacestd;#include<string>/classPerson(public:Person(intnu,stringna,stringse,intag)(number=nu;name=na;sex=se;age=ag;voiddisplay()(cout<<"編號:"<<number<<endl;cout<<"姓名:"<<name<<endl;cout<<"性另U:"<<sex&

10、lt;<endl;cout<<"年齡:"<<age<<endl;private:intnumber;/編號stringname;/姓名stringsex;/性別intage;/年齡;/classStudent:publicPersonpublic:Student(intnu,stringna,stringse,intag,stringfa,doublesc):Person(nu,na,se,ag)faculty=fa;score=sc;voiddisplay()cout<<"系另1J:"<<

11、;faculty<<endl;cout<<"成績:"<<score<<endl;private:stringfaculty;/系別doublescore;/成績;/classTeacher:publicPersonpublic:Teacher(intnu,stringna,stringse,intag,stringpo,stringde):Person(nu,na,se,ag)position=po;department=de;voiddisplay()cout<<"職稱:"<<po

12、sition<<endl;cout<<"部門:"<<department<<endl;private:stringposition;/職稱stringdepartment;/部門;/intmain()(Studenta(122536,"小明”,”男”,19,”計算機院”,87);Teacherb(122533,"王明","男",33,"特級教師”,”教務(wù)處");cout<<"學(xué)生”<<endl;a.Person:displa

13、y();a. display();cout<<"老師"<<endl;b. Person:display();b.display();return0;/*'C/iUscrsAdministrjtorXPesIrtcip'izhiJguargjinxDebugzhu.exe122536小明男學(xué)算機院87122E33王明史22anypkeytocontinue4、給出下面的基類:classarea(protected:doubleheight;doublewidth;public:area(doubleh,doublew)(height=h

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

15、;#include<string>/classareaprotected:doubleheight;doublewidth;public:area(doubleh,doublew)height=h;width=w;virtualdoublegetarea()=0;/classrectangle:virtualpublicareapublic:rectangle(doubleh,doublew):area(h,w)h1=h;w1=w;virtualdoublegetarea()cout<<"矩形的面積為:"<<h1*w1<<en

16、dl;returnh1*w1;private:doublehi;doublew1;;/classisosceles:virtualpublicarea(public:isosceles(doubleh,doublew):area(h,w)(h2=h;w2=w;virtualdoublegetarea()(cout<<"三角形的面積:"<<(h2*w2)/2<<endl;return(h2*w2)/2;private:doubleh2;doublew2;/intmain()(rectanglea(10.0,5.0);getarea();is

17、oscelesb(4.0,6.0);getarea();return0;*/*5、編寫一個程序,遞歸調(diào)用被繼承的基類成員函數(shù),實現(xiàn)求素數(shù)的功能。*#include<iostream>usingnamespacestd;/classNumberpublic:Number()Number(inti)m=i;boolisprime(inti);protected:intm;/boolNumber:isprime(inti)if(m=2)return1;if(m=1|m%2=0)return0;if(m%i!=0)returnisprime(i+2);elsereturn0;if(i>m/2)return1;/classprime:publicNumberpublic:prime(inti=0):Number(i);/intmain

溫馨提示

  • 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

提交評論