實(shí)驗(yàn)四 繼承與派生_第1頁(yè)
實(shí)驗(yàn)四 繼承與派生_第2頁(yè)
實(shí)驗(yàn)四 繼承與派生_第3頁(yè)
實(shí)驗(yàn)四 繼承與派生_第4頁(yè)
實(shí)驗(yàn)四 繼承與派生_第5頁(yè)
已閱讀5頁(yè),還剩3頁(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)介

1、實(shí)驗(yàn)四  派生類與繼承【實(shí)驗(yàn)類型】驗(yàn)證性實(shí)驗(yàn) 【實(shí)驗(yàn)課時(shí)】2學(xué)時(shí) 【實(shí)驗(yàn)?zāi)康摹浚?) 理解類的繼承的概念,能夠定義和使用類的繼承關(guān)系。(2) 掌握派生類的聲明與定義方法。(3) 熟悉公有派生和私有派生的訪問(wèn)特性。(4) 學(xué)習(xí)虛基類在解決二義性問(wèn)題中的作用?!緦?shí)驗(yàn)環(huán)境】硬件:計(jì)算機(jī)軟件:Microsoft Visual C+ 6.0【實(shí)驗(yàn)內(nèi)容】1、按要求閱讀、編寫、調(diào)試和運(yùn)行以下程序。(1)實(shí)驗(yàn)內(nèi)容定義一個(gè)基類MyArray,基類中可以存放一組整數(shù)。class MyArraypublic:    MyArray(int leng);  

2、  MyArray();    void Input();    void Display();protected:long int *alist;   / 指向動(dòng)態(tài)申請(qǐng)的一組空間int length;    / 整數(shù)的個(gè)數(shù)基類中有構(gòu)造函數(shù)、析構(gòu)函數(shù)、輸入數(shù)據(jù)和輸出數(shù)據(jù)的函數(shù)。定義一個(gè)類SortArray繼承自MyArray ,在該類中定義函數(shù)實(shí)現(xiàn)排序功能。定義一個(gè)類ReArray繼承自MyArray ,在該類中定義函數(shù)實(shí)現(xiàn)逆轉(zhuǎn)功能。定義一個(gè)類AverArray繼承自MyAr

3、ray ,在該類中定義函數(shù)Aver求解整數(shù)的平均值。定義NewArray類,同時(shí)繼承了SortArray, ReArray和AverArray,使得NewArray類的對(duì)象同時(shí)具有排序、逆轉(zhuǎn)、和求平均值的功能。在繼承的過(guò)程中聲明為虛基類,體會(huì)虛基類在解決二義性問(wèn)題中的作用。(2)實(shí)驗(yàn)程序 (參考)程序如下:#include "iostream.h"#include "process.h"class MyArraypublic:    MyArray(int leng);    MyArray()

4、;    void Input();    void Display();protected:    long int *alist;   / 指向動(dòng)態(tài)申請(qǐng)的一組空間    int length;       / 整數(shù)的個(gè)數(shù);MyArray:MyArray(int leng)   length=leng;    ali

5、st=new long intlength;    if(alist=NULL)             cout<<"對(duì)不起,創(chuàng)建失敗。請(qǐng)重試。"exit(1);       MyArray:MyArray()  delete alist;    cout<<"數(shù)組被清空。"<<e

6、ndl; void MyArray:Display()  / 顯示數(shù)組內(nèi)容   int i;    long int *p=alist;    for (i=0;i<length;i+,p+)    cout<<" "<<*p;void MyArray:Input()     / 從鍵盤若干整數(shù)   cout<<"請(qǐng)輸入:"<&l

7、t;length<<"個(gè)整數(shù):"    int i;    long int *p=alist;    for(i=0;i<length;i+,p+)    cin>>*p;class SortArray: virtual public MyArray private:       int len;      

8、; long int *sp;public:   SortArray(int leng):MyArray(leng)       len=leng;          Sort();   ;   void Sort()      sp=new long intlen;      long int q;

