C++面向对象程序设计习题集(8)

2019-04-14 13:58

Point(int x,int Y){Point::x=x; Point::y=y;} int getx(){return x;} int gety(){return Y;} };

class Circle:public Point {

int r; public:

Circle(int x,int y,int r):Point(x,y) {

Circle::r=r; }

int getr(){return r;} };

void main() {

Circle c(4,5,3); Point *p=&c;

cout<<\圆半径:\.getr()<<\;

cout<<\圆心:(\ <<\,\ <<\}

30.

圆和三角形都需要输入三个数据,设计一个类Object管理这三个数据,从此派生出圆类Circle和三角形类Triangle,并求各自的面积。 【知识点】:5.1 5.2 【参考分】:30分 【难易度】:B 【答案】:

#include #include class Object {

protected: int x,y,z; public:

void getdata() {

cout<<\ 输入x y z值:\; cin>>x>>y>>z; } };

class Triangle:public Object {

public:

void getdata() {

cout<<\三角形三边长\ Object::getdata(); }

double area() {

double d=(x+y+z)/2;

double s=sqrt(d*(d-x)*(d-y)*(d-z)); return s; }

void disp() {

cout<<\ 三角形:三边长分别为\,\,\ } };

class Circle:public Object {

public:

void getdata() {

cout<<\圆=圆心(x,y)半径z\; Object::getdata(); }

double area() {

double s=z*z*3.1415; return s; }

void disp() {

cout<<\ 圆:圆心(\,\半径为\ } };

void main() {

Triangle t; Circle c; t.getdata(); c.getdata();

cout<<\输出结果;<

t.disp(); cout<<\面积为\ c.disp(); cout<<\面积为\}

31.

设计一个建筑物基类Building,由它派生出宿舍类Hostel和教学楼类Classroom,

前者包括楼名、总层数、住户数、总住人数和总面积,后者包括楼名、总层数、教室数、灭火器数和总面积。 【知识点】:5.1 5.2 【参考分】:20分 【难易度】:B 【答案】:

#include #include #include class Building {

protected:

char bname[10]; //名称 int fs; //层数

int rs; //教室个数或住户数 int es; //灭火器数或总人数 double as; //总面积 public:

Building(char b[],int f,int r,int e,int a) {

strcpy(bname,b); fs=f;rs=r; es=e; as=a; } };

class Hostel:public Building {

public:

Hostel (char b[],int f,int r,int e,int a):Building(b,f,r,e,a) { } void disp() {

cout<<\宿舍名称:\

cout<<\ 总层数: \ <

class Classroom:public Building {

public:

Classroom(char b[],int f,int r,int e,int a):Building(b,f,r,e,a) {} void disp() {

cout<<\教学楼名称:” <

color<<\ 总层数: \ <

};

void main() {

Hostel h(\栋\; Classroom r(”5号楼”,5,62,20,6000);

h.disp(); r.disp(); }

32.

设计一个人员类Person,包括姓名和衣服、裤子及鞋子的指针,后面的衣服、裤子及鞋子分别设计成类Clothes、Pants和Shoe,它们都是从物品类Object派生的,Object类包括物品类型和颜色数据成员。并用相应的数据进行测试。 【知识点】:3.2 5.1 5.2 5.3 【参考分】:40分 【难易度】:B

【答案】:Clothes、Pants和Shoe三个类(统称为穿着类)都是Object类公共派生的,Person类包含指向这些穿着类的指针,并有一个输出人员姓名和穿着的成员函数。程序如下:

#include #include class Object //物品类 {

protected:

char color[10]; //物品类型 char type[10]; //颜色 public:

Object(){}

Object(char *t,char *c) {

strcpy(type,t); strcpy(color,c); } };

class Shoe:public Object //鞋子类 {

private:

friend class Person; public:

Shoe(char *t,char *c):Object(t,c){} };

class Clothes:public Object //衣服类 {

private:

friend c1ass Person;

public:

Clothes(char *t,char *c):Object(t,c){} };

class Pants:public Object //裤子类 {

private:

friend class Person; public:

Pants(char *t,char *c):Object(t,c){} };

class Person //人员类 {

protected:

char name[10];

Clothes *myClothes; //指向Clothes对象的指针 Shoe *myShoe; //指向Shoe对象的指针 Pants *myPants; //指向Pants对象的指针 public:

Person(char *na) //构造函数 {

strcpy(name,na); }

void wear(Shoe & aShoe) //穿着鞋子成员函数 {

myShoe=&aShoe; }

void wear(Clothes & aClothes) //穿着衣服成员函数 {

myClothes=&aClothes; }

void wear(Pants & aPants) //穿着裤子成员函数 {

myPants=&aPants ; }

void show() //输出一个人的穿着情况 {

cout<<\ 姓名:\ endl;

cout<<\ 穿着\ cout<color<type<< \和\ cout<color<type<

void main() {

Person p1(\王华\,p2(\李明\


C++面向对象程序设计习题集(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学生作业鼓励性评语作业评语

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: