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;
    }
    


  • 相关阅读:
    Linq聚合操作之Aggregate,Count,Sum,Distinct源码分析
    Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析
    Linq生成操作之DefautIfEmpty,Empty,Range,Repeat源码分析
    Linq基础操作之Select,Where,OrderBy,ThenBy源码分析
    PAT 1152 Google Recruitment
    PAT 1092 To Buy or Not to Buy
    PAT 1081 Rational Sum
    PAT 1084 Broken Keyboard
    PAT 1077 Kuchiguse
    PAT 1073 Scientific Notation
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989653.html
Copyright © 2011-2022 走看看