zoukankan      html  css  js  c++  java
  • [YTU]_2919( Shape系列-5)

    Description

    JC和Kitty听说小亮和小华有了Rectangle和Circle并用RsubC类比较了大小,于是想借小亮和小华的Rectangle和Circle来仿制自己的形状,于是JC和Kitty完成了自己的rectangle类和circle类,他们两个也要比较一下形状大小。但是JC和Kitty没有为RsubC1类(其中的布尔类型sign等于0时,新面积等于Rectangle+Circle,sign等于1时,新面积等于Rectangle-Circle写构造函数与area面积函数,请帮助JC和Kitty完成RsubC1类。

    //小强写的文件头和各种类

    #include<iostream>
    using namespace std;
    #define pi 3.14
    class Shape
    {
    public:
     Shape();
     Shape(int c);
     int getcolor();
     double area();
    protected:
     int color;
    };
    Shape::Shape()
    {
     color=0;
    }
    Shape::Shape(int c):color(c){}
    int Shape::getcolor()
    {
     return color;
    }
    double Shape::area()
    {
     return 1000;
    }
    class Rectangle:public Shape
    {
    public:
     Rectangle();
     Rectangle(int c, double w,double h);
     double getwidth();
     double getheight();
     double area();
     double price();
    protected:
     double width,height;
    };
    Rectangle::Rectangle()
    {
     width=10;height=5;
    }
    Rectangle::Rectangle(int c, double w,double h):Shape(c)
    {
     width=w;
     height=h;
    }
    double Rectangle::getwidth()
    {
     return width;
    }

    double Rectangle::area()
    {
     return width*height;
    }
    double Rectangle::getheight()
    {
     return height;
    }

    double Rectangle::price()
    {
     return color*width*height;
    }
    class Circle:public Shape
    {
    public:
     Circle();
     Circle(int c,double r);
     double getradius()
     {
      return radius;
     }
     double area();
    protected:
     double radius;
    };
    Circle::Circle()
    {
     radius=10;
    }
    Circle::Circle(int c,double r):Shape(c)
    {
     radius=r;
    }
    double Circle::area()
    {
     return radius*radius*pi;
    }

    // RsubC1类

    class RsubC1:public Shape
    {
    public:
     RsubC1(int c,double w,double h,double r,bool s);
     double area();
    private:
     Rectangle rectangle;
     Circle circle;
     bool sign;
    };

    //JC和Katy的测试函数:


    int main()
    {
     RsubC1 rc1=RsubC1(3,2,3,1,1);
     
     RsubC1 rc2=RsubC1(1,2,1,2,0);

     cout<<"rc1 area="<<rc1.area()<<endl;
     
     cout<<"rc2 area="<<rc2.area()<<endl;

     return 0;
    }

    提示:不用提交全部程序,只提交补充部分。


    Input

    Output

    输出JC和Katy测试的RsubC类的面积。

    Sample Output

    rc1 area=2.86rc2 area=14.56
    #include<iostream>
    using namespace std;
    #define pi 3.14
    class Shape
    {
    public: 
        Shape();
        Shape(int c);
        int getcolor();
        double area();
    protected:
        int color;
    };
    Shape::Shape()
    {
        color=0;
    }
    Shape::Shape(int c):color(c){}
    int Shape::getcolor()
    {
        return color;
    }
    double Shape::area()
    {
        return 1000;
    }
    class Rectangle:public Shape
    {
    public:
        Rectangle();
        Rectangle(int c, double w,double h);
        double getwidth();
        double getheight();
        double area();
        double price();
    protected:
        double width,height;
    }; 
    Rectangle::Rectangle()
    {
        width=10;height=5;
    }
    Rectangle::Rectangle(int c, double w,double h):Shape(c)
    {
        width=w;
        height=h;
    }
    double Rectangle::getwidth()
    {
        return width;
    }
     
    double Rectangle::area()
    {
        return width*height;
    }
    double Rectangle::getheight()
    {
        return height;
    }
     
    double Rectangle::price()
    {
        return color*width*height;
    }
    class Circle:public Shape
    {
    public:
        Circle();
        Circle(int c,double r);
        double getradius()
        {
            return radius;
        }
        double area();
    protected:
        double radius;
    };
    Circle::Circle()
    {
        radius=10;
    }
    Circle::Circle(int c,double r):Shape(c)
    {
        radius=r;
    }
    double Circle::area()
    {
        return radius*radius*pi;
    }
     
    class RsubC1:public Shape
    {
    public:
        RsubC1(int c,double w,double h,double r,bool s);
        double area();
    private:
        Rectangle rectangle;
        Circle circle;
        bool sign;
    };RsubC1::RsubC1(int c,double w,double h,double r,bool s):Shape(c),rectangle(c,w,h),circle(c,r),sign(s){}
    double RsubC1::area()
    {
     
        if(sign==1)
        return rectangle.area()-circle.area();
        if(sign==0)
        return rectangle.area()+circle.area();
    }
    int main() 
    { 
     RsubC1 rc1=RsubC1(3,2,3,1,1);
      
     RsubC1 rc2=RsubC1(1,2,1,2,0);
     
     cout<<"rc1 area="<<rc1.area()<<endl; 
      
     cout<<"rc2 area="<<rc2.area()<<endl; 
     
     return 0; 
    } 
    

  • 相关阅读:
    java定时任务接口ScheduledExecutorService
    spring InitializingBean接口
    spring aop 的一个demo(未完,待完善)
    Spring ApplicationContextAware获取上下文
    Spring ProxyFactory
    搭建maven+spring+mybatis工程
    spring jdbcTemplate源码剖析
    chrome插件
    基于分支限界法的旅行商问题(TSP)一
    利用分支限界法求解单源最短路(Dijkstra)问题
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586310.html
Copyright © 2011-2022 走看看