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

    Description

    小强做的Shape类在本次的测试中出了点状况,发现原来是其中的area函数的问题,请大家根据题意,帮助小强完成改动后的Shape类。
    小强写的各种类
    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 Triangle:  public Shape
    {
    public:
     Triangle(int c,double b,double h);
     double area();
    protected:
     double base,height;
    };
    Triangle::Triangle(int c,double b,double h):Shape(c)
    {
     base=b;height=h;
    }
    double Triangle::area()
    {
     return 0.5*base*height;
    }
    int main()
    {
     Shape *pt[3];
     Rectangle rr(1,1,1);
     Circle cc(2,1);
     Triangle tt(2,1,3);
     pt[0]=&rr;
     pt[1]=&cc;
     pt[2]=&tt;
     cout<<"Rectangle area:"<<pt[0]->area()<<endl;
     cout<<"Circle area:"<<pt[1]->area()<<endl;
     cout<<"Triangle area:"<<pt[2]->area()<<endl;
    return 0; 
    }
    提示:不用提交全部程序,只提交补充部分(包括头文件和π的定义)。

    Input

    Output

    小强测试的各个类面积的数据

    Sample Output

    Rectangle area:1
    Circle area:3.14
    Triangle area:1.5
    #include <iostream>
    #define PI 3.14
    using namespace std;
    class Shape
    {
    public:
        Shape(int c);
        virtual double area()=0;
    protected:
        double color;
    };
    Shape::Shape(int c){color=c;}
    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 Triangle:  public Shape
    {
    public:
     Triangle(int c,double b,double h);
     double area();
    protected:
     double base,height;
    };
    Triangle::Triangle(int c,double b,double h):Shape(c)
    {
     base=b;height=h;
    }
    double Triangle::area()
    {
        return 0.5*base*height;
    }
     
    int main() 
    { 
        Shape *pt[3];
        Rectangle rr(1,1,1);
        Circle cc(2,1);
        Triangle tt(2,1,3);
        pt[0]=&rr;
        pt[1]=&cc;
        pt[2]=&tt;
        cout<<"Rectangle area:"<<pt[0]->area()<<endl;
        cout<<"Circle area:"<<pt[1]->area()<<endl;
        cout<<"Triangle area:"<<pt[2]->area()<<endl;
    return 0;  
    } 
    

  • 相关阅读:
    微信公众号开发(二)用户关注
    搭建git服务器
    微信公众号开发(三)生成带参数的二维码
    windows 安装多个mysql
    微信公众号开发(一)前期 配置
    支付宝接口之条码支付
    mysql8.0 安装 修改密码 允许远程连接
    区块链开发金融交易平台
    区块链开发 在金融融资交易平台中的优势
    2019年区块链金融交易所钱包开发需要多少钱
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586308.html
Copyright © 2011-2022 走看看