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

  • 相关阅读:
    20191010-2 每周例行报告
    2018092609-2 选题 Scrum立会报告+燃尽图 01
    20190919-1 每周例行报告
    20190919-4 单元测试,结对
    20190919-6 四则运算试题生成,结对
    20190919-5 代码规范,结对
    PSP总结报告
    20181204-1 每周例行报告
    每个成员明确公开地表示对成员帮助的感谢 (并且写在各自的博客里)
    作业要求 20181127-2 每周例行报告
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586308.html
Copyright © 2020-2023  润新知