指向学生类的指针


  1. *Copyright(c)2016,烟台大学计算机与控制工程学院  
  2. *All rights reserved  
  3. *文件名称:123.cpp  
  4. *作 者:隋宗涛  
  5. *完成日期:2016年5月10日  
  6. *版 本 号:v1.0  
  7.  
  8. *问题描述:设计一个学生类Student,数据成员包括学号(num)和成绩(score),成员函数根据需要自行设计。  
  9. *输入描述:无。  
  10. *程序输出:无。 
  11. */  
  12. #include <iostream>  
  13. #include <cmath>  
  14. using namespace std;  
  15. class Student  
  16. {  
  17. public:  
  18.     Student(int n,double g):num(n),score(g) {}  
  19.     void play();  
  20.     int getNum()  
  21.     {  
  22.         return num;  
  23.     }  
  24.     double getScore()  
  25.     {  
  26.         return score;  
  27.     }  
  28. private:  
  29.     int num;   //学号  
  30.     double score;   //成绩  
  31. };  
  32. void Student::play()  
  33. {  
  34.     cout<<num<<" "<<score<<endl;  
  35. }  
  36. double max(Student *arr);  
  37. int main()  
  38. {  
  39.     Student stu[5]=  
  40.     {  
  41.         Student(101,78.5),Student(102,85.5),Student(103,100),  
  42.         Student(104,98.5),Student(105,100)  
  43.     };  
  44.     for(int i=0; i<5; i+=2)  
  45.     {  
  46.         cout<<"学生"<<i+1<<": ";  
  47.         stu[i].play();  
  48.     }  
  49.     double max_score = max(stu);   //调用函数来求最高的成绩  
  50.     cout<<"5个学生中成绩最高者的学号为: ";  
  51.     for(int i=0; i<5; i++)  
  52.     {  
  53.         if(abs(stu[i].getScore() - max_score)<1e-7)   //浮点数不能直接比较相等,只要相减小于一个很小的值,就可以认为相等  
  54.             cout<<stu[i].getNum()<<"  ";  
  55.     }  
  56.     cout<<endl;  
  57.     return 0;  
  58. }  
  59. //定义函数max,返回arr指向的对象数组中的最高成绩  
  60. double max(Student *arr)  
  61. {  
  62.     double max_score=arr[0].getScore();  //通过公共的成员函数取出私立的数据成员  
  63.     for(int i=1; i<5; i++)  
  64.         if(arr[i].getScore()>max_score)  
  65.         {  
  66.             max_score=arr[i].getScore();  
  67.         }  
  68.     return max_score;  
  69. }  

你可能感兴趣的:(指向学生类的指针)