C++设计实现 Triangle 类输入三角形的三条边a、b、c,判断 等三角形(等腰三角形、直角三角形、一般三角形),包含边长属性,和判断形状的方法
时间: 2024-10-24 12:11:32 浏览: 47
triangle_matlab重载函数_triangle函数_三角形周长、面积计算_
5星 · 资源好评率100%
在C++中,我们可以创建一个名为`Triangle`的类来表示三角形,并提供成员变量和方法来存储边长和进行形状判断。首先,我们定义三个私有变量`a`, `b`, 和 `c` 来保存三角形的三边长度。接着,我们将添加公共构造函数接受三条边的输入,并在内部检查它们是否满足三角形边长的关系。
```cpp
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"); // 边长不构成有效三角形
}
}
// 判断三角形类型的方法
enum class Shape { Equilateral, Isosceles, Scalene, Right };
Shape getShape() const {
if (a == b && b == c) return Shape::Equilateral; // 等边三角形
if (a == c || b == c) return Shape::Isosceles; // 等腰三角形
if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) return Shape::Right; // 直角三角形
return Shape::Scalene; // 一般三角形
}
// 获取边长的方法
double getSideLength(int index) const {
switch (index) {
case 0: return a;
case 1: return b;
case 2: return c;
default: throw std::out_of_range("Invalid index for side length"); // 非法索引
}
}
};
```
阅读全文