第5章習(xí)題參考答案_第1頁
第5章習(xí)題參考答案_第2頁
第5章習(xí)題參考答案_第3頁
第5章習(xí)題參考答案_第4頁
第5章習(xí)題參考答案_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、9. 假定車可分為貨車和客車,客車又可分為轎車、面包車和公共汽車。請?jiān)O(shè)計(jì)相應(yīng)的類層次結(jié)構(gòu)。說明:可以把轎車、面包車和公共汽車定義為客車類的對象參考程序:#includeusing namespace std;class vehicle/ 定義基類vehiclepublic: / 公有函數(shù)成員 vehicle(int in_wheels,float in_weight); / 給數(shù)據(jù)成員初始化 int get_wheels(); / 獲取車輪數(shù) float get_weight(); / 獲取汽車重量 void setWeels(int wls); void setWeight(float wt

2、); void display() cout車輪數(shù):wheels 汽車重量:weightendl; private: / 私有數(shù)據(jù)成員 int wheels; / 車輪數(shù) float weight; / 表示汽車承重;vehicle:vehicle(int in_wheels,float in_weight)wheels = in_wheels;weight = in_weight;float vehicle:get_weight()return weight;int vehicle:get_wheels()return wheels;void vehicle:setWeels(int wls

3、)wheels = wls;void vehicle:setWeight(float wt)weight = wt;class truck:public vehicle / 定義貨車類truckprivate: / 新增私有數(shù)據(jù)成員 float weight_load; / 承重public: / 新增公有成員函數(shù) truck(int wheel,float wt,float wl):vehicle(wheel,wt) weight_load = wl; float getLoads() return weight_load; void display() vehicle:display();

4、 cout汽車承重weight_loadendl; ;/車和客車,客車又可分為轎車、面包車和公共汽車class car:public vehicle/ 定義客車類car int passenger_load; / 新增私有數(shù)據(jù)成員,表示載客數(shù)public: / 新增公有成員函數(shù)car(int in_wheels,float in_weight,int people=4):vehicle(in_wheels,in_weight)passenger_load = people;int getPassengers()return passenger_load;void setPassengers(i

5、nt people)passenger_load = people;void display() vehicle:display(); cout載客數(shù):passenger_loadendl;void main()truck truck1(8,400,100000);/ 貨車car car1(4,20);/ 客車car saloon_car(4,10,5);/ 轎車car microbus(6,10,18);/ 面包車car bus(6,20,30);/ 公共汽車/ 顯示相關(guān)信息truck1.display();cout-endl;car1.display();cout-endl;saloon_

6、car.display();cout-endl;microbus.display();cout-endl;bus.display();程序的運(yùn)行結(jié)果:車輪數(shù):8 汽車重量:400汽車承重100000-車輪數(shù):4 汽車重量:20載客數(shù):4-車輪數(shù):4 汽車重量:10載客數(shù):5-車輪數(shù):6 汽車重量:10載客數(shù):18-車輪數(shù):6 汽車重量:20載客數(shù):3010.設(shè)計(jì)一個能細(xì)分為矩形、三角形、圓形和橢圓形的“圖形”類。使用繼承將這些圖形分類,找出能作為基類部分的共同特征(如寬、高、中心點(diǎn)等)和方法(如初始化、求面積等),并看看這些圖形是否能進(jìn)一步劃分為子類。參考程序:#includeusing na

7、mespace std;class Figure/ 定義基類圖形類public:/ 公有函數(shù)成員 Figure(int wid)width = wid; float area() int getWidth()return width;private: / 私有數(shù)據(jù)成員 int width; / 寬度或半徑;class Rectangle:public Figure / 定義矩形類int height;public:Rectangle(int wid, int hei):Figure(wid)height = hei; float area()return getWidth() * height

8、;class Triangle:public Figure / 定義三角形類int height;public:Triangle(int wid, int hei):Figure(wid)height = hei;float area()return 1.0/2* getWidth() * height;class Circle:public Figure / 定義圓類public:Circle(int wid):Figure(wid)float area()return 3.14 * getWidth() * getWidth();void main()Rectangle rect(5,4)

9、;Triangle tri(5,4);Circle cir(5);cout矩形的面積是:rect.area()endl三角形的面積是:tri.area()endl圓的面積是:cir.area()endl;程序的運(yùn)行結(jié)果為:矩形的面積是:20三角形的面積是:10圓的面積是:78.511.考慮大學(xué)的學(xué)生情況,試?yán)脝卫^承來實(shí)現(xiàn)學(xué)生和畢業(yè)生兩個類,設(shè)計(jì)相關(guān)的數(shù)據(jù)成員及函數(shù),編程對繼承情況進(jìn)行測試。參考程序:#include#includeclass Student/ 定義基類vehiclepublic: / 公有函數(shù)成員Student(int n,char *na,int g):number(n),

