编写一个程序计算正方形、球体和圆柱体的表面积和体积

阅读: 评论:0

新西兰打工真实收入编写一个程序计算正方形球体和圆柱体的表面积体积
分析:依题意,抽象出一个公共基类CContaineer为抽象类,在其中定义求表面积和体积的虚函数(该抽象类本身没有表面积和体积可言)。抽象类中定义一个公共的数据成员radius,此数据可作为球体的半径、正方形的边长、圆柱体底面积圆半径。由此抽象类派生出要描述的三个类,在这三个类中都具有求表面积和体积的重定义版本。
源程序:
#include<iostream.h>
class CCt              //定抽象CContaineer
{protected:
float radius;            //公共的据成radius
double area,volume;    //表面area,体volume
public:
    virtual void Area()=0;  //求表面纯虚
    virtual void Volume()=0; //求体纯虚
    CCt (floata,double b,double c){radius=a;area=b;volume=c;}    //基造函宏达股份
};
class Square:public CCt //派生Square
{
public:
Square(float a,double b,double c): CCt (a,b,c)
    {}
去乐山大佛旅游攻略    void Area()            //Area()黄岛区旅游景点大全
    {area=6*radius*radius;
    cout<<"Square's area="<<area<<endl;
    }
    void Volume()    //Volume ()
    {volume=radius*radius*radius;
    cout<<" Square's volume="<<volume<<endl;}
};
class circle:public CCt    //派生circle
{
public:
    circle(float a,double b,double c): CCt (a,b,c)
    {}                          //派生circle造函
    void Area()
    {area=4*3.14*radius*radius;
    cout<<"circle's area="<<area<<endl;
    }
    void Volume()
    {volume=3.14*radius*radius*radius*4/3;
    cout<<" circle's volume="<<volume<<endl;}
东北旅游景点};
class CCt linder:public CCt
//派生CCt linder
{float high;
public:
    CCt linder(float h,float r,double a,double v): CCt (r,a,v)
    {high=h;}
    void Area()      //派生CCtlinder的
    {area=2*3.14*radius*radius+2*3.14*radius*high;
    cout<<" CCt linder's area="<<area<<endl;
    }
    void Volume()
    {  volume=3.14*radius*radius*high;
        cout<<" CCt 's volume="<<volume<<endl;}
};
void Areafun(CCt *p)//根据p所指向的象不同,用              不同的派生Area
{p->Area();}
void Volumefun(CCt *p) //根据p所指向的象不同,用不同的派生Volume
{p->Volume();}
void main()
{Square r1(5,0,0);// Square的象r1
circle c1(8,0,0); // circle的象c1
CCt linder cc2(2,14,0,0); // CCt linde的象cc2
Areafun(&r1);//用的是派生Square的Area
Volumefun(&r1);// 用的是派生Square的Volume
Areafun(&c1);
Volumefun(&c1);
Areafun(&cc2);
Volumefun(&cc2);
}运行结果:
Square's area=150
Square's volume=125
circle's area=803.84
circle's volume=2143.57
CCt 's area=1406.72
CCt 's volume=1230.88

本文发布于:2023-05-26 12:36:25,感谢您对本站的认可!

本文链接:http://www.035400.com/whly/2/437072.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:体积   抽象类   表面积   球体   正方形
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2024-2030 Comsenz Inc.Powered by © 文化旅游网 滇ICP备2022007236号-403 联系QQ:1103060800网站地图