9、0;     sp=alist;      for(int i=0;i<len;i+)         for(int j=0;j<len-1;j+)           if(*(sp+j)>*(sp+j+1)          

10、           q=*(sp+j);            *(sp+j)=*(sp+j+1);            *(sp+j+1)=q;             ; class ReArray:

11、virtual public MyArray   / 這里是虛基類,public:    void Reverse()         rp=new long intlen;      long int q;      rp=alist;      for(int i=0;i<len/2;i+)  &#

12、160;  q=*(rp+i);        *(rp+i)=*(rp+len-i-1);        *(rp+len-i-1)=q;               ReArray(int leng):MyArray(leng)        &

13、#160; len=leng;      Reverse();    private:      int len;      long int *rp;class AverArray:virtual public MyArray    /  這里是虛基類,public:   double Aver()     

14、0; ap=new long intlen;     double q=0;     ap=alist;     for(int i=0;i<len;i+)       q=q+*ap;ap+;          q=q/len;     return q;   AverArray(

15、int leng):MyArray(leng)   len=leng; private:   int len;   long int *ap;class NewArray:public ReArray,public SortArray,public AverArray public:    NewArray(int leng);    NewArray();NewArray:NewArray(intleng):MyArray(leng),SortArray

16、(leng),ReArray(leng),AverArray(leng)  cout<<"n新數(shù)組正在創(chuàng)建。n"NewArray:NewArray()  cout<<"n新數(shù)組已被清空。n"void main()     char b;  int leng;   do        cout<<"請(qǐng)輸入數(shù)組長(zhǎng)度:"<<endl;  

17、;   cin>>leng;     while(leng<=0)     cout<<"數(shù)組長(zhǎng)度必須為大于零的整數(shù),請(qǐng)重新輸入數(shù)組長(zhǎng)度:n"exit(1);      cin>>leng;          cout<<"n開始:n"  

18、60;  NewArray n(leng);     n.Input();       cout<<"n您輸入的數(shù)組為:"<<endl;     n.Display();       / 顯示數(shù)組     n.Reverse();      /顯示逆序  

19、    cout<<"n倒序數(shù)組為:"<<endl;     n.Display();        / 顯示逆轉(zhuǎn)以前的情況    cout<<"n平均值是:"<<n.Aver()<<endl;/求平均值     n.Sort();     

20、;    /排序     cout<<"n排序后(從小到大)數(shù)組為:"<<endl;     n.Display();       / 顯示排序以后的情況                cout<<"nA繼續(xù)  Q

21、退出"<<endl;     cin>>b;  while(b='A'|b='a');執(zhí)行結(jié)果為: 2、編寫一個(gè)學(xué)生和教師數(shù)據(jù)輸入和顯示程序。(1)實(shí)驗(yàn)內(nèi)容編寫學(xué)生和教師數(shù)據(jù)輸入和顯示程序,學(xué)生數(shù)據(jù)有編號(hào)、姓名、班號(hào)和成績(jī),教師數(shù)據(jù)有編號(hào)、姓名、職稱和部門。要求將編號(hào)、姓名輸入和顯示設(shè)計(jì)成一個(gè)類person,并作為學(xué)生數(shù)據(jù)操作類student和教師數(shù)據(jù)操作類teacher的基類。(2)實(shí)驗(yàn)程序(參考)#include<iostream.h> cla

22、ss person  protected:   int m;   char A20;   char *name;  public:   void input()   cout<<"編號(hào):"     cin>>m;     cout<<"姓名:" 

23、0;   cin>>A;                   name=&A0;        void display()      cout<<"編號(hào):"<<m<<endl;   

24、   cout<<"姓名:"<<name<<endl; ;              class student:public person    protected:    int classnum, mark;public:    void input1()  

25、0; cout<<"輸入一個(gè)學(xué)生數(shù)據(jù):"<<endl;      input();      cout<<"班號(hào):"    cin>>classnum;      cout<<"成績(jī):"       cin&g

26、t;>mark;     void display1()   cout<<"顯示一個(gè)學(xué)生的數(shù)據(jù):"<<endl;      display();    cout<<"班號(hào):"<<classnum<<endl;    cout<<"成績(jī):"<<

27、;mark<<endl; ;class teacher: public person  protected:     char zhicheng20,bumen20;     char *p;  public:             void input2()     cout<<"顯示一個(gè)老師的數(shù)據(jù):"<<endl;  

28、;    input();      cout<<"職稱:"      cin>>zhicheng;      cout<<"部門:"      cin>>bumen;           void display2()      cout<<"顯示一個(gè)老師的數(shù)據(jù):"<<endl;

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論