使用C++编程:输入一个0到100的百分制成绩,转换成五级制A、B、C、D和E。程序中首先需要对输入的数进行合法性检查,对小于0和大于100的数要有提示,然后转换部分使用switch语句实现。
时间: 2024-10-21 09:11:35 浏览: 42
在C++中,你可以编写如下的程序来完成这个任务:
```cpp
#include <iostream>
int main() {
float score;
// 输入分数并进行合法性检查
std::cout << "请输入0到100之间的百分制成绩: ";
while (!(std::cin >> score) || score < 0 || score > 100) {
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cerr << "输入错误,请确保输入的是0到100之间的数字.\n";
std::cout << "请输入新的成绩: ";
}
// 转换分数为五级制
std::string grade;
switch ((int)(score)) {
case 90...100:
grade = 'A';
break;
case 80...89:
grade = 'B';
break;
case 70...79:
grade = 'C';
break;
case 60...69:
grade = 'D';
break;
default:
grade = 'E'; // 分数低于60
}
// 输出结果
std::cout << "对应的五级制等级是: " << grade << "\n";
return 0;
}
```
此程序首先提示用户输入分数,如果输入无效(如非数字或超出范围),会清除输入流中的错误标志并忽略剩余输入,直到输入有效为止。接着使用`switch`语句将分数映射到相应的字母等级。
阅读全文