第十三周项目4-立体类族共有的抽象类

问题及代码:

/*
 *Copyright (c) 2016,烟台大学计算机学院
 *All rights reserved.
 *文件名称:zwj.cpp
 *作    者:张伟晶
 *完成日期:2016年5月25日
 *版 本 号:v1.0
 *
 *问题描述:立体类族共有的抽象类
 *输入描述:
 *程序输出:
 */
#include<iostream>
using namespace std;
//基类
class CSolid
{
public :
    virtual double area() const=0;//面积
    virtual double tiji() const=0;//体积
};
///正方体
class CCube:public CSolid
{
private:
    double chang,kuan,gao;
public :
    CCube(double cha,double kua,double ga):chang(cha),kuan(kua),gao(ga){}
    double area() const;
    double tiji() const;
};
   /******/
double CCube::area() const
{
    return chang*kuan*2+chang*gao*2+kuan*gao*2;
}
double CCube::tiji() const
{
    return chang*kuan*gao;
}

///球体
class CBall:public CSolid
{
private:
    double banjing;
public:
    CBall(double ban):banjing(ban){}
    double area() const;
    double tiji() const;
};
        /*******/
double CBall::area() const
{
    return 4*3.14159*banjing*banjing;
}
double CBall::tiji() const
{
    return 4*3.14159*banjing*banjing/3;
}

///圆柱体
class CCylinder:public CSolid
{
private:
    double banjing,gao;
public:
    CCylinder(double ban,double ga):banjing(ban),gao(ga){}
    double area() const ;
    double tiji() const ;
};
double CCylinder::area() const
{
    return 3.14159*banjing*banjing*2+2*3.14159*banjing*gao;
}
double CCylinder::tiji() const
{
    return 3.14159*banjing*banjing*gao;
}










int main()
{
    CCube c1(2.1,2.1,2.1);
    CBall b1(2.5);
    CCylinder r1(2.5,3.0);
    CSolid *pt[3]= {&c1,&b1,&r1}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象
    cout<<"长方体表面积:"<<pt[0]->area()<<"   长方体体积:"<<pt[0]->tiji()<<endl;
    cout<<"球体的表面积:"<<pt[1]->area()<<"   球体的体积:"<<pt[1]->tiji()<<endl;
    cout<<"圆柱的表面积:"<<pt[2]->area()<<"   圆柱的体积:"<<pt[2]->tiji()<<endl;


    return 0;
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值