第八周项目3—指向学生类的指针(2)

来源:互联网 发布:组策略禁止软件运行 编辑:程序博客网 时间:2024/05/21 10:15
/**Copyright(c) 2016.烟台大学计算机与控制工程学院*ALL rights  reserved.*文件名称:test.cpp*作者:杨驰*完成日期:2016年4月20*问题描述:设计一个学生类Student,数据成员包括学号(num)和成绩(score),成员函数根据需要自行设计。          将max函数定义为,返回最高成绩,而在main函数中将多位同学的学号输出。*/#include<iostream>#include<cmath>using namespace std;class Student{public:    Student(int n,double s):num(n),score(s) {}    void display();    int getNum()    {        return num;    }    double getScore()    {        return score;    }private:    int num;   //学号    double score;   //成绩};void Student::display(){    cout<<num<<" "<<score<<endl;}double 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,100)    };   for(int i=0;i<5;i+=2)   {     cout<<"学生"<<i+1<<":";     stud[i].display();   }   double max_score = max(stud); //调用函数求最高成绩    cout<<"5个学生中成绩最高者的学号为: ";    for(int i=0; i<5; i++)    {        if(abs(stud[i].getScore() - max_score)<1e-7)  //浮点数不能直接比较相等,只要相减小于一个很小的值,就认为相等            cout<<stud[i].getNum()<<"  ";    }    cout<<endl;    return 0;}//定义函数max,返回arr指向的对象数组中的最高成绩double max(Student *arr){    double max_score=arr[0].getScore();//通过公共的成员函数取出私立有的数据成员,用好此法    for(int i=1; i<5; i++)        if(arr[i].getScore()>max_score)        {            max_score=arr[i].getScore();        }    return max_score;}

运行结果:


1 0
原创粉丝点击