第八周上机实践项目-项目三-指向学生类的指针

来源:互联网 发布:linux lo网卡 编辑:程序博客网 时间:2024/05/20 10:14
/*  *Copyright (c)2016,烟台大学计算机与控制工程学院  *All rights reserved.  *文件名称:main.cpp  *作    者:刘涛  *完成日期:2016年4月19号  *版 本 号:v1.0  *  *问题描述:指向学生类的指针  */  #include <iostream>using namespace std;class Student{public:    Student(int n,double s):num(n),score(s){}    int getNum()    {        return num;    }    double getScore()    {        return score;    }private:    int num;    double score;};//max函数返回arr指向的对象数组中最高成绩者的学号(max不是成员函数,而是普通函数) int max_score(Student *arr); int max_num(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 个同学的信息(用循环语句)     int i;     for(i=0;i<5;i=i+2)     {         stud[i].getNum();         stud[i].getScore();     }     //输出沉积最高者的学号     cout<<"5个学生中成绩最高者的学号为:"<<max_num(stud)<<endl;     cout<<"5个学生中成绩最高者的成绩为:"<<max_score(stud);     return 0; } int max_score(Student *arr) {     double maxscore=arr[0].getScore();     int i,k;     for(i=0;i<5;i++)        if(arr[i].getScore()>maxscore)     {         maxscore=arr[i].getScore();         k=i;     }     return arr[k].getScore(); } int max_num(Student *arr) {     double maxscore=arr[0].getScore();     int i,k;     for(i=0;i<5;i++)        if(arr[i].getScore()>maxscore)     {         maxscore=arr[i].getScore();         k=i;     }     return arr[k].getNum(); }


运行结果:

知识点总结:指针充当函数参数。以及指针和结构体的混合运算

学习心得:在需要调用结构体的私有数据成员的时候,需要在函数体内定义个成员函数来调用。不能直接用结构体的数据成员。

0 0