关闭

实验报告 5---3

189人阅读 评论(0) 收藏 举报
  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()      
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18023次
    • 积分:588
    • 等级:
    • 排名:千里之外
    • 原创:40篇
    • 转载:0篇
    • 译文:4篇
    • 评论:8条
    文章分类
    最新评论