用C加加设计一个包括考虑异常情况的分数嘞
时间: 2024-04-30 17:18:22 浏览: 107
好的,下面是一个简单的计算分数的示例程序,其考虑了除数为零的异常情况:
```c++
#include <iostream>
#include <exception>
using namespace std;
int main()
{
int score, total;
float ratio;
cout << "Please enter the total score: ";
cin >> total;
try {
cout << "Please enter the score you got: ";
cin >> score;
if (score < 0 || score > total) {
throw runtime_error("Invalid score!");
}
ratio = (float)score / total;
cout << "Your ratio is " << ratio << endl;
} catch (exception& e) {
cout << "Error: " << e.what() << endl;
} catch (...) {
cout << "Unknown error occurred." << endl;
}
return 0;
}
```
在这个程序中,我们首先要求用户输入总分数,然后尝试获取用户得分。如果用户输入的得分不在合法的范围内(即小于0或大于总分数),则会抛出一个 `runtime_error` 异常。如果用户输入的得分合法,则计算得分占总分数的比例并输出。
在 `try` 块中,我们使用了 `throw` 语句来抛出异常。如果抛出的是 `runtime_error` 异常,则在 `catch` 块中捕获并输出异常信息。如果抛出的是其他类型的异常,则会被 `catch (...)` 块捕获并输出一条默认的错误信息。
需要注意的是,在使用异常处理机制时,应该仅针对预料之中的异常情况进行处理,而不应该将异常处理机制用于控制程序流程。异常处理机制的本意是为了在程序出现异常时能够进行恰当的处理,以防止程序崩溃或出现不可预料的后果。
阅读全文