编写一个学生类,包含学号(string)、姓名(string)和成绩(double)三个私有属性,以及设置姓名、学号和成绩值,获得成绩值,输出姓名、学号和成绩等的共有成员函数。根据输入的人数,定义学生类对象数组,并读入学生信息,然后按照成绩由高低顺序排序并输出。 输入格式: 第1行输入学生人数n(0<n<100),随后n行分别输入学生学号、姓名、成绩。 输出格式: 按成绩由高到低输出每个学生的信息
时间: 2023-05-29 10:07:24 浏览: 198
#include <iostream>
#include <algorithm>
using namespace std;
class Student {
private:
string id; // 学号
string name; // 姓名
double score; // 成绩
public:
void setId(string s) { id = s; } // 设置学号
void setName(string s) { name = s; } // 设置姓名
void setScore(double d) { score = d; } // 设置成绩
double getScore() { return score; } // 获得成绩
void print() { cout << name << " " << id << " " << score << endl; } // 输出姓名、学号和成绩
};
bool cmp(Student a, Student b) { // 比较函数,按成绩从高到低排序
return a.getScore() > b.getScore();
}
int main() {
int n;
cin >> n;
Student s[n]; // 学生类对象数组
for (int i = 0; i < n; i++) {
string id, name;
double score;
cin >> id >> name >> score;
s[i].setId(id);
s[i].setName(name);
s[i].setScore(score);
}
sort(s, s + n, cmp); // 排序
for (int i = 0; i < n; i++) {
s[i].print(); // 输出
}
return 0;
}
阅读全文