第4次上機(jī)答案_第1頁(yè)
第4次上機(jī)答案_第2頁(yè)
第4次上機(jī)答案_第3頁(yè)
第4次上機(jī)答案_第4頁(yè)
第4次上機(jī)答案_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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、精選優(yōu)質(zhì)文檔-傾情為你奉上C+第四次上機(jī)答案1. 1)建立一個(gè)教師類(lèi)Teacher,其包含3個(gè)私有數(shù)據(jù)成員:num(工號(hào))、name(姓名)、sex(性別),包含2個(gè)公有成員函數(shù):帶參構(gòu)造函數(shù)(用于對(duì)三個(gè)數(shù)據(jù)成員進(jìn)行初始化),display函數(shù)(輸出數(shù)據(jù)成員)。2)建立一個(gè)生日類(lèi)BirthDate,其包含3個(gè)私有數(shù)據(jù)成員:year(年)、month(月)、day(日),包含3個(gè)公有成員函數(shù):帶參構(gòu)造函數(shù)(用于對(duì)三個(gè)數(shù)據(jù)成員進(jìn)行初始化),display函數(shù)(輸出數(shù)據(jù)成員),change函數(shù)(修改生日數(shù)據(jù),即將3個(gè)數(shù)據(jù)成員的值改為change函數(shù)參數(shù)指定的值)。3)建立一個(gè)教授類(lèi)Professor

2、,它是Teacher類(lèi)的公有派生類(lèi),在Teacher類(lèi)的基礎(chǔ)上增加了私有數(shù)據(jù)生日信息birthday(birthday是BirthDate類(lèi)的對(duì)象),其新增成員函數(shù)包含:帶參構(gòu)造函數(shù)(對(duì)新增的和繼承的數(shù)據(jù)成員初始化),display函數(shù)(輸出所有數(shù)據(jù)成員),changebirth函數(shù)(將修改生日信息修改為函數(shù)參數(shù)指定日期)。4)main函數(shù)中的操作步驟如下:l 定義Professor類(lèi)的對(duì)象prof1l 輸出對(duì)象prof1的所有數(shù)據(jù)信息l 修改prof1的生日信息l 輸出對(duì)象prof1的所有數(shù)據(jù)信息#include <iostream>#include <string>

3、using namespace std;class Teacherpublic:Teacher(int, string, char);void display(); /輸出數(shù)據(jù)private:int num; /工號(hào)string name; /姓名char sex; /性別;Teacher:Teacher(int n, string na, char s): num(n), name(na), sex(s) void Teacher:display() /輸出數(shù)據(jù)cout<<"num:"<<num<<endl;cout<<&q

4、uot;name:"<<name<<endl;cout<<"sex:"<<sex<<endl;class BirthDatepublic:BirthDate(int, int, int);void display(); /輸出年、月、日數(shù)據(jù)void change(int, int, int); /修改年、月、日數(shù)據(jù)private:int year; /年int month; /月int day; /日;BirthDate:BirthDate(int y, int m, int d): year(y), m

5、onth(m), day(d) void BirthDate:display() /輸出年、月、日數(shù)據(jù)cout<<"birthday:"<<year<<'/'<<month<<'/'<<day<<endl;void BirthDate:change(int y, int m, int d) /修改年、月、日數(shù)據(jù)year = y;month = m;day = d;class Professor:public Teacherpublic:Professor(in

6、t, string, char, int, int, int);void display(); /輸出數(shù)據(jù)void changebirth(int, int, int); /修改生日信息private:BirthDate birthday; /子對(duì)象;Professor:Professor(int n,string na,char s,int y,int m,int d): Teacher(n,na,s), birthday(y,m,d)void Professor:display() /輸出數(shù)據(jù)Teacher:display(); /父子同名函數(shù)birthday.display(); /輸出

7、生日信息void Professor:changebirth(int y,int m,int d) /修改生日信息birthday.change(y,m,d);void main()Professor prof1(1001,"Wangli",'f',1973,5,10);prof1.display(); /調(diào)用派生類(lèi)自己的displaycout<<endl<<endl;prof1.changebirth(1975,10,12); /修改生日信息prof1.display(); /調(diào)用派生類(lèi)自己的display2. 寫(xiě)一個(gè)程序,定義抽象

8、基類(lèi)Shape,由它派生出3個(gè)派生類(lèi):Circle(圓形類(lèi),含一個(gè)數(shù)據(jù)成員:半徑)、Rectangle(矩形類(lèi),含兩個(gè)數(shù)據(jù)成員:長(zhǎng)、寬)、Triangle(三角形類(lèi),含三個(gè)數(shù)據(jù)成員:三條邊),用一個(gè)函數(shù)printArea分別輸出以上三者的面積,3個(gè)圖形的數(shù)據(jù)在定義對(duì)象時(shí)給定。法一:#include <iostream>#include <math.h>using namespace std;/定義抽象基類(lèi)Shapeclass Shapepublic:virtual double area() =0; /純虛函數(shù);/定義Circle類(lèi)class Circle: publi

