用C++语言定义一个三角形(Triangle)类,数据成员包括三角形的三边长a、b、 c。要求用成员函数实现以下功能: (1) 定义构造函数完成三角形的初始化;(2) 求三角形的周长;(3) 求三角形的面积;在main函数中对Triangle类进行实例化,并输出三角形的面积和周长
时间: 2024-10-18 21:17:12 浏览: 31
用c++设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求多个个三角形对象的面积之和。
4星 · 用户满意度95%
在C++中,我们可以定义一个名为`Triangle`的类来表示三角形,包含三边长度的数据成员以及相应的成员函数。以下是满足您需求的示例代码:
```cpp
#include <iostream>
#include <cmath> // 引入计算平方根的库
class Triangle {
public:
// 构造函数,接受三条边的长度作为参数
Triangle(double a, double b, double c) : side_a(a), side_b(b), side_c(c) {
if (a + b <= c || a + c <= b || b + c <= a) {
std::cerr << "Invalid triangle sides! The sum of any two sides must be greater than the third." << std::endl;
}
}
// 计算并返回三角形的周长
double perimeter() const {
return side_a + side_b + side_c;
}
// 卡尔·弗雷德里克·高斯公式求面积,前提是所有边都是实数
double area() const {
double s = perimeter() / 2; // 半周长
return std::sqrt(s * (s - side_a) * (s - side_b) * (s - side_c));
}
private:
double side_a, side_b, side_c;
};
int main() {
// 创建一个三角形实例
Triangle triangle(3.0, 4.0, 5.0);
// 输出三角形的面积和周长
std::cout << "Area: " << triangle.area() << std::endl;
std::cout << "Perimeter: " << triangle.perimeter() << std::endl;
return 0;
}
```
在这个例子中,我们首先检查输入的边长是否可以构成有效的三角形,然后提供了一个构造函数来初始化三边长度。`perimeter()`函数用于计算三角形的总周长,而`area()`函数则应用了海伦公式计算其面积。
阅读全文