十二周報告三

2021-06-06 07:45:46 字數 3124 閱讀 9267

* 輸入描述:

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

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

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

(3)執行程式,享受開摩托的過程。(bb平台上提供了乙個可執行檔案,可以先執行再程式設計。不必申請駕照,這個電單車很安全。)

(4)在報告中回答問題:本題中使用虛基類的好處是什麼?

#include #include#include using namespace std;

enum vehiclestaus ; //車輛狀態:泊車、行進

class vehicle //車輛類

;vehicle::vehicle(int maxs, int w) //建構函式,初始時,當前速度總為0且處在停車狀態

void vehicle:: start() //由rest狀態到running, 初速為1

else }

void vehicle::stop() //由running狀態到rest, 當前速度小於5時,才允許停車

else }

void vehicle::speed_up() //加速,呼叫1次,速度加1

}void vehicle::slow_down() //減速,呼叫1次,速度減1,速度為0時,停車

}class bicycle :virtual public vehicle//(1)自行車類的虛基類為車輛類

};class motorcar :virtual public vehicle//(2)機動車類的虛基類也為車輛類

//定義建構函式

void addpassenger(int p=1); //搭載乘客,超員要拒載,有人下車時,p為負數。當然車上乘客至少有1個(司機)。上下車時要保證安全……

};void motorcar ::addpassenger(int p) //搭載乘客,超員要拒載,有人下車時,p為負數。當然車上乘客至少有1個(司機)。上下車時要保證安全……

status=rest;

passengernum= passengernum+1;

if( passengernum>3) }

class motorcycle: public bicycle,public motorcar//(3)電單車類的基類為自行車類和機動車類

//定義建構函式

void show(); //顯示電單車的執行狀態

};void motorcycle::show()

else

cout<<"車速:"m.show();

cout<}

system("pause");

return 0;

}

執行結果:

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(啟動)      狀態:行進    車速:1/90    當前乘員:1/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(加速)      狀態:行進    車速:2/90    當前乘員:1/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(加速)      狀態:行進    車速:3/90    當前乘員:1/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(加速)      狀態:行進    車速:4/90    當前乘員:1/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(加速)      狀態:行進    車速:5/90    當前乘員:1/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(加速)      狀態:行進    車速:6/90    當前乘員:1/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(停車)      當前車速太快,請減速再停車!狀態:行進    車速:6/90    當前乘員

:1/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(減速)      狀態:行進    車速:5/90    當前乘員:1/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(有人上車)  車輛正在行駛,請停車後再上下車!狀態:停車    車速:5/90    當前

乘員:2/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(停車)      狀態:停車    車速:0/90    當前乘員:2/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(啟動)      狀態:行進    車速:1/90    當前乘員:2/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(有人下車)  車輛正在行駛,請停車後再上下車!狀態:停車    車速:1/90    當前

乘員:3/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(停車)      狀態:停車    車速:0/90    當前乘員:3/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

操作(啟動)      狀態:行進    車速:1/90    當前乘員:3/3

請操作:1-啟動  2-加速  3-減速  4-有人上車  5-有人下車  6-停車 0-結束

上機感言:

在本題中使用虛基類,避免了因資料成員重複而出現二歧義性問題,雖然可以用限制定義域的方法實現,可在使用過程中易出錯,且不方便!用了虛基類以後,這樣就使最後派生出的類中只有一套資料成員,不會出現此類問題。

第十二周報告二

輸入描述 分別定義teacher 教師 類和cadre 幹部 類,採用多重繼承方式由這兩個類派生出新類teacher cadre 教師兼幹部 要求 1 在兩個基類中都包含姓名 年齡 性別 位址 等資料成員。2 在teacher類中還包含資料成員title 職稱 在cadre類中還包含資料成員post...

第十二周報告四

輸入描述 類的組合與繼承 1 先建立乙個point 點 類,包含資料成員x,y 座標點 2 以point為基類,派生出乙個circle 圓 類,增加資料成員 半徑 基類的成員表示圓心 3 編寫上述兩類中的構造 析構函式及必要的輸入輸出函式 4 定義友元函式int locate,判斷點p在圓c上 圓c...

C 第十二周報告2

高效評分器 作 者 劉江波 完成日期 2011 年 11 月 09 日 版本號 v 11.09 對任務及求解方法的描述部分 輸入描述 選手的原始成績 問題描述 各評委打出的成績介於0 10之間,計分規則為去掉乙個最高分和乙個最低分後取平均。其他要求 輸出錯誤要能馬上重新輸入 評委人數在程式中的修改要...