c++,定义一个三角形类 Ctriangle,求三角形面积和周长。
时间: 2024-12-11 14:23:35 浏览: 38
在C++中,你可以创建一个名为`CTriangle`的类来表示三角形,并提供计算面积和周长的方法。首先,我们需要定义三个顶点的坐标,通常用两个整数代表横纵坐标的点。这是一个简单的例子:
```cpp
#include <iostream>
#include <cmath>
class Point {
public:
int x;
int y;
Point(int x = 0, int y = 0) : x(x), y(y) {}
};
class CTriangle {
private:
Point vertices[3]; // 三角形的三个顶点
public:
// 构造函数接收三个点作为输入
CTriangle(Point& a, Point& b, Point& c)
: vertices{a, b, c} {}
// 计算并返回周长
double perimeter() const {
double sum = 0;
for (int i = 0; i < 3; ++i) {
sum += std::sqrt(std::pow(vertices[i].x - vertices[(i + 1) % 3].x, 2) +
std::pow(vertices[i].y - vertices[(i + 1) % 3].y, 2));
}
return sum;
}
// 海伦公式计算面积
double area() const {
double a = vertices[1].distance(vertices[0]); // 边AB长度
double b = vertices[2].distance(vertices[0]); // 边BC长度
double c = vertices[2].distance(vertices[1]); // 边AC长度
double s = (a + b + c) / 2.0; // 半周长
return std::sqrt(s * (s - c)); // 使用海伦公式
}
void display() const {
std::cout << "Triangle with vertices at (" << vertices[0].x << ", "
<< vertices[0].y << "), (" << vertices[1].x << ", "
<< vertices[1].y << "), and (" << vertices[2].x << ", "
<< vertices[2].y << ") has a perimeter of " << perimeter()
<< " units and an area of " << area() << " square units.\n";
}
};
// 主函数示例
int main() {
Point vertex1(0, 0);
Point vertex2(3, 0);
Point vertex3(0, 4); // 假设是一个直角三角形
CTriangle triangle(vertex1, vertex2, vertex3);
triangle.display();
return 0;
}
```
在这个例子中,我们定义了一个`Point`类来存储顶点的坐标,然后在`CTriangle`类中实现了计算周长和面积的方法。注意这里假设了`Point`类有一个用于计算两点间距离的方法(如`distance`),实际实现可能需要额外引入`<cmath>`头文件。
阅读全文