代码源
#include<iostream>
#include<string>
using namespace std;
class Stu
{
public:
Stu(int _score=0,int _num=0):score(_score),num(_num){ranking=1;}
void setStu();
void display1();
//protected:
int score;
int num;
int ranking;
};
void Stu::setStu()
{
cout<<"请输入学生学号和成绩:";
cin>>num>>score;
}
void Stu::display1()
{
cout<<"\tnumber:"<<num<<"\t\tscore:"<<score<<"\t\tranking:"<<ranking<<endl;
}
class School:protected Stu
{
public:
void get_stu(Stu &p);
void display();
void Ranking(Stu p[],int n);
void display2(Stu *p,int n);
protected:
int i;
//Stu stu[10];
};
void School::get_stu(Stu &p)
{
p.setStu();
}
void School::Ranking(Stu *p,int n)
{
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(p[i].score>p[j].score)
p[j].ranking++;
else
if(p[i].score==p[j].score)
{
// p[i].ranking++;
// p[j].ranking++;
continue;
}
else
p[i].ranking++;
}
}
}
void School::display2(Stu *p,int n)
{
int i;
for(i=0;i<n;i++)
p[i].display1();
}
int main()
{
School ECJTU;
Stu stu[5];
int i;
for(i=0;i<5;i++)
{
ECJTU.get_stu(stu[i]);
}
ECJTU.Ranking(stu,5);
ECJTU.display2(stu,5);
return 0;
}
运行结果: