编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出。 提示: (1)学生类(Student),包含学生的姓名name和成绩grade,以及构造函数、setnane ()、setarade() gethame ()、geterade 0五个成员函数。 (2)主函数中定义学生类对象数组(例如:Student s[5];),依次录入每个学生的信息,然后排序输出。
时间: 2023-11-22 16:53:56 浏览: 64
以下是一个实现上述功能的程序:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
class Student {
private:
string name;
int grade;
public:
Student() {}
Student(string n, int g) : name(n), grade(g) {}
void setName(string n) {
name = n;
}
void setGrade(int g) {
grade = g;
}
string getName() {
return name;
}
int getGrade() {
return grade;
}
};
bool cmp(Student a, Student b) {
return a.getGrade() > b.getGrade();
}
int main() {
Student s[5];
for (int i = 0; i < 5; i++) {
string name;
int grade;
cout << "请输入第" << i + 1 << "个学生的姓名和成绩:";
cin >> name >> grade;
s[i].setName(name);
s[i].setGrade(grade);
}
sort(s, s + 5, cmp);
cout << "按成绩从高到低排序的结果为:" << endl;
for (int i = 0; i < 5; i++) {
cout << s[i].getName() << " " << s[i].getGrade() << endl;
}
return 0;
}
```
程序中定义了一个学生类 `Student`,包含了学生的姓名和成绩以及对应的构造函数和成员函数。其中 `cmp` 函数用于排序比较,实现了按成绩从高到低排列的功能。在主函数中定义了一个 `Student` 对象数组 `s[5]`,循环输入每个学生的信息,并按成绩从高到低排序输出。
阅读全文