C++走向远洋——39(指向学生类的指针)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:zhizhen.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年4月23日 * 版本号:V1.0 * 问题描述:指向学生类的指针 * 程序输入:无 * 程序输出:见运行结果 */ #include<iostream> 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; //成绩 }; //max函数返回arr指向的对象数组中的最高成绩(max并不是成员函数,而是普通函数) void Student::display() { cout<<num<<" "<<score<<endl; } 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) { cout<<"学生"<<i+1<<": "; stud[i].display(); } //输出成绩最高者的学号 cout<<"5个学生中成绩最高的学号为: "<<max(stud);//调用函数显示最高成绩 return 0; } //定义函数max,返回arr指向的对象数组中的最高成绩,返回值为最高成绩者的学号 int max(Student *arr) { double max_score=arr[0].getScore();//通过公共的成员函数取出私立有的数据成员,用好此法 int k=0; for(int i=1; i<5; i++) if(arr[i].getScore()>max_score) { max_score=arr[i].getScore(); k=i; } return arr[k].getNum(); }
运行结果:
心得:
真累