zoukankan      html  css  js  c++  java
  • YTU 2922: Shape系列-8

    2922: Shape系列-8

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 172  解决: 99

    题目描述

    小聪又想借用小强的Shape类了,但是不巧的是小强去考英语四级去了,但是小聪自力更生创建了Point类,但是他没有写Point类、继承Point类的Circle类、继承Circle类的Cylinder类这3个类的构造函数,请你帮忙补充这几个类未完成的函数。
    小聪写的各种类
    #include <iostream.h>
    #define PI 3.14159
    class Point
    {
    public:
      Point(float=0,float=0);
      void setPoint(float,float);
      float getX()const ;
      float getY()const ;
      friend ostream & operator<<(ostream &,const Point &);
    protected:
      float x,y;
    };
    class Circle:public Point
    {
    public:
      Circle(float x=0,float y=0,float r=0);
      void setRadius(float);
      float getRadius() const;
      float area () const;
      friend ostream &operator<<(ostream &,const Circle &);
     protected:
      float radius;
    };
    class Cylinder:public Circle
    {
    public:
      Cylinder (float x=0,float y=0,float r=0,float h=0);
      void setHeight(float);
      float getHeight() const;
      float area() const;
      float volume() const;
      friend ostream& operator<<(ostream&,const Cylinder&);
     protected:
      float height;
    };
    //小聪用于测试的函数
    int main()
    {
     Cylinder cy1(3.5,6.4,5.2,10);
     cy1.setHeight(15);
     cy1.setRadius(7.5);
     cy1.setPoint(5,5);
     cout<<"new cylinder: "<<cy1;
     Point &pRef=cy1;
     cout<<"pRef as a point:"<<pRef;
     Circle &cRef=cy1;
     cout<<"cRef as a Circle:"<<cRef;
     return 0;
    }
    提示:不用提交全部程序,只提交补充部分。
     

    输入

    输出

    输出小聪测试的各个数据

    样例输出

    new cylinder:
    Center=[5,5], r=7.5, h=15
    area=1060.29, volume=2650.72
    pRef as a point:[5,5]
    cRef as a Circle:Center=[5,5], r=7.5, area=176.714
    

    im0qianqian_站在回忆的河边看着摇晃的渡船终年无声地摆渡,它们就这样安静地画下黄昏画下清晨......可怜

    #include <iostream>
    using namespace std;
    #define PI 3.14159
    class Point
    {
    public:
        Point(float=0,float=0);
        void setPoint(float,float);
        float getX()const ;
        float getY()const ;
        friend ostream & operator<<(ostream &,const Point &);
    protected:
        float x,y;
    };
    class Circle:public Point
    {
    public:
        Circle(float x=0,float y=0,float r=0);
        void setRadius(float);
        float getRadius() const;
        float area () const;
        friend ostream &operator<<(ostream &,const Circle &);
    protected:
        float radius;
    };
    class Cylinder:public Circle
    {
    public:
        Cylinder (float x=0,float y=0,float r=0,float h=0);
        void setHeight(float);
        float getHeight() const;
        float area() const;
        float volume() const;
        friend ostream& operator<<(ostream&,const Cylinder&);
    protected:
        float height;
    };
    Cylinder::Cylinder(float x,float y,float r,float h)
    {
        height=h;
        radius=r;
        this->y=y;
        this->x=x;
    }
    Circle::Circle(float x,float y,float r) {}
    void Cylinder::setHeight(float a)
    {
        height=a;
    }
    Point::Point(float a,float b) {}
    void Circle::setRadius(float a)
    {
        radius=a;
    }
    void Point::setPoint(float a,float b)
    {
        x=a;
        y=b;
    }
    ostream & operator<<(ostream &a,const Point &b)
    {
        a<<"["<<b.x<<","<<b.y<<"]"<<endl;
        return a;
    }
    ostream &operator<<(ostream &a,const Circle &b)
    {
        a<<"Center=["<<b.x<<","<<b.y<<"], r="<<b.radius<<", area="<<b.radius*b.radius*PI<<endl;
        return a;
    }
    ostream& operator<<(ostream &a,const Cylinder &b)
    {
        a<<"Center=["<<b.x<<","<<b.y<<"], r="<<b.radius<<", h="<<b.height<<endl;
        a<<"area="<<2*PI*b.radius*b.radius+2*PI*b.radius*b.height<<", volume="<<b.radius*b.radius*PI*b.height<<endl;
        return a;
    }
    int main()
    {
        Cylinder cy1(3.5,6.4,5.2,10);
        cy1.setHeight(15);
        cy1.setRadius(7.5);
        cy1.setPoint(5,5);
        cout<<"new cylinder:
    "<<cy1;
        Point &pRef=cy1;
        cout<<"pRef as a point:"<<pRef;
        Circle &cRef=cy1;
        cout<<"cRef as a Circle:"<<cRef;
        return 0;
    }
    


  • 相关阅读:
    Apache Maven ToolChains的使用
    小师妹学JavaIO之:文件读取那些事
    JDK9的新特性:JPMS模块化
    JDK9的新特性:String压缩和字符编码
    小师妹学JavaIO之:File copy和File filter
    JDK10的新特性:var和匿名类
    Flutter 完美的验证码输入框
    Flutter 不可错过的学习资源
    《Flutter 动画系列》组合动画
    【强烈推荐】适合Flutter初学者的完整项目
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989651.html
Copyright © 2011-2022 走看看