第八周项目三 指向学生类的指针(改进:如果有两个人最高分,返回两个)
2016-04-17 17:09
387 查看
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:舒文超 * 完成日期:2016年4月17日 * 版本号:vc++6.0 * * 问题描述: 设计一个学生类Student,数据成员包括学号(num)和成绩(score),成员函数 根据需要自行设计。在main函数中,要做到: 1)建立一个对象数组,通过初始化,设置五个学生的数据 2)用指针指向数组首元素,输出第1,3,5个学生的数据 3)设计一个函数double max(Student *arr),用指向对象的指针作函数参数,在max函 数中找出5个学生中成绩最高的,并返回其学号。 */ #include<iostream> #include <cmath> using namespace std; class Student { public: Student(int n,double s):num(n),score(s){}; //构造函数,对数据成员进行初始化 double putscore() { return score; } int putnum() { return num; } void output(); //输出学生信息 private: int num; //学号 double score; //成绩 }; void Student::output() { cout<<"学号:"<<num<<" "<<"成绩:"<<score<<endl; } //max函数返回arr指向的对象数组中的最高成绩者的学号(max并不是成员函数,而是普通函数) double max_Score(Student *arr); //int max_Num(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=0; while(i<=4) { stud[i].output(); i+=2; } //输出成绩最高者的学号 double max_score; max_score = max_Score(stud); //调用函数求最高成绩 cout<<"5个学生中成绩最高者的学号为: "; for(i=0; i<5; i++) if(stud[i].putscore()==max_score) cout<<stud[i].putnum()<<" "; cout<<endl; cout<<"最高成绩为:"<<max_score; return 0; } double max_Score(Student *arr) { double maxscore=arr[0].putscore();//通过公共的成员函数取出私立有的数据成员,用好此法 for(int i=1; i<5; i++) if(arr[i].putscore()>maxscore) maxscore=arr[i].putscore(); return maxscore; }
相关文章推荐
- java之键盘输入
- 倒计时相关函数 php
- 页表机制
- bzoj 1031: [JSOI2007]字符加密Cipher
- ACE 环境配置
- ATM机
- 异常 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
- 【汇编】进制转换程序
- 学习进度条7
- RunTime机制详解(一)
- 单一职责原则(SRP:Single responsibility principle)
- Python运算符
- opengl之vsh、fsh简易介绍+cocos2dx 3.0 shader 变灰
- Bitmap创建图片副本
- 在导入eclipse项目到Android Studio出现这样的错误, 非法字符: ‘\ufeff‘ 解决方案|错误: 需要class, interface或enum
- mysql监控
- 进程调度与进程切换的过程分析
- Caffe+Ubuntu14.04+CUDA7.5安装笔记
- PHP文件操作
- Android中的六大布局