【C++OJ_静态与友元】最高成绩(静态成员)
题目描述
学生类定义如下:
class Student {
private:
int id;//学号
int score; //成绩
static int maxscore;//最高分数
static int maxid;//最高分数学生学号
public:
Student(int ti=0,int ts=0)
:id(ti), score(ts)
{}
static void findMax(Student & st); //寻找最高成绩和学号
static int getMaxScore(); //返回最高成绩
static int getMaxID();//返回最高成绩的学号
};
输入一组学生学号和成绩,用上述静态成员求最高成绩和对应学号
输入
第一行输入n表示有n个学生
接着输入n行,每行包括两个数据,表示学号和成绩
输出
调用静态成员函数输出学号和最高成绩,格式看样例
输入样例
3
1002 68
1023 54
1045 32
输出样例
1002–68
参考代码
#include <iostream>
using namespace std;
class Student
{
private:
int id; //学号
int score; //成绩
static int maxscore; //最高分数
static int maxid; //最高分数学生学号
public:
Student(int ti = 0, int ts = 0) : id(ti), score(ts)
{
}
static void findMax(Student &st); //寻找最高成绩和学号
static int getMaxScore(); //返回最高成绩
static int getMaxID(); //返回最高成绩的学号
};
int Student::maxscore = 0;
int Student::maxid = 0;
void Student::findMax(Student &st)
{
if (st.score > Student::maxscore)
{
Student::maxscore = st.score;
Student::maxid = st.id;
}
}
int Student::getMaxScore()
{
return Student::maxscore;
}
int Student::getMaxID()
{
return Student::maxid;
}
int main()
{
int t;
cin >> t;
while (t--)
{
int id;
int sc;
cin >> id >> sc;
Student s(id, sc);
Student::findMax(s);
}
cout << Student::getMaxID() << "--" << Student::getMaxScore() << endl;
return 0;
}