用C++编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出。提示: (1)学生类(Student),包含学生的姓名 name 和成绩 grade,以及构造函数、setname ()、setgrade0、getname 0、getgrade 0五个成员函数。 (2)主函数中定义学生类对象数组(例如:Student s[5];),依次录入每个学生的信息,然后排序输出。
时间: 2023-07-15 21:15:38 浏览: 109
以下是一个简单的实现,仅供参考:
```c++
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
class Student {
private:
string name;
int grade;
public:
Student() {}
Student(string _name, int _grade) {
name = _name;
grade = _grade;
}
void setname(string _name) {
name = _name;
}
void setgrade(int _grade) {
grade = _grade;
}
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 << "个学生的姓名和成绩:" << endl;
cin >> name >> grade;
s[i] = Student(name, 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` 类,包含了学生的姓名和成绩以及对应的 set 和 get 函数。然后在主函数中定义了一个 `Student` 对象数组,循环录入每个学生的信息并存入数组中。最后通过 `sort` 函数对数组进行排序,按成绩从高到低排列,并输出每个学生的姓名和成绩。
阅读全文