【题目】设计一个学生类,包括学号(num)和成绩(score)。建立一个对象数组,内放5个学生的数据,要求:
(1)用指针指向数组首元素,输出第1、3、5个学生的信息;
(2)设计一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
- #include <iostream>
- using namespace std;
- class Student
- {
- public:
- Student(int n,float s):num(n),score(s){}//构造函数
- void display();
- int getNum(){return num;}
- float getScore(){return score;}
- private:
- int num;
- float score;
- };
- void Student::display()
- {
- cout<<num<<" "<<score<<endl;
- }
- int max(Student *arr);
- int main()
- {
- Student stud[5]={
- Student(101,78.5),Student(102,85.5),Student(103,100),
- Student(104,98.5),Student(105,95.5)};
- for(int i=0;i<5;i+=2)
- {
- cout<<"学生"<<i+1<<": ";
- stud[i].display();
- }
- cout<<"5个学生中成绩最高者的学号为: "<<max(stud);
- system("pause");
- return 0;
- }
- int max(Student *arr)
- {
- float max_score=arr[0].getScore();
- int k=0;
- for(int i=1;i<5;i++)
- if(arr[i].getScore()>max_score)
- {
- max_score=arr[i].getScore();
- k=i;
- }
- return arr[k].getNum();
- }