實驗報告 5---3

  1. #include <iostream>      
  2. using namespace std;    
  3.      
  4. class Student    
  5. {    
  6. public:    
  7.     Student(int n,float s):num(n),score(s){}//構造函數      
  8.     void display();    
  9.     int getNum(){return num;}//用公有的成員函數可以調用私有的數據成員的值    
  10.     float getScore(){return score;}    
  11. private:    
  12.     int num;    
  13.     float score;    
  14. };    
  15.      
  16. void Student::display()    
  17. {    
  18.     cout<<num<<" "<<score<<endl;    
  19. }    
  20.      
  21. int max(Student *arr);    
  22.      
  23. int main()    
  24. {    
  25.     Student stud[5]={    
  26.        Student(101,86.5),Student(102,83),Student(103,82),    
  27.        Student(104,71),Student(105,99)}; //前面已經進行定義了構造函數,所以在此可以進行初始化    
  28.        for(int i=0;i<5;i+=2)    
  29.        {    
  30.            cout<<"學生"<<i+1<<": ";    
  31.            stud[i].display();    
  32.        }    
  33.        cout<<"5個學生中成績最高者的學號爲: "<<max(stud)<<endl;//調用中,實際參數是數組名,傳遞給形式參數arr的是數組的首地址      
  34.        system("pause");    
  35.        return 0;    
  36. }    
  37.      
  38. int max(Student *arr)//arr在接受數組首地址之後,可以作爲一個數組訪問      
  39. {    
  40.     float max_score=arr[0].getScore();//默認第一個學生的成績最高      
  41.     int k=0;    
  42.     for(int i=1;i<5;i++)    
  43.        if(arr[i].getScore()>max_score)//arr[i].還可以寫作(*(arr+i)).--不能是*(arr+i).;或者用(arr+i)->,下面的語句類似      
  44.        {    
  45.            max_score=arr[i].getScore();//arr[i].還可以寫作(*(arr+i)).-      
  46.            k=i;    
  47.        }    
  48.        return arr[k].getNum();//或者是(*(arr+k)).getNum()      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章