编写一个c++程序:从键盘输入一个学生的名字(建议用字符数组),年龄(16~25岁),五级制的面向对象课程考试成绩分数(0~5),调用函数float checkscore(int age,float score),该函数主要完成两件事:通过检查两个形参的范围是否合理,抛出异常信息提醒;如无异常则返回百分制成绩,最后输出学生的年龄、姓名、成绩
时间: 2024-02-05 17:12:05 浏览: 47
以下是一个示例程序,实现了从键盘读入学生的姓名、年龄和五级制考试成绩,并调用checkscore函数对成绩进行转换和检查:
```c++
#include <iostream>
#include <stdexcept>
#include <string>
using namespace std;
float checkscore(int age, float score);
int main() {
string name;
int age;
float score;
cout << "请输入学生姓名:";
cin >> name;
cout << "请输入学生年龄(16~25岁):";
cin >> age;
if (age < 16 || age > 25) {
throw out_of_range("年龄必须在16~25岁之间");
}
cout << "请输入学生面向对象课程成绩(0~5分):";
cin >> score;
try {
float grade = checkscore(age, score);
cout << "学生姓名:" << name << endl;
cout << "学生年龄:" << age << endl;
cout << "学生成绩:" << grade << endl;
} catch (const exception& e) {
cerr << "成绩转换出错:" << e.what() << endl;
}
return 0;
}
float checkscore(int age, float score) {
if (score < 0 || score > 5) {
throw out_of_range("成绩必须在0~5分之间");
}
if (age >= 16 && age <= 18) {
return score * 20;
} else if (age >= 19 && age <= 21) {
return score * 25;
} else {
return score * 30;
}
}
```
程序首先读入学生的姓名、年龄和成绩,然后检查年龄是否在16~25岁之间,如果不是则抛出异常;然后调用checkscore函数对成绩进行转换和检查,如果成绩不在0~5分之间则抛出异常;最后输出学生的姓名、年龄和成绩(以百分制表示)。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)