编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出。 提示: (1)学生类(Student),包含学生的姓名name和成绩grade,以及构造函数、setnane ()、setarade() gethame ()、geterade 0五个成员函数。 (2)主函数中定义学生类对象数组(例如:Student s[5];),依次录入每个学生的信息,然后排序输出。
时间: 2023-11-22 18:52:45 浏览: 204
以下是一个示例程序,通过输入学生姓名和成绩,使用冒泡排序法将学生成绩从高到低排列并输出:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string name;
int grade;
public:
Student() {
name = "";
grade = 0;
}
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;
}
};
void bubbleSort(Student s[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (s[j].getGrade() < s[j + 1].getGrade()) {
Student temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
}
int main() {
Student s[5];
int grade;
string name;
// 输入学生信息
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i + 1 << "个学生的姓名:";
cin >> name;
cout << "请输入第" << i + 1 << "个学生的成绩:";
cin >> grade;
s[i].setName(name);
s[i].setGrade(grade);
}
// 按成绩从高到低排序
bubbleSort(s, 5);
// 输出学生成绩
cout << "学生成绩如下:" << endl;
for (int i = 0; i < 5; i++) {
cout << s[i].getName() << " " << s[i].getGrade() << endl;
}
return 0;
}
```
在上述代码中,我们首先定义了一个`Student`类,其中包含了学生的姓名和成绩,以及构造函数、set和get成员函数。然后在主函数中定义了一个学生类对象数组`s`,循环输入学生信息,并使用冒泡排序算法将学生成绩从高到低排序。最后按顺序输出学生成绩。
阅读全文