试着编写一个的简单的求给定数平方根的程序。要求设计一个异常类 用异常处理机制来检测给定数为负数的情况。在主函数中进行测试。
时间: 2024-03-26 08:39:06 浏览: 100
MFC课程设计报告_一个简单的计算器应用程序文件.pdf
好的,以下是一个简单的求给定数平方根的程序,使用了异常处理机制来检测给定数为负数的情况。我们还定义了一个异常类 `NegativeNumberException`,用于处理给定数为负数的情况。
```cpp
#include <iostream>
#include <cmath>
// 自定义异常类
class NegativeNumberException : public std::exception {
public:
const char* what() const noexcept {
return "Error: Given number is negative.";
}
};
// 求平方根函数
double squareRoot(double n) {
if (n < 0) {
throw NegativeNumberException(); // 抛出 NegativeNumberException 异常
}
return std::sqrt(n);
}
int main() {
double n;
std::cout << "Please enter a non-negative number: ";
std::cin >> n;
try {
double result = squareRoot(n); // 调用求平方根函数
std::cout << "The square root of " << n << " is " << result << std::endl;
} catch (const NegativeNumberException& e) { // 捕获 NegativeNumberException 异常
std::cerr << e.what() << std::endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个 `NegativeNumberException` 异常类,它继承自 `std::exception` 类,重载了 `what()` 函数,返回一个错误信息。在 `squareRoot()` 函数中,如果给定的数为负数,就抛出 `NegativeNumberException` 异常。在主函数中,我们调用 `squareRoot()` 函数来求给定数的平方根,并使用 `try-catch` 块来捕获可能抛出的 `NegativeNumberException` 异常。如果捕获到该异常,就输出错误信息;否则,输出求得的平方根值。
下面是一些运行示例:
```
Please enter a non-negative number: 4
The square root of 4 is 2
Please enter a non-negative number: -1
Error: Given number is negative.
```
阅读全文