定义一个三角形类Triangle。 数据成员有:三个点Point的对象,即Point p1,p2,p3。还有一个三角形的周长len。 Triangle类具有计算周长和面积的函数。 请完整定义Point和Triangle类,并实现main函数。
时间: 2023-04-07 20:03:43 浏览: 194
好的,我可以回答这个问题。
首先,我来定义Point类:
```cpp
class Point {
public:
Point(double x = 0, double y = 0) : x(x), y(y) {}
double getX() const { return x; }
double getY() const { return y; }
private:
double x, y;
};
```
接下来,我来定义Triangle类:
```cpp
#include <cmath>
class Triangle {
public:
Triangle(const Point& p1, const Point& p2, const Point& p3)
: p1(p1), p2(p2), p3(p3) {}
double getLen() const {
double len1 = std::sqrt(std::pow(p1.getX() - p2.getX(), 2) + std::pow(p1.getY() - p2.getY(), 2));
double len2 = std::sqrt(std::pow(p2.getX() - p3.getX(), 2) + std::pow(p2.getY() - p3.getY(), 2));
double len3 = std::sqrt(std::pow(p3.getX() - p1.getX(), 2) + std::pow(p3.getY() - p1.getY(), 2));
return len1 + len2 + len3;
}
double getArea() const {
double a = std::sqrt(std::pow(p1.getX() - p2.getX(), 2) + std::pow(p1.getY() - p2.getY(), 2));
double b = std::sqrt(std::pow(p2.getX() - p3.getX(), 2) + std::pow(p2.getY() - p3.getY(), 2));
double c = std::sqrt(std::pow(p3.getX() - p1.getX(), 2) + std::pow(p3.getY() - p1.getY(), 2));
double p = (a + b + c) / 2;
return std::sqrt(p * (p - a) * (p - b) * (p - c));
}
private:
Point p1, p2, p3;
};
```
最后,我来实现main函数:
```cpp
#include <iostream>
int main() {
Point p1(0, 0), p2(0, 1), p3(1, 0);
Triangle t(p1, p2, p3);
std::cout << "Len: " << t.getLen() << std::endl;
std::cout << "Area: " << t.getArea() << std::endl;
return 0;
}
```
这样就完成了定义Triangle类和实现main函数的任务。
阅读全文