zoukankan      html  css  js  c++  java
  • 计算三角形的周长和面积的类

    class shape
    {
    public:
        virtual float perimeter() const{ return 0; }
        virtual float area()const { return 0; }
        virtual const char* name()const
        {
            return "抽象图形";
        }
    };

    class point
    {
        float x;
        float y;
    public:
        point(float x0, float y0) :x(x0), y(y0){}
        float getX()const { return x; }
        float getY()const { return y; }
    };

    class triangle :public shape
    {
        point point1, point2, point3;
    public:
        triangle(point p1, point p2, point p3) :point1(p1), point2(p2), point3(p3){}
        float perimeter()const;
        float area()const;
        const char* name()const{ return "三角形"; }
    };

    float length(point p1, point p2)
    {
        return sqrt((p1.getX() - p2.getX())*(p1.getX() - p2.getX()) + (p1.getY() - p2.getY())*(p1.getY() - p2.getY()));
    }

    float triangle::perimeter()const
    {
        float x = length(point1, point2);
        float y = length(point1, point3);
        float z = length(point3, point2);
        return length( point1, point2) + length( point1,  point3) + length( point2,  point3);
    }
    float triangle::area()const
    {
        float s = perimeter() / 2.0;
        return sqrt(s*(s - length(point1, point2))
            *(s - length(point2, point3))
            *(s - length(point3, point1)));
    }

    void show(shape& shape)
    {
        cout << "此图形是一个 " << shape.name() << ",周长= " << shape.perimeter() <<
            ", 面积=" << shape.area() << endl;
    }
    int _tmain()
    {
        shape s;
        triangle tri(point(0, 2), point(2, 0), point(0, 0));
        show(s);
        show(tri);
        return 0;



    }

  • 相关阅读:
    线性回归(Linear Regression)的理解及原理
    3个模型搞清楚用户留存分析
    机器学习简单介绍
    数据分析经典方法:5W2H分析法
    使用guava RateLimiter限流
    Maven之assembly自定义打包
    IDE自动编译
    神奇的$scope
    二分法查找
    深入理解CSS选择器优先级
  • 原文地址:https://www.cnblogs.com/huninglei/p/5441586.html
Copyright © 2011-2022 走看看