C++面向对象程序设计实验指导书 - 实验报告 - 4(2)

2020-04-14 01:39

3.

实验要求:

写一个程序,定义抽象类Container: class Container {

protected: double radius; public:

Container(double r);//抽象类Container的构造函数 virtual double surface_area()=0;//纯虚函数surface_area virtual double volume()=0;//纯虚函数volume };

【要求】

建立3个继承Container的派生类:Sphere(球体)、Cylinder(圆柱体)、Cube(正方体),让每一个派生类都包含虚函数surface_area()和volume(),分别用来球体、圆柱体和正方体的表面积和体积。要求写出主程序,应用C++的多态性,分别计算边长为6.0的正方体、半径为5.0的球体,以及半径为5.0和高为6.0的圆柱体的表面积和体积。

程序清单:

#include

using namespace std; class Container {

protected: double radius; public:

Container(double r);//抽象类Container的构造函数 virtual double surface_area()=0;//纯虚函数surface_area virtual double volume()=0;//纯虚函数volume };

Container::Container(double r=0) { }

class Sphere:public Container { public: };

class Cylinder:public Container

Sphere(double x):Container(x) { }

double surface_area() { }

double volume() { }

return 0.75*3.14*radius*radius*radius; return 4*radius*radius*3.14; radius=r;

{ public:

Cylinder(double h,double r):Container(r) { }

double surface_area() { }

double volume() { }

return 3.14*radius*radius*hight;

return 2*3.14*radius*radius+2*3.14*radius*hight; hight=h;

protected: };

class Cube:public Container { public:

Cube(double r):Container(r) { }

double surface_area() { }

double volume() {

return radius*radius*radius; return 6*radius*radius; double hight;

};

}

int main() { }

Container *p; Cube a(6.0); p=&a;

cout<<\正方体表面积:\cout<<\正方体体积:\Sphere b(5.0); p=&b;

cout<<\球表面积:\cout<<\球体积:\Cylinder c(6.0,5.0); p=&c;

cout<<\圆柱表面积:\cout<<\圆柱体体积:\return 0;

运行结果:

4. 实验要求:

设计一个点类Point,其结构如下:

(1) Point类表示二维平面点的集合,数据成员由点的坐标值表示,类型为

int;

(2) 三个重载构造函数:

a) 一个是无参数的构造函数;

b) 一个是带坐标值参数的构造函数,实现对数据成员的初始化; c) 一个是copy构造函数,实现用一个对象初始化本对象; (3) 两个重载成员函数:

a) void offert(int , int ); 实现点的偏移,参数是偏移量;

b) void offert(Point &); 实现点的偏移,参数Point类对象是偏移量; (4) 6个运算符重载函数:

a) bool operator = = (Point &);判断两个点对象是否相等; b) void operator + =(Point &);将两个点对象相加; c) void operator ++();将当前对象自增1(前缀); d) void operator ++(int );将当前对象自增1(后缀);

e) friend Point& operator + (Point &, Point &);将两个点对象相加; f) friend Point &operator ? (Point &, Point &);将两个点对象相减; (5) 两个成员函数提供实例对象对私有数据的访问:


C++面向对象程序设计实验指导书 - 实验报告 - 4(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:设计弯沉值和容许拉应力计算2

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

马上注册会员

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