面向对象计算三角形的周长和面积
时间: 2024-10-22 11:10:10 浏览: 21
用继承方法计算三角形的周长和面积的JAVA程序源代码
5星 · 资源好评率100%
在 C++ 中,我们可以使用面向对象的方式来设计一个三角形类,该类包含三角形的边长属性(通常表示为 a、b 和 c)以及计算周长和面积的方法。下面是一个简单的例子:
```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) {
throw std::invalid_argument("Invalid triangle sides");
}
}
// 计算周长
double perimeter() const {
return side_a + side_b + side_c;
}
// 计算海伦公式求得的面积
double area() const {
double s = perimeter() / 2; // 半周长
return sqrt(s * (s - side_a) * (s - side_b) * (s - side_c));
}
private:
// 边长
double side_a, side_b, side_c;
};
int main() {
try {
double a, b, c;
std::cout << "Enter the lengths of triangle sides: ";
std::cin >> a >> b >> c;
Triangle triangle(a, b, c);
std::cout << "Triangle perimeter: " << triangle.perimeter() << std::endl;
std::cout << "Triangle area: " << triangle.area() << std::endl;
} catch (const std::invalid_argument& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
在这个例子中,我们定义了一个 `Triangle` 类,它有三个私有变量 `side_a`, `side_b`, 和 `side_c` 代表三角形的三边。构造函数用于检查边长是否能构成有效的三角形,然后提供 `perimeter()` 和 `area()` 方法分别计算周长和面积。在 `main()` 函数中,用户被提示输入三角形的边长,然后实例化 `Triangle` 对象并输出其周长和面积。
阅读全文