物件導向程式設計複習

2022-11-28 13:15:05 字數 2592 閱讀 3603

1.宣告乙個複數類complex,過載運算子「+」,「-」,使之能用於複數的加、減,運算子過載函式作為complex類的成員函式。請程式設計序實現。

2. 分別宣告teacher(教師)類和cadre(幹部)類,採用多重繼承方式由這兩個類派生出新類teacher_cadre(教師兼幹部)。要求:

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

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

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

(4) 在類體中宣告成員函式,在類外定義成員函式。

在派生類teacher_cadre的成員函式show中呼叫teacher類中的display函式,輸出姓名、年齡、性別、職稱、位址、**,然後再用cout語句輸出職務與工資。

3.已定義乙個shape抽象類,在此基礎上派生出矩形rectangle和圓形circle類,二者都有getperim()函式計算物件的周長,並編寫測試main()函式。

class shape

~shape(){}

virtual float getperim()=0;

}4.編寫乙個有關日期(年、月、日)和時間(時、分、秒)的程式。該程式建立三個類,其中乙個是日期的類date,乙個是時間的類time,另乙個是日期和時間類datetime,它是前面兩個類為基類的派生類。

要求通過datetime的物件能輸出指定日期和時間。

5.程式設計計算圖形的面積。程式可計算圓形、長方形、正方形的面積,執行時先提示使用者選擇圖形的型別,然後,對圓形要求使用者輸入半徑值,對長方形使用者輸入長和寬的值,對正方形要求使用者輸入邊長的值,計算出面積的值後將其顯示出來。

要求:能夠計算不同型別形狀的的面積,並充分體現物件導向程式設計的類、物件、繼承、多型特性。(海**式求三角形面積:

a,b,c分別為三角形三邊長,p=(a+b+c)/2,則三角形面面積為s= sqrt(p * (p - a) * (p - b) * (p - c)))

6.需要求3個長方體的體積,請編乙個基於物件的程式。資料成員包括length(長)、width(寬)、height(高)。要求用成員函式實現以下功能:

(1) 由鍵盤輸入3個長方體的長、寬、高;

(2) 計算長方體體積;

(3) 輸出3個長方體的體積。

7.商店銷售某一商品,商店每天公布統一的折扣(discount)。同時允許銷售人員在銷售時靈活掌握售價(price),在此基礎上,對一次購10件以上者還可以享受9.

8折優惠。現已知當天3個銷貨員銷售情況為

請程式設計序,計算出當日此商品的總銷售款sum以及每件商品的平均售價。要求用靜態資料成員和靜態成員函式。

程式原始碼:

1.#include

#include

using namespace std;

class complex

complex operator + (const complex & rhs) const;

complex operator - (const complex & rhs) const;

complex operator * (const complex & rhs) const;

complex operator / (const complex & rhs) const;

};complex complex::operator + (const complex & rhs) const

complex complex::operator - (const complex & rhs) const

complex complex::operator * (const complex & rhs) const

complex complex::operator / (const complex & rhs) const

int main()

2.#include

#include

using namespace std;

class teacher

;class cadre

;class teacher_cadre:public teacher, public cadre //宣告多重繼承的teacher_cadre類

;teacher::teacher(string n, int a, char s, string add, long int te, string ti)

cadre::cadre(string n, int a, char s, string add, long int t, string p)

void teacher::display()

void cadre::display()

{cout << "name: " << name << endl;

cout << "age: " << age << endl;

cout << "***: " << *** << endl;

cout << "address: " << address << endl;

cout << "tel: " << tel << endl;

物件導向程式設計

第1頁共2頁 9 編寫乙個控制台程式,要求 編寫乙個函式get scores 接受使用者輸入的語文 數學 物理 化學和英語5科成績,在main 中利用get scores 接受輸入,然後計算總成績與平均成績,main 與get scores 之間不得使用全域性變數通訊。10 編寫乙個控制台程式,使用...

物件導向程式設計與面向過程程式設計

面向過程程式設計都會把程式 放在main 裡面。對於物件導向程式設計,我們就是離開過程化的世界,將事物抽象成物件,對物件的屬性抽象成變數,動作 行為等抽象成方法。就像自然界一樣,子代繼承父輩的屬性和方法 同時介面可以更靈活的重寫多個類的方法,體現了多型性。老闆娘兼專案經理要求阿珠和阿花兩個程式設計師...

物件導向程式設計期末複習題

vc 程式開發基礎 一 考試題型結構與分值 第一部分單項選擇題 共21題,1 15每題2分,16 21每題3分,共計48分 第二部分簡答題 每小題10分,共計30分 第三部分程式設計題 共計22分 二 練習題 1.vc 語言中下列敘述正確的是 a 不能使用do while語句構成的迴圈 b do w...