11.8 Quadrilateral_Inheritance

11.8 Quadrilateral_Inheritance

描述

按照书本11.8描述编写四边形的类继承结构
支持求四边形的周长和面积(getPerimeter,getArea2函数)
支持判断四边形类型,使用check函数进行判断

为了统一实现方式,请将以下代码作为你的递交代码中的实现部分(main函数),复制过去递交

int main()
{
    Quadrilateral a;
    cin >> a;
    cout << fixed << setprecision(2) << a.getPerimeter();
    cout << ' ';
    cout << a.getArea2()<<endl;

    Trapezoid tr(a);
    if (tr.check()) cout << "YES\n";
    else cout << "NO\n";

    //套娃警告
    Parallelogram par(a);
    if (par.check())
    {
        Rectangle rec(par);
        if (rec.check())
        {
            Square sq(rec);
            if (sq.check()) cout << "square";
            else cout << "rectangle";
        }
        else cout << "parallelogram";
    }
    else cout << "NO";
}

输入

输入包含4行,每行两个整数\(x,y\),分别表示四边形四个点的坐标
点会以顺时针顺序给出
输入数据保证输入的四个点一定能构成一个四边形
坐标的绝对值不超过100

输出

输出3行
第一行输出四边形的周长和面积,用一个空格隔开,周长保留两位小数,面积输出两倍。
(面积的两倍一定是整数,思考一下为什么?)
第二行输出四边形是否为梯形,是则输出"YES",否则输出"NO"
第三行输出四边形的形状,若为正方形则输出"square",矩形输出"rectangle",平行四边形输出"parallelogram",其它四边形输出"NO"(写出类的继承关系和check函数)

输入样例1

0 0
0 2
3 5
3 1

输出样例1

13.40 18
YES
NO

输入样例2

0 0
0 5
5 5
5 0

输出样例2

20.00 50
NO
square

提示

注意四边形可能是斜着的矩形/梯形等
注意构造函数的嵌套(套娃)
推荐给每个类写带有一个Quadrilateral对象作为参数的构造函数
可以利用向量的数量积和矢量积来判断平行、垂直和求面积

信息

ID
1004
难度
3
分类
计算几何 点击显示
标签
递交数
173
已通过
34
通过率
20%
上传者