c++需要求一个三角形的体积,请编写一个面向对象的程序。数据成员包括三角形的三边长 a、b、c。要求用成员函数实现以下功能: (1)定义构造函数完成三角形的初始化。 (2)求三角形的周长。 (3)求三角形的面积(4)输出三角形信息:
时间: 2024-10-25 21:14:01 浏览: 15
编写一个程序,输入三角形的三条边的边长,求三角形的面积。
当然,我们可以创建一个名为`Triangle`的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");
}
perimeter = a + b + c;
}
// 求三角形的周长
double getPerimeter() const {
return perimeter;
}
// Heron's formula用于计算三角形面积
double getArea() const {
double semi_perimeter = perimeter / 2.0;
return sqrt(semi_perimeter * (semi_perimeter - side_a) * (semi_perimeter - side_b) * (semi_perimeter - side_c));
}
// 输出三角形信息
void printInfo() const {
std::cout << "Triangle with sides of length a=" << side_a << ", b=" << side_b << ", c=" << side_c << std::endl;
std::cout << "Perimeter: " << perimeter << std::endl;
std::cout << "Area: " << getArea() << std::endl;
}
private:
double side_a, side_b, side_c; // 三角形的三边长
double perimeter; // 三角形的周长
// 防止直接访问私有变量,使用const修饰符可以避免在类外部修改边长
double& getSideA() { return side_a; }
double& getSideB() { return side_b; }
double& getSideC() { return side_c; }
};
int main() {
try {
Triangle triangle(3.0, 4.0, 5.0);
triangle.printInfo();
} catch (std::invalid_argument& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
在这个程序中,我们定义了一个`Triangle`类,它包含了初始化构造函数、计算周长和面积的成员函数,以及一个打印信息的方法。在`main`函数中,我们实例化了一个三角形并调用了这些方法。
阅读全文