C++實(shí)驗(yàn)三 派生類與繼承.doc_第1頁(yè)
C++實(shí)驗(yàn)三 派生類與繼承.doc_第2頁(yè)
C++實(shí)驗(yàn)三 派生類與繼承.doc_第3頁(yè)
C++實(shí)驗(yàn)三 派生類與繼承.doc_第4頁(yè)
C++實(shí)驗(yàn)三 派生類與繼承.doc_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)三 派生類與繼承班級(jí):123班 姓名:朱廣金 學(xué)號(hào):122536一、實(shí)驗(yàn)?zāi)康?、學(xué)習(xí)類的繼承,能夠定義和使用類的繼承關(guān)系。2、學(xué)習(xí)派生類的聲明與定義方法。3、掌握類的定義和對(duì)象的聲明。4、熟悉公有派生和私有派生的訪問(wèn)特性。5、掌握派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序。6、掌握利用訪問(wèn)聲明調(diào)整基類成員在派生類中的訪問(wèn)屬性。*/*二、試驗(yàn)內(nèi)容1、下面的程序可以輸出ASCII字符與所對(duì)應(yīng)的數(shù)字的對(duì)照表。修改下列程序,使其可以輸出字母a到z(或任意兩個(gè)字符間)與所對(duì)應(yīng)的數(shù)字的對(duì)照表。*#include/*iomanip的作用:*主要是對(duì)cin,cout之類的一些操縱運(yùn)算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制頭文件,就像C里面的格式化輸出一樣.以下是一些常見(jiàn)的控制函數(shù)的:*dec 置基數(shù)為10 相當(dāng)于%d*hex 置基數(shù)為16 相當(dāng)于%X*oct 置基數(shù)為8 相當(dāng)于%o*setfill( c ) 設(shè)填充字符為c*setprecision( n ) 設(shè)顯示有效數(shù)字為n位*setw( n ) 設(shè)域?qū)挒閚個(gè)字符*這個(gè)控制符的意思是保證輸出寬度為n。*#include using namespace std;/基類class tablepublic:/構(gòu)造函數(shù) table(char p,char q) i=p; j=q; void ascii(void);protected: char i; char j;/void table:ascii(void)int k=1; for (;i=j;i+)coutsetw(4)i(int)i;if(k)%12=0) /每12個(gè)換行coutn;k+;coutn;/派生類class der_table:public table public:der_table(char p,char q,char *m):table(p,q)/派生類的構(gòu)造函數(shù)c=m;void print(void);protected:char *c;/void der_table:print(void)coutcn;table:ascii();/主函數(shù)int main()der_table obl(a,z,ASCII value-char);obl.print();return 0;/*提示:修改后的主程序?yàn)椋篿nt main()der_table ob(a,z,ASCII value-char);ob.print();return 0;*/*2、已有類Time和Date,要求設(shè)計(jì)一個(gè)派生類Birthtime,*它繼承類Time和Date,并且增加一個(gè)數(shù)據(jù)成員Childname用于表示小孩的名字,*同事設(shè)計(jì)主程序顯示一個(gè)小孩的出生時(shí)間和名字。*/*#includeusing namespace std;#include/class Time public:Time(int h,int mi, int s)hours=h;minutes=mi;seconds=s;void display()cout出生時(shí)間:hours時(shí)minutes分seconds秒endl;protected:int hours; int minutes;int seconds;/class Datepublic: Date(int m,int d,int y) month=m; day=d; year=y; void display() cout出生年月:year年month月day日endl; protected: int month; int day; int year; ;/class BirthTime:public Time,public Datepublic:BirthTime(int h,int mi, int s,int m,int d,int y,string n):Time(s,h,m),Date(m,d,y) name=n;void display() cout姓名為:nameendl;private:string name;/int main() BirthTime child(36,34,12,11,30,2013,小明); child.display();child.Date:display();child.Time:display();return 0;*/*3、編寫一個(gè)學(xué)生和教師的數(shù)據(jù)輸入和顯示程序。學(xué)生數(shù)據(jù)有編號(hào)、姓名、性別、年齡、系別和成績(jī),教師數(shù)據(jù)有編號(hào)、姓名、性別、年齡、職稱和部門。要求將編號(hào)、姓名、性別、年齡的輸入和顯示設(shè)計(jì)成一個(gè)類Person,并作為學(xué)生類Student和教師類Teacher的基類。*#includeusing namespace std;#include/class Personpublic:Person(int nu,string na,string se,int ag)number=nu;name=na;sex=se;age=ag;void display()cout編號(hào): numberendl;cout姓名: nameendl;cout性別: sexendl;cout年齡: ageendl;private:int number; /編號(hào)string name; /姓名string sex; /性別int age; /年齡;/class Student:public Personpublic:Student(int nu,string na,string se,int ag,string fa,double sc):Person(nu,na,se,ag) faculty=fa;score=sc;void display()cout系別: facultyendl;cout成績(jī): scoreendl;private:string faculty; /系別double score; /成績(jī);/class Teacher:public Personpublic:Teacher(int nu,string na,string se,int ag,string po,string de):Person(nu,na,se,ag)position=po;department=de;void display()cout職稱: positionendl;cout部門: departmentendl;private:string position; /職稱string department; /部門;/int main()Student a(122536,小明,男,19,計(jì)算機(jī)院,87);Teacher b(122533,王明,男,33,特級(jí)教師,教務(wù)處);cout學(xué)生endl;a.Person:display();a.display();cout老師endl;b.Person:display();b.display();return 0;/*4、給出下面的基類:class area protected: double height; double width; public: area(double h,double w) height=h; width=w; virtual double getarea()=0;【要求】(1)建立基類area的倆個(gè)派生類rectangle與isosceles, 讓每一個(gè)派生類都包含一個(gè)函數(shù)getarea(),分別用來(lái)返回矩形與三角形的面積。用 構(gòu)造函數(shù)對(duì)height與width進(jìn)行初始化。(2)寫出主程序,用來(lái)求height與width分別為10.0與5.0的矩形面積,以及求height與width分別為4.0與6.0的三角形面積。(3)要求通過(guò)使用基類指針訪問(wèn)虛函數(shù)的方法(即運(yùn)行時(shí)的多態(tài)性)分別求出矩形和三角形面積。*/*#includeusing namespace std;#include/class areaprotected: double height; double width;public: area(double h,double w) height=h; width=w; virtual double getarea()=0;/class rectangle:virtual public areapublic:rectangle(double h,double w):area(h,w)h1=h;w1=w; virtual double getarea() cout矩形的面積為:h1*w1endl; return h1*w1;private:double h1;double w1;/class isosceles: virtual public areapublic:isosceles(double h,double w):area(h,w)h2=h;w2=w;virtual double getarea()cout三角形的面積:(h2*w2)/2endl;return (h2*w2)/2;private: double h2;double w2;/int main()rectangle a(10.0,5.0);a.getarea();isosceles b(4.0,6.0);b.getarea();return 0;*/*5、編寫一個(gè)程序,遞歸調(diào)用被繼承的基類成員函數(shù),實(shí)現(xiàn)求素?cái)?shù)的功能。*/#includeusing namespace std;/class Numberpublic: Number() Number(int i) m=i; bool isprime(int i);protected: int m;/bool Number:isprime(int i) if(m=2) return 1; if(m=1|m%2=0) return 0; if(m%i!=0) retu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論