/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 学生
* 作 者: 李瑞
* 完成日期: 2012 年 3 月 22 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
【任务4】设计一个学生类,包括学号(num)和成绩(score)。建立一个对象数组,内放5个学生的数据。
要求:
(1) 用指针指向数组首元素,输出第1、3、5个学生的信息;
(2) 设计一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
* 程序输出:
* 程序头部的注释结束
*/
#include<iostream>
using namespace std;
class Student
{
public:
Student(int n, double s):num(n),score(s){}
void max(Student *);
void show_stu();
private:
int num;
double score;
};
int main()
{
Student stud[5] =
{
Student(1, 89),
Student(2, 94),
Student(3, 70),
Student(4, 93),
Student(5, 68)
};
//输出第1、3、5个学生的信息
for(int i = 0 ; i < 5 ; i +=2)
{
cout << "学生" << i+1 << ": ";
stud[i].show_stu();
}
stud[0].max(&stud[0]);
system("PAUSE");
return 0;
}
void Student::max(Student * p) //找出个学生中成绩最高者,并输出其学号
{
int n;
double max = 0;
for(int i = 0; i < 5; ++ i)
{
if(p[i].score >= max)
{
max = p[i].score;
n = i;
}
}
cout << "最高成绩为" << max << "分,学号是:" << p[n].num << endl;
}
void Student::show_stu()
{
cout << "学号:" << num << " " << "成绩:" << score << endl;
}
运行结果: