zoukankan      html  css  js  c++  java
  • YTU 2918: Shape系列-4

    2918: Shape系列-4

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 276  解决: 232

    题目描述

    小聪送给小亮和小华的形状他们都很喜欢,小亮和小华非要比一下他们两个的形状,来看看小聪更爱谁,请完成RsubC类。RsubC类中包括Rectangle类和Circle类的数据成员,新增布尔类型的数据成员sign(sign等于0时,新面积等于Rectangle+Circle,sign等于1时,新面积等于Rectangle-Circle),新定义了求面积的成员函数area()。但是小聪没有为RsubC类写构造函数和成员函数,请帮助小聪完成RsubC类。

    小强写的文件头和Shape类

    #include<iostream>
    #define PI 3.14
    using namespace std;
    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 10000;
    }

    小聪写的Rectangle类
    class Rectangle:public Shape
    {
    public:
     Rectangle(int c,double w,double h);
     double getwidth();
     double getheight();
     double area();
     double price();
    protected:
     double height;
     double width;
    };
    Rectangle::Rectangle(int c,double w,double h):Shape(c)
    {
     width=w;
     height=h;
    }
    double Rectangle::getwidth()
    {
     return width;
    }
    double Rectangle::getheight()
    {
     return height;
    }
    double Rectangle::area()
    {
     return height*width;
    }
    double Rectangle::price()
    {
     return height*width*color;
    }

    小聪写的Circle类

    class Circle:public Shape
    {
    public:
     Circle(int c,double r);
     double getradius();
     double area();
     double price();
    protected:
     double radius;
    };

    Circle::Circle(int c,double r):Shape(c)
    {
     radius=r;
    }
    double Circle::getradius()
    {
     return radius;
    }

    double Circle::area()
    {
     return PI*radius*radius;
    }
    double Circle::price()
    {
     return PI*radius*radius*color;
    }

    小聪的测试函数:

    int main()

    {

    RsubC rc=RsubC(1,2,3,1,1);
    cout<<"RsubC area:"<<rc.area()<<endl;
    return 0;

    }

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

    输入

    输出

    输出小聪测试的RsubC的面积。

    样例输出

    RsubC area:2.86

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

    #include<iostream>
    #define PI 3.14
    using namespace std;
    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 10000;
    }
    class Rectangle:public Shape
    {
    public:
        Rectangle(int c,double w,double h);
        double getwidth();
        double getheight();
        double area();
        double price();
    protected:
        double height;
        double width;
    };
    Rectangle::Rectangle(int c,double w,double h):Shape(c)
    {
        width=w;
        height=h;
    }
    double Rectangle::getwidth()
    {
        return width;
    }
    double Rectangle::getheight()
    {
        return height;
    }
    double Rectangle::area()
    {
        return height*width;
    }
    double Rectangle::price()
    {
        return height*width*color;
    }
    class Circle:public Shape
    {
    public:
        Circle(int c,double r);
        double getradius();
        double area();
        double price();
    protected:
        double radius;
    };
    Circle::Circle(int c,double r):Shape(c)
    {
        radius=r;
    }
    double Circle::getradius()
    {
        return radius;
    }
    double Circle::area()
    {
        return PI*radius*radius;
    }
    double Circle::price()
    {
        return PI*radius*radius*color;
    }
    
    class RsubC:public Shape
    {
    public:
        RsubC(int c,double w,double h,double r,bool s);
        double area();
    private:
        Rectangle rectangle;
        Circle circle;
        bool sign;
    };
    RsubC::RsubC(int c,double w,double h,double r,bool s):Shape(c),rectangle(c,w,h),circle(c,r),sign(s) {}
    double RsubC::area()
    {
        if(sign==0)
            return rectangle.area()+circle.area();
        else
            return rectangle.area()-circle.area();
    }
    int main()
    {
        RsubC rc=RsubC(1,2,3,1,1);
        cout<<"RsubC area:"<<rc.area()<<endl;
        return 0;
    }
    


  • 相关阅读:
    Python操作Redis的实例(七)
    Python操作Redis(六)
    Redis的数据类型之set集合,zset有序集合类型操作 (五)
    Redis的数据类型之list列表类型操作 (四)
    Redis的数据类型之hash哈希类型操作 (三)
    Redis的数据类型之String字符串类型操作(二)
    Redis基础介绍以及编译安装过程(一)
    python操作IP---IPy模块
    安装cnpm报错
    vue-cli · Failed to download repo vuejs-templates/webpack: connect ECONNREF
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989653.html
Copyright © 2011-2022 走看看