问题描述:
声明一个Teacher类,建立一个对象数组存放五名教师的信息(教工号、姓名、年龄、职称),定义一个函数max_age。用指向对象的指针做函数参数,在函数中找出五名教师中年龄最大者,并输出其教工号、姓名。
#include <iostream>
using namespace std;
#include <string.h>
class Teacher{
public:
Teacher(int n,string m,float s,string t){
num = n;
name = m;
age = s;
zhicheng = t;
}
void display();
void max_age(Teacher *arr);
private:
int num;
float age;
string name;
string zhicheng;
};
void Teacher:: display(){
cout << num << "\t" << name <<endl;
}
void Teacher :: max_age(Teacher *arr){
float max_age = arr[0].age;
int k = 0;
for(int i = 1; i < 5; i++){
if(arr[i].age > max_age){
max_age = arr[i].age ;
k = i;
}
}
cout << "年龄最大者的工号和姓名是:" << endl;
cout << "教工号" << "\t" << "姓名" << endl;
cout << arr[k].num << "\t" << arr[k].name <<endl;
}
int main(){
Teacher teac[5] = {Teacher( 1,"张三",45,"教授"),Teacher(2,"李四",27,"讲师"),
Teacher(3,"王五",30,"副教授"), Teacher(4,"王梅",35,"教授"),Teacher(5,"李华",25,"讲师")};
Teacher *p;
p = &teac[0];
p->max_age(p);
}
运行结果截图: