面向对象程序设计上机练习九(对象指针)
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
建立对象数组,内放5个学生数据(学号是字符串类型、成绩是整型),设立max函数,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号和成绩。
Input
输入5个学生数据。
Output
输出5个学生中成绩最高者的学号和成绩。
Example Input
01 89 02 78 03 56 04 92 05 76
Example Output
04 92
Author
# include <iostream>
# include <string.h>
using namespace std;
class Student
{
private:
string num;
int score;
public:
void setStudent()
{
cin >> num >> score;
}
string getnum() //类内的学号和成绩都是私有的 不能直接在外面调用
{ //通过一个与外部连接的函数,把类中私有的数据传出去
return num;
}
int getscore()
{
return score;
}
};
void findmax(Student * pt)
{
int maxscore = 0, temp;
for(int i = 0; i < 5; i++)
{
if(pt[i].getscore() > maxscore) //通过类传出的数据作比较,找出最大值并且更迭
{ //用strcpy直接拷贝学号字符串报错,只能通过记录序号输出
temp = i;
maxscore = pt[i].getscore();
}
}
cout << pt[temp].getnum() << " " << maxscore << endl;
}
int main()
{
Student a[5];
for(int i = 0; i < 5; i++)
{
a[i].setStudent();
}
findmax(a);
return 0;
}