用c++编写程序实现某学生姓名、年龄(合理范围:6~26)、五分制成绩(合理范围:0~5)的输入,调用函数实现检查年龄和成绩是否合理,抛出相应的异常信息;如果无异常,则返回对应的百分制成绩。要求主函数中检测和捕获异常,并输出该学生的姓名、年龄和百分制成绩。
时间: 2024-10-22 15:14:42 浏览: 29
在C++中,你可以按照下面的方式编写这个程序:
```cpp
#include <iostream>
#include <stdexcept>
// 定义检查年龄和成绩的函数
void checkAgeAndScore(int age, int score) {
if (age < 6 || age > 26) {
throw std::invalid_argument("年龄超出合理范围");
}
if (score < 0 || score > 5) {
throw std::invalid_argument("成绩超出合理范围");
}
}
// 计算百分制成绩的函数
double toPercentage(int score) {
return static_cast<double>(score) * 20;
}
int main() {
try {
std::string name;
std::cout << "请输入学生姓名:";
std::getline(std::cin, name);
int age, score;
std::cout << "请输入年龄:";
std::cin >> age;
checkAgeAndScore(age, score); // 检查并处理异常
std::cout << "请输入成绩:";
std::cin >> score;
checkAgeAndScore(age, score); // 再次检查异常,确保一致性
double percentage = toPercentage(score);
std::cout << "学生 " << name << " 的年龄是 " << age << " 岁,成绩是 " << percentage << "%。\n";
} catch (const std::exception& e) {
std::cerr << "错误: " << e.what() << '\n';
}
return 0;
}
```
在这个程序中,`checkAgeAndScore`函数用于检查年龄和成绩,如果不符合要求就会抛出`std::invalid_argument`异常。在`main`函数中,我们尝试获取输入并调用这两个检查函数,如果发生异常,会在`catch`块中捕获并打印错误信息。如果没有异常,我们会计算并输出百分制成绩。
阅读全文