//【C++继承多态】年级类
#include<iostream>
#include<string>
using namespace std;
int N;
class student
{
public:
void set(string name, int age, int score)
{
Name = name; Age = age; Score = score;
}
void display()
{
cout << Name << ' ' << Age << ' ' << Score << endl;
}
int get_grades()
{
return Score;
}
private:
string Name;
int Age;
int Score;
};
class grade
{
public:
grade();
void display();
void sort();
protected:
student *stu;
};
grade::grade()
{
cin >> N;
stu = new student[N];
int i; string name; int a, s;
for (i = 0; i<N; i++)
{
cin >> name >> a >> s;
stu[i].set(name, a, s);
}
}
void grade::display()
{
int i;
for (i = 0; i<N; i++)
{
stu[i].display();
}
}
void grade::sort()
{
int i, j;
for (i = 0; i<N - 1; i++)
for (j = 0; j<N - i - 1; j++)
if (stu[j].get_grades()>stu[j + 1].get_grades())
{
student temp;
temp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = temp;
}
}
int main()
{
grade g;
g.display();
g.sort();
g.display();
return 0;
}