第14周项目三-CSolid

来源:互联网 发布:淘宝差评师曝光台官网 编辑:程序博客网 时间:2024/06/05 17:57
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: test.cpp* 作    者:  徐凯旋* 完成日期: 2013 年 6 月 4 日* 版 本 号: v1.0*/#include <iostream>using namespace std;#define PI 3.1415926class CSolid{    public:       virtual double area()const=0;       virtual double volume()const=0;};class CCube:virtual public CSolid{    public:      CCube(double l):length(l){}      double area()const      {         return 6*length*length;      }      double volume()const      {          return length*length*length;      }    private:      double length;};class CBall:virtual public CSolid{    public:      CBall(double r):radius(r){}      double area()const      {          return 4*PI*radius*radius;      }      double volume()const      {          return PI*radius*radius*radius*4/3;      }    private:      double radius;};class CCylinder:virtual public CSolid{    public:      CCylinder(double r,double h):radius(r),heigth(h){}      double area()const      {          return 2*2*PI*radius+2*PI*radius*heigth;      }      double volume()const      {          return PI*radius*radius*heigth;      }    private:       double radius,heigth;};int main(){    CSolid *p;    double s,v;    CCube x(3);    cout<<"正方体的长为3"<<endl;    p=&x;    s=p->area( );    v=p->volume( );    cout<<"表面积:"<<s<<endl;    cout<<"体积:"<<v<<endl;    cout<<endl;    CBall y(3);    cout<<"球体半径为3"<<endl;    p=&y;    s=p->area( );    v=p->volume( );    cout<<"表面积:"<<s<<endl;    cout<<"体积:"<<v<<endl;    cout<<endl;    CCylinder z(2,3);    cout<<"圆柱体底面半径、高分别为2, 3"<<endl;    p=&z;    s=p->area( );    v=p->volume( );    cout<<"表面积:"<<s<<endl;    cout<<"体积:"<<v<<endl;    cout<<endl;system("PAUSE");    return 0;}

 

运行结果:

原创粉丝点击