1437: 多边形中的继承

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:768 解决:525

题目描述

有一个多边形(polygon)类,顶点由点(Point)类定义,它派生出三角形(triangle)、矩形(rectangle)、梯形(trapezoid)、平行四边形(rhomboid),菱形(diamond)类。他们的成员变量是多边形的顶点,方法是求周长perimeter、面积 area。关系如下图:

请你编程建立这些类,以及类之间的关系,并完成周长和面积的计算。

输入

输入有若干行(不超过20行),每行一个多边形。第一个数字是1、2、3、4、5,分别表示三角形(triangle)、矩形(rectangle)、梯形(trapezoid)、平行四边形(rhomboid),菱形(diamond),接着是按逆时针方向排列的多边形的顶点。

输出

输出相应的周长和面积,格式见样例,结果保留小数点一位。

样例输入 复制

1 0 0 1 0 0 1
2 5 1 5 10 0 10 0 1
5 4 0 0 3 -4 0 0 -3
4 0 0 6 2 6 6 0 4
3 -5 -5 10 -5 8 0 0 0

样例输出 复制

这是一个三角形,周长为:3.4,面积为0.5.
这是一个矩形,周长为:28.0,面积为45.0.
这是一个菱形,周长为:20.0,面积为24.0.
这是一个平行四边形,周长为:20.6,面积为24.0.
这是一个梯形,周长为:35.5,面积为57.5.