c++定义一个四边形类,要求输入四个顶点,得到四边形周长和面积
时间: 2023-08-10 09:02:42 浏览: 210
c++—用类进行圆的周长和面积的计算
以下是一个简单的四边形类的实现,包含了计算周长和面积的成员函数:
```c++
#include <cmath>
class Quadrilateral {
public:
Quadrilateral(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
: x1_(x1), y1_(y1), x2_(x2), y2_(y2), x3_(x3), y3_(y3), x4_(x4), y4_(y4) {}
double perimeter() {
double d1 = std::sqrt(std::pow(x2_ - x1_, 2) + std::pow(y2_ - y1_, 2));
double d2 = std::sqrt(std::pow(x3_ - x2_, 2) + std::pow(y3_ - y2_, 2));
double d3 = std::sqrt(std::pow(x4_ - x3_, 2) + std::pow(y4_ - y3_, 2));
double d4 = std::sqrt(std::pow(x1_ - x4_, 2) + std::pow(y1_ - y4_, 2));
return d1 + d2 + d3 + d4;
}
double area() {
double a = std::sqrt(std::pow(x2_ - x1_, 2) + std::pow(y2_ - y1_, 2));
double b = std::sqrt(std::pow(x3_ - x2_, 2) + std::pow(y3_ - y2_, 2));
double c = std::sqrt(std::pow(x4_ - x3_, 2) + std::pow(y4_ - y3_, 2));
double d = std::sqrt(std::pow(x1_ - x4_, 2) + std::pow(y1_ - y4_, 2));
double p = (a + b + c + d) / 2;
return std::sqrt((p - a) * (p - b) * (p - c) * (p - d));
}
private:
double x1_, y1_, x2_, y2_, x3_, y3_, x4_, y4_;
};
```
使用时,可以这样调用:
```c++
int main() {
Quadrilateral quad(0, 0, 1, 0, 1, 1, 0, 1); // 定义一个正方形
double perimeter = quad.perimeter(); // 计算周长
double area = quad.area(); // 计算面积
return 0;
}
```
注意,这里假设输入的四点是按照顺序依次连接起来的,如果输入的四点不在同一平面上或者不是按照顺序连接的,则需要进行额外处理。
阅读全文