10、grade(g)strcpy(name,na);int getNumber()return number;char * getName()return name;int getGrade()return grade;void display()cout學(xué)號:numberendl姓名:nameendl年級:gradeendl;private: / 私有數(shù)據(jù)成員 int number; / 學(xué)號 char name20;/ 姓名 int grade;/ 年級;class Graduate:public Student /定義畢業(yè)生類char designSubject20;public:Gradu

11、ate(int n,char *na,char * deSub,int g=4):Student(n,na,g) strcpy(designSubject,deSub);void display()Student:display();cout設(shè)計(jì)題目:designSubjectendl;void main()/創(chuàng)建對象Student li(2,Li Ming,3);Graduate zhang(3,Zhang Gang,學(xué)生成績管理系統(tǒng));/ 顯示對象的相關(guān)信息li.display();cout endl- endl;zhang.display();程序的運(yùn)行結(jié)果:學(xué)號:2姓名:Li Ming

12、年級:3-學(xué)號:3姓名:Zhang Gang年級:4設(shè)計(jì)題目:學(xué)生成績管理系統(tǒng)12. 定義一個哺乳動物類,再由此派生出人類、狗類和貓類,這些類中均有speak()函數(shù),觀察在調(diào)用過程中,到底使用了誰的speak()函數(shù)。參考程序:#include#includeclass Animalfloat weight;public:void speak()void setWeight(float wt)weight = wt;float getWeight()return weight;class Human:public Animalpublic:void speak()cout說話endl;cla

13、ss Cat:public Animalpublic:void speak()cout喵喵endl;class Dog:public Animalpublic:void speak()cout汪汪endl;void main()/ 定義三個對象Human hm;Cat cat;Dog dog;/ 調(diào)用不同類的speak函數(shù)cout人:;hm.speak();cout貓:;cat.speak();cout狗:;dog.speak();程序的運(yùn)行結(jié)果:人:說話貓:喵喵狗:汪汪13. 通過多重繼承定義研究生類,研究生既有學(xué)生的屬性,又有教師的屬性。參考程序:#include #include cla

14、ss Personprotected:char m_strName10;int m_nSex;int m_nAge;public:Person(char *name,int age,char sex)strcpy(m_strName, name);m_nSex= (sex=m?0:1 );m_nAge = age;void setName(char *name)strcpy(m_strName, name);void setSex(int sex)m_nSex= (sex=m?0:1 );void setAge(int age)m_nAge = age;char * getName()retu

15、rn m_strName;int getAge()return m_nAge;int getSex()return m_nSex;void ShowMe()cout 姓 名:m_strNameendl;cout 性 別:(m_nSex=0?男:女)endl;cout 年 齡:m_nAgeendl;class Teacher : public Personchar m_strDept20;int m_fSalary;public:Teacher(char *name,int age,char sex,char *dept,int salary):Person(name,age,sex) strc

16、py(m_strDept, dept); m_fSalary = salary;void ShowMe() Person:ShowMe();cout 工作單位:m_strDeptendl;cout 月 薪:m_fSalaryendl;void setSalary(int salary)m_fSalary = salary;char * getDept()return m_strDept;int getSalary()return m_fSalary;class Student : public Personchar m_strID12;char m_strClass12;public:Stud

17、ent(char *name,int age,char sex,char *ID,char *Class):Person(name,age,sex)strcpy(m_strID, ID); strcpy(m_strClass, Class);void ShowMe()cout 學(xué) 號:m_strIDendl;Person:ShowMe();cout 班 級:m_strClassn;void setID(char * ID)strcpy(m_strID, ID);void setClass(char *Class) strcpy(m_strClass, Class);char* getID()r

18、eturn m_strID;char* getClass()return m_strClass;class Master:public Student, public Teacherpublic:Master(char *name,int age,char sex,char *ID,char *Class,char *dept,int salary):Student(name,age,sex,ID,Class),Teacher(name, age, sex, dept, salary)void ShowMe()Student:ShowMe();cout 工作單位:getDept()endl;cout 月 薪:getSalary()endl;void main()/ 定義三個不同類的對象Teacher teacher1(劉馨,38,m,計(jì)算機(jī)系,3800);Student std1(劉麗,2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論