A有一个学生类student,包括学生姓名、成绩,设计一个友元函数,输出成绩对应的等级:大于等于90:优;80~90:良;70~79:中;60!69:及格;小于60:不及格。输出学生姓名成绩。用C++
时间: 2023-09-16 20:05:33 浏览: 261
### 回答1:
首先在头文件中定义一个学生类(student),包括学生姓名和成绩。然后定义友元函数(grade),用来输出成绩对应的等级。具体实现代码如下:
```c
#include<iostream>
using namespace std;
class student{
public:
student(string name="", int score=0){ //构造函数
this->name = name;
this->score = score;
}
friend void grade(student s); //友元函数
private:
string name;
int score;
};
void grade(student s){ //定义友元函数grade
string level;
if(s.score>=90) level = "优";
else if(s.score>=80) level = "良";
else if(s.score>=70) level = "中";
else if(s.score>=60) level = "及格";
else level = "不及格";
cout << s.name << " " << s.score << " " << level << endl;
}
int main(){
student s("张三",85);
grade(s);
return 0;
}
```
运行结果如下:
```
张三 85 良
```
### 回答2:
可以通过友元函数来实现对学生类中成绩的判断和输出等级的操作。首先,在学生类中定义一个友元函数,该函数的作用是判断输入的成绩所对应的等级,并将学生的姓名和成绩输出。具体步骤如下:
1. 在学生类中定义私有成员变量,包括学生姓名和成绩。同时,在类声明中声明友元函数。
```C
class student {
private:
string name;
int score;
friend void showLevel(student stu);
};
```
2. 在类定义外部实现友元函数,并在函数中判断输入成绩所对应的等级,并输出学生姓名和成绩。
```C
void showLevel(student stu){
string level;
if(stu.score >= 90){
level = "优";
}
else if(stu.score >= 80 && stu.score < 90){
level = "良";
}
else if(stu.score >= 70 && stu.score < 80){
level = "中";
}
else if(stu.score >= 60 && stu.score < 70){
level = "及格";
}
else{
level = "不及格";
}
cout << "学生姓名:" << stu.name << endl;
cout << "学生成绩:" << stu.score << endl;
cout << "成绩等级:" << level << endl;
}
```
3. 在主函数中创建学生对象,设置学生的姓名和成绩,并调用友元函数进行成绩的判断和输出。
```C
int main(){
student stu;
cout << "请输入学生姓名:" << endl;
cin >> stu.name;
cout << "请输入学生成绩:" << endl;
cin >> stu.score;
showLevel(stu);
return 0;
}
```
这样,当程序运行时,会提示输入学生的姓名和成绩,然后调用友元函数进行成绩判断和输出。最后,程序会输出学生姓名、成绩和对应的等级。
### 回答3:
可以在学生类中定义一个友元函数,用于输出成绩对应的等级。代码如下:
```c
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string name;
int score;
public:
Student(string name, int score) {
this->name = name;
this->score = score;
}
friend void printGrade(Student stu);
};
void printGrade(Student stu) {
cout << "学生姓名:" << stu.name << endl;
cout << "学生成绩:" << stu.score << endl;
if (stu.score >= 90) {
cout << "等级:优" << endl;
} else if (stu.score >= 80) {
cout << "等级:良" << endl;
} else if (stu.score >= 70) {
cout << "等级:中" << endl;
} else if (stu.score >= 60) {
cout << "等级:及格" << endl;
} else {
cout << "等级:不及格" << endl;
}
}
int main() {
Student stu("张三", 85);
printGrade(stu);
return 0;
}
```
上述代码中,定义了一个名为`Student`的学生类,包括学生姓名和成绩。在类中声明了一个友元函数`printGrade()`,用于输出学生的成绩等级。在`printGrade()`函数中,根据学生的成绩判断等级,并输出学生的姓名、成绩和等级。
在`main()`函数中,创建了一个名为`stu`的学生对象,并调用`printGrade()`函数输出该学生的成绩等级。根据上述代码,输出的结果应为:
```
学生姓名:张三
学生成绩:85
等级:良
```
阅读全文