「已注销」 2021-06-09 08:48 采纳率: 55.6%
浏览 10
已采纳

qiujieda!。。

 

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-06-09 09:36
    关注

    代码如下

    #include <iostream>
    using namespace std;
    const float PI = 3.1415;
    class container
    {
    protected:
    	double radius;
    public:
    	container(double radius1){radius = radius1;};
    	virtual double surface_area() = 0;
    	virtual double volume()=0;
    };
    
    class cube :public container
    {
    public:
    	cube(double r):container(r){}
    	double surface_area()
    	{
    		return 6 * radius * radius;
    	}
    	double volume()
    	{
    		return radius * radius * radius;
    	}
    };
    
    class sphere :public container
    {
    public:
    	sphere(double r):container(r){}
    	double surface_area()
    	{
    		return 4* PI * radius * radius;
    	}
    	double volume()
    	{
    		return 4*PI*radius * radius * radius/3;
    	}
    };
    
    class cylinder :public container
    {
    private:
    	double height;
    public:
    	cylinder(double r,double h):container(r){height = h;}
    	double surface_area()
    	{
    		return 2* PI * radius * (radius+height);
    	}
    	double volume()
    	{
    		return PI*radius * radius * height;
    	}
    };
    
    int main()
    {
    	cube cu(6.0);
    	sphere sp(5.0);
    	cylinder cy(6.0,5.0);
    	cout << "边长为6.0的正方体的表面积 = " << cu.surface_area() << ",体积 = " << cu.volume() << endl;
    	cout << "半径为5.0的球体的表面积 = " << sp.surface_area() << ",体积 = " << sp.volume() << endl;
    	cout << "半径为5.0和高为6.0的圆柱体的表面积 = " << cy.surface_area() << ",体积 = " << cy.volume() << endl;
    
    	return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?