/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.* 文件名称:学生
* 作 者: 郭岩岩
* 完成日期:2012 年3 月 20日
* 版 本 号: vc.1
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出: *
程序头部的注释结束
*/
#include<iostream>
using namespace std;
class student
{
private:
long num;
double score;
public:
student(long n,double s);
void get_student();
int max(student *arr);
double get_score(){return score;}
long get_num(){return num;}
int max_score();
};
student::student(long n,double s)
{
num=n;
score=s;
}
void student::get_student ()
{
cout<<"学号为:"<<num<<"的学生分数为:"<<score<<endl;
}
int max(student *arr)
{
float max_score=arr[0].get_score();
int k=0;
for(int i=1;i<5;i++)
if(arr[i].get_score()>max_score)
{
max_score=arr[i].get_score();
k=i;
}
return arr[k].get_num();
}
int max_score(student *arr)
{
float max_score=arr[0].get_score();
int k=0;
for(int i=1;i<5;i++)
if(arr[i].get_score()>max_score)
{
max_score=arr[i].get_score();
k=i;
}
return arr[k].get_score();
}
int main()
{
student s[5]={
student(1001,87),
student(1002,76),
student(1003,72),
student(1004,90),
student(1005,68)
};
student *p1=&s[0];
p1->get_student();
void (student::*p2)();
p2=&student::get_student;
(s[2].*p2)();
(s[4].*p2)();
cout<<"5个学生中成绩最高者的学号为: "<<max(s)<<"成绩为:"<<max_score(s)<<endl;
return 0;
}
上机感言:对指针的用法好像忘了,max函数看了下老师的