第四周项目四——指向学生类的指针(1)

设计一个学生类Student,数据成员包括学号(num)和成绩(score),成员函数根据需要自行设计(建议配备需要的set、get函数,以及必要的输入或输出,给出的代码中也可以找到需要成员函数的线索)。在main函数中,要做到:

  • 建立一个对象数组,通过初始化,设置5个学生的数据,要求:
  • 用指针指向数组首元素,输出第1、3、5个学生的信息;
  • 设计一个函数int max(Student *arr);,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并返回值其学号。

参考解答:

/* All rights reserved.
 * 文件名称:test.cpp
 * 作者:陈丹妮
 * 完成日期:2015年 4 月 3 日
 * 版 本 号:v1.0
 */
#include <iostream>
using namespace std;
//max函数返回arr指向的对象数组中的最高成绩(max并不是成员函数,而是普通函数)
class Student
{
public:
    Student(int n,double s):num(n),score(s){}
    void display();
    int getNum()
    {
        return num;
    }
    double getScore()
    {
        return score;
    }
private:
    int num;   //学号
    double score;   //成绩
};
void Student::display()
{
    cout<<num<<" "<<score<<endl;
}
int max(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个学生的信息(用循环语句)
    for(int i=0;i<5;i+=2)
    {
        cout<<"学生"<<i+1<<":";
        stud[i].display();
    }
    //找出学生成绩最高的人,并输出成绩最高者的学号
    cout<<"5个学生中成绩最高者的学号为: "<<max(stud);//调用函数显示最高成绩
    return 0;
}

//定义函数max,返回arr指向的对象数组中的最高成绩,返回值为最高成绩者的学号
int max(Student *arr)
{
//求最高成绩及对应同学的学号
    double max_score=arr[0].getScore();
    int j;
    for(int i=1;i<5;i++)
        if(arr[i].getScore()>max_score)
    {
        max_score=arr[i].getScore();
        j=i;
    }
    return arr[j].getNum();
//返回最高成绩者的学号
}

学习心得:先理清楚顺序,在一小快的一小块的完成每一个步骤,就成了一个完整的程序了。

还是要把数组和指针在复习一遍!!继续加油咯!!

时间: 2024-10-17 12:47:05

第四周项目四——指向学生类的指针(1)的相关文章

第四周 项目四-指向学生类的的指针

/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: .cpp *作 者: 冷基栋 *完成日期:2014年3月29日 *版 本 号:v1.0 */ 问题 设计一个学生类Student,数据成员包括学号(num)和成绩(score),成员函数根据需要自行设计(建议配备需要的set.get函数,以及必要的输入或输出,给出的代码中也可以找到需要成员函数的线索).在main函数中,要做到: 建立一个对象数组,通过初始化,设置5

第四周项目4-指向学生类的指针

设计一个学生类Student,数据成员包括学号(num)和成绩(score),成员函数根据需要自行设计(建议配备需要的set.get函数,以及必要的输入或输出,给出的代码中也可以找到需要成员函数的线索).在main函数中,要做到: 建立一个对象数组,通过初始化,设置5个学生的数据,要求: 用指针指向数组首元素,输出第1.3.5个学生的信息: 设计一个函数int max(Student *arr);,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并返回值其学号 /* #inc

第8周项目3—指向学生类的指针

/* 02. *Copyright (c) 2016,烟台大学计算机学院 03. *All rights reserved. 04. *文件名称:cpp 05. *作    者:孙亚茹 06. *完成日期:2016年4月28日 07. *版 本 号:v1.0 09. *问题描述:用指针指向数组首元素,输出第1,3,5个学生的信息,用指向对象的指针做函数参数,在函数中返回成绩最高者学号. */ #include <iostream> using namespace std; class Stud

第八周项目(4)—指向学生类的指针

/* *copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:hellow.cpp *作者:田甜 *完成日期:2016年5月10日 *版本号:v1.0 * *问题描述:设计一个学生类Student,数据成员包括学号(num)和成绩(score),成员函数根据需要自行设计(建议配备需要的set.get函数,以及必要的输入或输出,给出的代码中也可以找到需要成员函数的线索).在main函数中,要做到: 建立一个对象数组,通过初始化,设置5个学

指向学生类的指针

输入代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:sum123.cpp *作 者:林海云 完成日期:2015年3月31日 *版 本 号:v2.0 * *问题描述:设计一个学生类Student,数据成员包括学号(num)和成绩(score),成员函数根据需要自行设计(建议配备需要的set.get函数,以及必要的输入或输出,给出的代码中也可以找到需要成员函数的线索).在main函数中,要做到: ?建立一个对象

第四周项目1-三角形类的构造函数

设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化,可以由下面的类声明开始,需要自己实现相关的成员函数,以及增加要求的构造函数. class Triangle { public: double perimeter();//计算三角形的周长 double area();//计算并返回三角形的面积 void showMessage(); private: double a,b,c; //三边为私有成员数据 }; void Triangle::showMessage() { cout<<&

第八周第三项目——类的指针

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称 : *作 者 : 田志伟 *完成日期 : 2016年5月10号 *版 本 号 : v1.0 * *问题描述 : 指向学生类的指针 *输入描述 : *程序输出 : 学生的学号与成绩与最高成绩的学生的学号 */ #include <iostream> using namespace std; struct Student { //private: int num; double

第十三周项目3:立体类族共有的抽象类

问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:project.cpp *作 者:陈文青 *完成日期:2015年6月6日 *版 本 号:v1.0 * *问题描述:设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数. 设计派生类CCube.CBall.CCylinder,分别表示正方体.球体及圆柱体. 在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类

第十三周项目三:立体类族共有的抽象类

问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: 立体类族共有的抽象类 .cpp *作 者:白云飞 *完成日期:2015年5月29日 *版 本 号:v1.0 * *问题描述:设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数.设计派生类CBall.CCube.CCylinder,分别表示球体.正方体及圆柱体.在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是