9、c Shapepublic:Circle(double r): radius(r) /構(gòu)造函數(shù)virtual double area() /virtual可以省略 return 3.14159*radius*radius; ; /定義虛函數(shù)private:double radius; /半徑;/定義Rectangle類(lèi)class Rectangle: public Shapepublic:Rectangle(double len, double w): length(len), width(w) /構(gòu)造函數(shù)virtual double area() return length*width; /

10、定義虛函數(shù)private:double length, width; /長(zhǎng)與寬;/定義Triangle類(lèi)class Triangle:public Shapepublic:Triangle(double x, double y, double z): a(x), b(y), c(z) /構(gòu)造函數(shù)virtual double area() /定義虛函數(shù)double s=(a+b+c)*0.5;return sqrt( s*(s-a)*(s-b)*(s-c) ); private:double a,b,c; /三條邊;/輸出面積的函數(shù)void printArea(Shape &s) /基類(lèi)

11、的引用對(duì)象作為形參,實(shí)參可以是子類(lèi)對(duì)象。引用對(duì)象比指針變量節(jié)約空間cout<<s.area()<<endl; /area是虛函數(shù),調(diào)用的是實(shí)參對(duì)象所屬類(lèi)的areaint main()Circle circle(12.6); /建立Circle類(lèi)對(duì)象circlecout<<"area of circle =" printArea(circle); /輸出circle的面積Rectangle rectangle(4.5,8.4); /建立Rectangle類(lèi)對(duì)象rectanglecout<<"area of rectan

12、gle =" printArea(rectangle); /輸出rectangle的面積Triangle triangle(4,8,5); /建立Triangle類(lèi)對(duì)象 cout<<"area of triangle ="printArea(triangle); /輸出triangle的面積return 0;法二:#include <iostream>#include <math.h>using namespace std;/定義抽象基類(lèi)Shapeclass Shapepublic:virtual void printArea(

13、) =0; /純虛函數(shù);/定義Circle類(lèi)class Circle: public Shapepublic:Circle(double r): radius(r) /構(gòu)造函數(shù)virtual void printArea() /virtual可以省略 cout<<3.14159*radius*radius<<endl; ; /定義虛函數(shù)private:double radius; /半徑;/定義Rectangle類(lèi)class Rectangle: public Shapepublic:Rectangle(double len, double w): length(len

14、), width(w) /構(gòu)造函數(shù)virtual void printArea() cout<<length*width<<endl; /定義虛函數(shù)private:double length, width; /長(zhǎng)與寬;/定義Triangle類(lèi)class Triangle:public Shapepublic:Triangle(double x, double y, double z): a(x), b(y), c(z) /構(gòu)造函數(shù)virtual void printArea() /定義虛函數(shù)double s=(a+b+c)*0.5;cout<<sqrt( s

15、*(s-a)*(s-b)*(s-c) )<<endl; private:double a,b,c; /三條邊;int main()Shape *pc; /基類(lèi)指針變量Circle circle(12.6); /建立Circle類(lèi)對(duì)象circlepc=&circle;cout<<"area of circle =" pc->printArea(); /輸出circle的面積Rectangle rectangle(4.5,8.4); /建立Rectangle類(lèi)對(duì)象rectanglepc=&rectangle;cout<<

16、"area of rectangle =" pc->printArea(); /輸出rectangle的面積Triangle triangle(4,8,5); /建立Triangle類(lèi)對(duì)象 pc=&triangle;cout<<"area of triangle ="pc->printArea(); /輸出triangle的面積return 0;自主上機(jī)題目:2015年C+A卷的第五題(編程題)。定義具有繼承關(guān)系的點(diǎn)類(lèi)Point和圓類(lèi)Circle:(1)Point類(lèi)具有(x, y)坐標(biāo)對(duì);(2) Circle類(lèi)為Point

17、類(lèi)的子類(lèi),它本身又增加了半徑radius、求周長(zhǎng)getPeri ()和求面積getArea()的成員函數(shù);(3)為Point類(lèi)和Circle類(lèi)添加構(gòu)造函數(shù);(4)在主函數(shù)中創(chuàng)建圓A,其圓心坐標(biāo)為(5,7),半徑為2,計(jì)算并輸出圓A的周長(zhǎng)和面積。#include <iostream.h>#define PI 3.14class Pointfloat x,y;public:Point(float xp=0,float yp=0):x(xp),y(yp);class Circle: public Pointfloat radius; /半徑public:Circle(float x, float y, float r): Point(x,y), radius(r)float getPeri(); /求周長(zhǎng)float g

溫馨提示

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