指向学生类的指针

输入代码:

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

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

*程序输入:无
*程序输出: 输出第1、3、5个学生的信息,成绩最高学生学号
*/
#include <iostream>
using namespace std;
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;   //成绩
};
int max(Student *arr);
void Student::display()
{
    cout<<"学号为:"<<num<<"的同学成绩为:"<<score<<endl;
}
int max(Student *arr)
{
    double Max;
    int i,k;
    Max=arr[0].getScore();
    for(i=0; i<5; i++)
    {
        if(Max>arr[i].getScore())
        {
            Max=arr[i].getScore();
            k=i;
        }
    }
    return arr[k].getNum();
}
int main()
{
    int i;
    Student stud[5]=
    {
        Student(101,78.5),Student(102,85.5),Student(103,100),
        Student(104,98.5),Student(105,95.5)
    };
    for(i=0; i<5; i+=2)
    {
        cout<<"学生"<<i+1<<": ";
        stud[i].display();

    }
    cout<<"5个学生中成绩最高者的学号为:"<<max(stud)<<endl;
    return 0;
}

运行结果:

时间: 2024-10-10 18:16:42

指向学生类的指针的相关文章

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

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

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

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

第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

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

/* *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

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

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

[C++ primer]类成员指针

1.声明成员指针 有时我们希望直接获取成员的指针,然后从一个对象或别的对象获得该成员,这时就需要用到成员指针.成员指针,包含类的类型以及成员的类型. 成员指针只针对类的非static成员.static类成员不是任何对象的组成部分,所以不需要特殊语法来指向static成员,static成员指针是普通指针. 注:它指向的是一个类的特定成员,而不是指向一个特定对象里的特定成员. 成员指针的定义格式:成员类型 类名::*指针名=&类名::成员名; 成员函数指针的定义格式: 成员函数返回类型 类名::*指

为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?为什么在类体内可以定义将静态成员声明为其所属类的类型呢 ?

static的成员变量,不是存储在Bar实例之中的,因而不会有递归定义的问题. 类声明: class Screen: //Screen类的声明 1 类定义: class Screen{ //Screen类的定义 //etc... }; 1 2 3 当用实例化一个类的对象时,编译器会根据类的定义来分配相应的存储空间.也就是说,在创建对象前,一定要有完整的类定义,这样编译器才能正确的计算所需空间. 那么我们来看如下代码: class Screen{ Screen sc; //error, 'sc'

为什么基类指针和引用可以指向派生类对象,但是反过来不行?

为什么基类指针和引用可以指向派生类对象,但是反过来不行? 基类指针和引用 BaseClass *pbase = NULL; DerivedClass dclass; pbase = & dclass; 基类指针和引用可以指向派生类对象,但是无法使用不存在于基类只存在于派生类的元素.(所以我们需要虚函数和纯虚函数) 原因是这样的: 在内存中,一个基类类型的指针是覆盖N个单位长度的内存空间. 当其指向派生类的时候,由于派生类元素在内存中堆放是:前N个是基类的元素,N之后的是派生类的元素. 于是基类的