用C++编写以下程序,有一个学生类 student,包括学生姓名、成绩,设计一个友元函数,输出成绩对应的等级: 大于等于 90:优;80~90:良;70~79:中;60~69:及格;小于 60:不及格。 指导:在学生类 student 中定义 3 个数据成员:学生姓名、成绩、等级。定义 2 个成员函 数,分别对学生信息进行设置、输出。另外还定义了一个友元函数 trans(),将成绩转换为对应 的等级。
时间: 2024-01-21 14:18:54 浏览: 102
以下是程序的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class student {
private:
string name;
int score;
char grade;
public:
void setInfo(string n, int s) {
name = n;
score = s;
trans(score);
}
void getInfo() {
cout << "Name: " << name << endl;
cout << "Score: " << score << endl;
cout << "Grade: " << grade << endl;
}
friend void trans(int s) {
if (s >= 90) {
grade = 'A';
} else if (s >= 80) {
grade = 'B';
} else if (s >= 70) {
grade = 'C';
} else if (s >= 60) {
grade = 'D';
} else {
grade = 'F';
}
}
};
int main() {
student s;
s.setInfo("Tom", 85);
s.getInfo();
return 0;
}
```
在上面的代码中,我们定义了一个学生类 `student`,该类有三个数据成员:学生姓名、成绩、等级。`setInfo` 函数用于设置学生信息,其中包括学生姓名和成绩,而 `getInfo` 函数用于输出学生信息,包括学生姓名、成绩和等级。
我们还定义了一个友元函数 `trans`,该函数将成绩转换为对应的等级,并将结果存储在等级变量 `grade` 中。这个函数定义为友元函数,是因为我们需要访问 `student` 类中的私有成员变量 `grade`。
在 `main` 函数中,我们创建了一个学生对象 `s`,并使用 `setInfo` 函数设置了学生信息。然后,我们调用 `getInfo` 函数输出学生信息,其中包括成绩对应的等级。
阅读全文