/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:class Student
* 作 者: 姜雅明
* 完成日期: 2012 年 03 月 20 日
* 版 本 号: 1.0
* 对任务及求解方法的描述部分
* 输入描述: 学生的学号,成绩
* 问题描述: 求最大的成绩
* 程序输出: 成绩最高的学生的学号
* 程序头部的注释结束
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:class Student
* 作 者: 姜雅明
* 完成日期: 2012 年 03 月 20 日
* 版 本 号: 1.0
* 对任务及求解方法的描述部分
* 输入描述: 学生的学号,成绩
* 问题描述: 求最大的成绩
* 程序输出: 成绩最高的学生的学号
* 程序头部的注释结束
*/
#include <iostream>
using namespace std;
class Student
{
public:
Student (int n, float s): num(n), score(s){};
void output();
int getnum(){return num;};
float getscore(){return score;};
private:
int num;
float score;
};
int max(Student *p);
void main()
{
Student stu[6] = {
Student(1001, 86.5),
Student(1002, 89.5),
Student(1003, 100),
Student(1004, 92),
Student(1005, 83.5),
Student(1006, 97)};
for(int i = 0; i < 5; i = i + 2)
{
cout << "第" << i + 1 << "位学生:"; stu[i].output();
cout << endl;
}
cout << "成绩最高者为:" << max(stu) << endl << endl;
system("PAUSE");
}
void Student:: output()
{
cout << num << " " << score << endl;
}
int max(Student *p)
{
float maxscore = p[0].getscore();
int k;
for (int i = 1; i < 6; ++i)
{
if ( p[i].getscore() > maxscore)
{
maxscore = p[i].getscore();
k = i;
}
}
return p[k].getnum();
}
当初是这样定义的 Student stu[6]{stu[0](),stu[1](),···}编译时说不能接受两个变量·····把我纠结的·····后来发现定义错了·····
在用指针时也是好郁闷···不知道要怎么用···
int max()中像直接返回 p[i].getnum() 但是发现不行····