指向学生类的指针

来源:互联网 发布:中国工业经济数据库 编辑:程序博客网 时间:2024/04/29 10:01
/**Corpyright (c)2013,烟台大学计算机学院*All right reseved.*作者:张梦佳*完成日期:2014年3月30日*版本号:v1.0*输入描述:*问题描述:类的指针!*程序输出:*问题分析:*算法设计:*/#include <iostream>#include <cmath>#include <cstring>using namespace std;class Student{public:    Student(int x,double y)    {        num=x;        score=y;    }    void output();    double score1();    int numm();private:    int num;   //学号    double score;   //成绩};double Student::score1(){    return score;}int Student::numm(){    return num;} void Student::output() {     cout<<"学号是:"<<"\t"<<num<<"\t"<<"成绩是:"<<"\t"<<score<<endl; }//max函数返回arr指向的对象数组中的最高成绩(max并不是成员函数,而是普通函数)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)};    //输出第1、3、5个学生的信息(用循环语句)    for(int i=0;i<5;i+=2)    {        stud[i].output();    }    //输出成绩最高者的学号    cout<<"5个学生中成绩最高者的学号为: "<<max(stud);//调用函数显示最高成绩    return 0;}//定义函数max,返回arr指向的对象数组中的最高成绩int max(Student *arr){    double num1=0,num2;    for(int i=0;i<5;i++)    {        if((*(arr+i)).score1()>num1)        {            num1=(*(arr+i)).score1();            num2=(*(arr+i)).numm();        }    }    return num2;     //求及最高成绩    //返回最高成绩者的学号(老师注:我在这一行开头加入的空格是全角空格,会出现错误,注意这个陷阱带来的不便,也见识一下这个bug的症状)}


感悟

指针很方便,但是也很容易乱套,

但是咱有兄弟,不怕

0 0