C++ 定义一个三角形(Triangle)类,数据成员包括三角形的三边长a、b、 c。要求用成员函数实现以下功能: (1) 定义构造函数完成三角形的初始化;(2) 求三角形的周长;(3) 求三角形的面积;在main函数中对Triangle类进行实例化,并输出三角形的面积和周长。
时间: 2024-10-18 14:16:44 浏览: 38
用c++设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求多个个三角形对象的面积之和。
4星 · 用户满意度95%
在C++中,你可以定义一个名为Triangle的类,包含三角形的三条边长作为数据成员,并实现相应的成员函数。以下是具体的代码:
```cpp
#include <iostream>
#include <cmath> // 引入math库用于计算平方根
class Triangle {
private:
double a, b, c; // 三角形的三边长
public:
// 构造函数,接收三个边长参数
Triangle(double side_a, double side_b, double side_c) {
if (side_a + side_b > side_c && side_a + side_c > side_b && side_b + side_c > side_a) { // 验证是否构成有效三角形
a = side_a;
b = side_b;
c = side_c;
} else {
throw std::invalid_argument("Invalid triangle sides"); // 如果不是有效三角形,则抛出异常
}
}
// 成员函数求周长
double perimeter() const {
return a + b + c;
}
// 成员函数求面积,采用海伦公式:sqrt[s*(s-a)*(s-b)*(s-c)]
double area() const {
double s = (a + b + c) / 2; // 半周长
return std::sqrt(s * (s - a) * (s - b) * (s - c));
}
};
int main() {
try {
Triangle triangle(3.0, 4.0, 5.0); // 创建一个直角三角形实例
double perimeter_value = triangle.perimeter();
double area_value = triangle.area();
std::cout << "The perimeter of the triangle is: " << perimeter_value << std::endl;
std::cout << "The area of the triangle is: " << area_value << std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
这个`Triangle`类包含了构造函数用于设置三边长度(同时验证是否构成有效的三角形),`perimeter`函数用于计算周长,以及`area`函数使用海伦公式计算面积。在`main`函数中,我们实例化了一个三角形,调用了这两个成员函数并输出了结果。如果输入的三边无法构成三角形,会抛出异常并捕获处理。
阅读全文