(程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 学生类数组
* 作 者: 冯珍珍
* 完成日期: 2012年3月25日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:设计一个学生类,包括学号(num)和成绩(score)。建立一个对象数组,内放5个学生的数据,要求:
(1)用指针指向数组首元素,输出第1、3、5个学生的信息;
(2)设计一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号
* 程序输出:
* 程序头部的注释结束*/
#include<iostream>
using namespace std;
class student //定义一个学生类
{
private:
long num;
double score;
public:
student(long n,double s):num(n),score(s){}; //声明一个带参的构造函数
void display(); //输入学生分数函数
int max(student *arr); // 最高分的学生学号
int max_score(); //最高分
double get_score(){return score;} //输出分数
long get_num(){return num;} //输出学号
};
void student::display () //定义输出学生信息函数
{
cout<<"学号为:"<<num<<"的学生分数为:"<<score<<endl;
}
int max(student *arr) // 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 stud[5]={ //定义student类的数组变量并初始化
student(1001,87),
student(1002,92),
student(1003,88),
student(1004,90),
student(1005,98)
};
//输出第1、3、5个学生的信息
for(int i=0;i<5;i+=2)
{
cout<<"学生"<<i+1<<": ";
stud.display();
}
//找出个学生中成绩最高者,并输出其学号
cout<<"5个学生中成绩最高者的学号为: "<<max(stud);//调用中,实际参数是数组名,传递给形式参数arr的是数组的首地址
system("pause");
return 0;
}
第五周任务四(学生类数组并应用指针)
最新推荐文章于 2021-03-19 15:06:30 发布