第十三周实验报告(任务四)【抽象类CSolid,含有两个求表面积及体积的纯虚函数】

来源:互联网 发布:我的世界盒子枪械js 编辑:程序博客网 时间:2024/05/16 13:54
/* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.

* 文件名称:虚函数与抽象类的应用

* 作 者: 张培培

* 完成日期: 2012年 05月 16日

* 版 本 号:

* 对任务及求解方法的描述部分

* 输入描述:

* 问题描述:设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积。

* 程序输出:

* 程序头部的注释结束*/

#include <iostream>using namespace std;const double PI=3.1415926;//声明抽象基类shapeclass CSolid{public:virtual double area() const = 0;//纯虚函数virtual double volume() const = 0;//纯虚函数};//声明CCube类class CCube:public CSolid{private:double length;public:CCube(double l):length(l){}virtual double area() const {return 6*length*length;}virtual double volume() const{return length*length*length;}};//声明CBall类class CBall:public CSolid{private:double radius;public:CBall(double r):radius(r){}virtual double area() const{return 4*PI*radius*radius;}virtual double volume() const{return PI*radius*radius*radius*4/3;}};//声明CCylinder类class CCylinder:public CSolid{private:double radius,heigth;public:CCylinder(double r,double h):radius(r),heigth(h){}virtual double area() const{return 2*2*PI*radius+2*PI*radius*heigth;}virtual double volume() const{return PI*radius*radius*heigth;}};int main(){   CSolid *p;        double s,v;        CCube x(5);        cout<<"正方体的长为5"<<endl;        p=&x;        s=p->area( );        v=p->volume( );        cout<<"表面积:"<<s<<endl;        cout<<"体积:"<<v<<endl;        cout<<endl;        CBall y(5.4);        cout<<"球体半径为5.4"<<endl;        p=&y;        s=p->area( );        v=p->volume( );        cout<<"表面积:"<<s<<endl;        cout<<"体积:"<<v<<endl;        cout<<endl;        CCylinder z(10.2,21.6);        cout<<"圆柱体底面半径、高分别为10.2, 21.6"<<endl;        p=&z;        s=p->area( );        v=p->volume( );        cout<<"表面积:"<<s<<endl;        cout<<"体积:"<<v<<endl;        cout<<endl;        system("pause");        return 0;    }矩形的长为5表面积:150体积:125球体半径为5.4表面积:366.25体积:494.437圆柱体底面半径、高分别为10.2, 21.6表面积:2036.98体积:7056.41请按任意键继续. .

原创粉丝点击