定义一个三角形类Triangle。 数据成员有:三个点Point的对象,即Point p1,p2,p3。还有一个三角形的周长len。 Triangle类具有计算周长和面积的函数。 请完整定义Point和Triangle类,并实现main函数。
时间: 2023-04-07 12:03:38 浏览: 129
好的,我可以回答这个问题。以下是完整的Point和Triangle类的定义,以及实现main函数的代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point(double x = 0, double y = 0) {
this->x = x;
this->y = y;
}
double getX() const {
return x;
}
double getY() const {
return y;
}
};
class Triangle {
private:
Point p1, p2, p3;
double len;
public:
Triangle(Point p1, Point p2, Point p3) {
this->p1 = p1;
this->p2 = p2;
this->p3 = p3;
len = getLength(p1, p2) + getLength(p2, p3) + getLength(p3, p1);
}
double getLength(Point p1, Point p2) const {
double dx = p1.getX() - p2.getX();
double dy = p1.getY() - p2.getY();
return sqrt(dx * dx + dy * dy);
}
double getPerimeter() const {
return len;
}
double getArea() const {
double a = getLength(p1, p2);
double b = getLength(p2, p3);
double c = getLength(p3, p1);
double p = (a + b + c) / 2;
return sqrt(p * (p - a) * (p - b) * (p - c));
}
};
int main() {
Point p1(0, 0);
Point p2(3, 0);
Point p3(0, 4);
Triangle t(p1, p2, p3);
cout << "Perimeter: " << t.getPerimeter() << endl;
cout << "Area: " << t.getArea() << endl;
return 0;
}
```
在上面的代码中,我们定义了一个Point类和一个Triangle类。Point类表示一个点,包含x和y两个数据成员,以及一个构造函数和两个访问函数。Triangle类表示一个三角形,包含三个Point对象和一个周长len数据成员,以及一个构造函数和两个计算周长和面积的函数。在main函数中,我们创建了三个点对象p1、p2和p3,然后创建了一个三角形对象t,计算并输出了它的周长和面积。
希望这个回答能够帮助你!
阅读全文