第四周上机实践项目四——指向学生类的指针
第四周上机实践项目4——指向学生类的指针
运行结果:
问题及代码
/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:辛彬 * 完成日期:2015 年 3 月 29 日 * 版 本 号:v1.0 * * 问题描述:设计一个学生类Student。 * 输入描述:没有。 * 程序输出:成绩和学号。 */ #include<iostream> #include<cmath> using namespace std; class Student { public: Student(int n,double s):num(n),score(s) {} void output(); int getscore(); int getnum(); private: int num; //学号 double score; //成绩 }; void Student::output() { cout<<"学号:"<<num<<" "<<"成绩:"<<score; } int Student::getscore() { int s; s=score; return s; } int Student::getnum() { int n; n=num; return n; } //max函数返回arr指向的对象数组中的最高成绩(max并不是成员函数,而是普通函数) 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个学生的信息(用循环语句) int i; Student *p; p=stud; for(i=0; i<5; i+=2) { cout<<"第"<<i+1<<"位学生的信息,"; (p+i)->output(); cout<<endl; } //输出成绩最高者的学号 cout<<"5个学生中成绩最高者的学号为: "<<max(stud);//调用函数显示最高成绩 return 0; } //定义函数max,返回arr指向的对象数组中的最高成绩,返回值为最高成绩者的学号 int max(Student *arr) { //求最高成绩及对应同学的学号 int i,imax=arr->getscore(),s,inum; for(i=0; i<4; i++) { if((arr+i)->getscore()>imax) { imax=(arr+i)->getscore(); s=i; } } inum=(arr+s)->getnum(); //返回最高成绩者的学号 return inum; }
运行结果: