天天看點

《C++語言基礎》實踐項目——多重繼承

【項目1 - 教師兼幹部類】

分别定義teacher(教師)類和cadre(幹部)類,采用多重繼承方式由這兩個類派生出新類teacher_cadre(教師兼幹部)。要求: 

(1)在兩個基類中都包含姓名、年齡、性别、位址、電話等資料成員。 

(2)在teacher類中還包含資料成員title(職稱),在cadre類中還包含資料成員post(職務),在teacher_cadre類中還包含資料成員wages(工資)。 

(3)對兩個基類中的姓名、年齡、性别、位址、電話等資料成員用相同的名字,在引用這些資料成員時,指定作用域。 

(4)在類體中聲明成員函數,在類外定義成員函數。 

(5)在派生類teacher_cadre的成員函數show中調用teacher類中的display函數,輸出姓名、年齡、性别、職稱、位址、電話,然後再用cout語句輸出職務與工資。

【項目2 - 機車繼承自行車和機動車】

在下面一段類的定義中,自行車類的虛基類為車輛類,機動車類的虛基類也為車輛類,機車類的基類為自行車類和機動車類,類之間均為公有繼承,如圖所示。

《C++語言基礎》實踐項目——多重繼承

(1)根據上面各類間關系的描述,補全下面程式段中空缺的代碼;

(2)實作程式中聲明的成員函數,注意相應操作中的動作發生的條件不能滿足時應給出提示。

(4)在報告中,請用自己的話寫清楚使用虛基類解決什麼問題?

參考運作結果如下:

【項目3】日期時間類

定義一個日期類date,資料成員包括年、月、日,setdate(int y,int m,int d)和printdate()函數分别用于設定日期和顯示日期;再定義一個時間類time,資料成員包括時、分、秒,settime(int h,int m,int s)和printtime()函數分别用于設定時間和顯示時間,在此基礎上再定義一個日期時間類timedate,充分利用已有的兩個類中提供的方法,實作日期和時間的設定和顯示。請實作類timedate,下面是用于測試的主函數及參考運作結果。

《C++語言基礎》實踐項目——多重繼承

【項目4 - 點、圓的關系】

(1)先建立一個point(點)類,包含資料成員x,y(坐标點);

(2)以point為基類,派生出一個circle(圓)類,增加資料成員(半徑),基類的成員表示圓心;

(3)編寫上述兩類中的構造、析構函數及必要運算符重載函數(本項目主要是輸入輸出);

(4)定義友元函數int locate,判斷點p與圓的位置關系(傳回值<0圓内,==0圓上,>0 圓外);

(5)在圓類上重載關系運算符(6種),使之能夠按圓的面積比較兩個圓的大小。自編main函數完成測試。

(6)與圓心相連的直線:給定一點p,其與圓心相連成的直線,會和圓有兩個交點,如圖。在上面定義的point(點)類和circle(圓)類基礎上,設計一種方案,輸出這兩點的坐标。

提示:

《C++語言基礎》實踐項目——多重繼承

繼續閱讀