使用类计算三角形面积,在类函数中判断如不能构成三角形抛出异常结束,否则可继续循环输入三角形三边计算,直到输入N/n结束,输入在主函数中进行。
时间: 2024-05-15 17:14:12 浏览: 12
以下是一个示例代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Triangle {
private:
double a, b, c;
public:
Triangle(double a, double b, double c) {
if (a + b <= c || a + c <= b || b + c <= a) {
throw "Invalid triangle!";
}
this->a = a;
this->b = b;
this->c = c;
}
double getArea() {
double p = (a + b + c) / 2.0;
return sqrt(p * (p - a) * (p - b) * (p - c));
}
};
int main() {
while (true) {
cout << "Enter the sides of a triangle (separated by spaces): ";
double a, b, c;
if (!(cin >> a >> b >> c)) {
break;
}
try {
Triangle t(a, b, c);
cout << "The area of the triangle is: " << t.getArea() << endl;
} catch (const char* msg) {
cerr << msg << endl;
}
}
return 0;
}
```
在这个例子中,我们定义了一个 `Triangle` 类来表示三角形,并且在构造函数中判断输入的三边是否能够构成一个合法的三角形。如果不能,我们抛出一个异常并结束程序。否则,我们可以调用 `getArea` 函数来计算三角形的面积。
在 `main` 函数中,我们使用一个死循环来不断读取用户的输入。如果用户输入了非法字符,比如输入了一个字母,那么我们就退出循环。否则,我们尝试构造一个 `Triangle` 对象,如果构造成功,我们就输出三角形的面积。如果构造失败,我们就捕获异常并输出错误信息。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)