设计一个Point类,表示平面中的一个点 设计一个Triangle类(三角形类),内含三点。 要求: 设计类的相应的构造函数、复制构造函数,完成初始化和对象复制 设计Triangle类的成员函数,分别完成三点边能否构成三角形的检查,三角形周长的计算
时间: 2024-05-12 09:16:13 浏览: 97
设计一个Triangle类
,以及三角形面积的计算。
以下是实现代码:
```
class Point {
public:
float x, y;
// 默认构造函数
Point() {
x = 0.0f;
y = 0.0f;
}
// 带参数的构造函数
Point(float x, float y) {
this->x = x;
this->y = y;
}
// 复制构造函数
Point(const Point& other) {
x = other.x;
y = other.y;
}
};
class Triangle {
public:
Point p1, p2, p3;
// 默认构造函数
Triangle() {
Point zeroPoint;
p1 = zeroPoint;
p2 = zeroPoint;
p3 = zeroPoint;
}
// 带参数的构造函数
Triangle(Point p1, Point p2, Point p3) {
this->p1 = p1;
this->p2 = p2;
this->p3 = p3;
}
// 复制构造函数
Triangle(const Triangle& other) {
p1 = other.p1;
p2 = other.p2;
p3 = other.p3;
}
// 检查三点能否构成三角形
bool checkTriangle() {
float d1 = distance(p1, p2);
float d2 = distance(p2, p3);
float d3 = distance(p1, p3);
return (d1 + d2 > d3) && (d2 + d3 > d1) && (d1 + d3 > d2);
}
// 计算三角形周长
float perimeter() {
float d1 = distance(p1, p2);
float d2 = distance(p2, p3);
float d3 = distance(p1, p3);
return d1 + d2 + d3;
}
// 计算三角形面积
float area() {
float d1 = distance(p1, p2);
float d2 = distance(p2, p3);
float d3 = distance(p1, p3);
float p = (d1 + d2 + d3) / 2.0f;
return sqrt(p * (p - d1) * (p - d2) * (p - d3));
}
private:
float distance(Point p1, Point p2) {
float dx = p1.x - p2.x;
float dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy);
}
};
```
阅读全文