现在的位置: 首页 > 综合 > 正文

第十四周项目三:CSolid类

2014年03月12日 ⁄ 综合 ⁄ 共 1139字 ⁄ 字号 评论关闭
/* 
* 程序的版权和版本声明部分 
* Copyright (c)2012, 烟台大学计算机学院学生 
* All rightsreserved. 
* 文件名称: CSolid.cpp 
* 作 者:李巧丽 
* 完成日期:2013 年6月4日 
* 版本号: v1.0 
* 对任务及求解方法的描述部分:略 
* 输入描述:略 
* 问题描述:略 
*/  

#include<iostream>
#define pi 3.1415926
using namespace std;
class CSolid
{
    public:
    virtual double area()=0;
    virtual double cube()=0;

};
class CCube:public CSolid//正方体
{
    public:
    CCube (double l){length=l;};
    double area(){return length*length*6;};
    double cube(){return length*length*length;};
    private:
    double length;
};
class CBall:public CSolid//球体
{
    public:
    CBall(double r){radius=r;};
    double area(){return 4*pi*radius*radius;};
    double cube(){return 4/3*pi*radius*radius*radius;};
    private:
    double radius;
};
class CCylinder:public CSolid//圆柱体
{
    public:
    CCylinder(double r,double h){radius=r,high=h;};
    double area(){return (2*pi*radius*high+2*pi*radius*radius);};
    double cube(){return pi*radius*radius*high;};
    private:
    double radius;
    double high;
};
int main()
{
     CSolid *p;
   CCube a(4);
   p=&a;
   cout<<"边长是4的正方体表面积是"<<p->area()<<endl;
   cout<<"边长是4的正方体体积是"<<p->cube()<<endl;
   CBall b(6);
   p=&b;
   cout<<"半径是6的球体表面积是"<<p->area()<<endl;
   cout<<"半径是6的球方体体积是"<<p->cube()<<endl;
   CCylinder c(3,4);
   p=&c;
  cout<<"底面半径是3,高是4的圆柱体表面积是"<<p->area()<<endl;
   cout<<"底面半径是3,高是4的圆柱体体积是"<<p->cube()<<endl;
   return 0;

}

运行结果:

抱歉!评论已关闭.