有一个学生类Student,包括学生姓名、成绩,要求: (1)设计一个友元函数Compare(),比较两个学生成绩的高低。 (2)在main()函数中定义一个对象数组用于存储输入学生的数据,并求出最高分和最低分的学生。
时间: 2024-02-22 17:57:25 浏览: 45
下面是一个简单的实现:
```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 bool Compare(Student s1, Student s2);
string getName() {
return name;
}
int getScore() {
return score;
}
};
bool Compare(Student s1, Student s2) {
return s1.score > s2.score;
}
int main() {
const int N = 5;
Student students[N] = { Student("Tom", 90), Student("Jack", 80), Student("Mary", 85), Student("Lucy", 92), Student("Bob", 88) };
Student max_student = students[0];
Student min_student = students[0];
for (int i = 1; i < N; i++) {
if (Compare(students[i], max_student)) {
max_student = students[i];
}
if (!Compare(students[i], min_student)) {
min_student = students[i];
}
}
cout << "max student: " << max_student.getName() << ", score: " << max_student.getScore() << endl;
cout << "min student: " << min_student.getName() << ", score: " << min_student.getScore() << endl;
return 0;
}
```
这里定义了一个友元函数`Compare()`,用来比较两个学生成绩的高低,然后在`main()`函数中定义了一个`Student`对象数组,遍历数组求出最高分和最低分的学生,最后输出结果。