C++ 如何使用类的方法打印最高成绩的学生数据
//打印3个学生平均成绩以及最高成绩学生数据
/*以下程序只实现了打印3个学生平均成绩,我希望可以打印成绩最高的学生的一切数据,包括学号,姓名,三门成绩及平均成绩,可以在类里写函数实现吗?可以的话,这个函数要怎么写呢?求大神赐教哦~*/
#include"stdafx.h";
#include<iostream>
#include<cmath>
using namespace std;
class Student{
public:
        void input();
        void print();
        float get_average();
private:
        char num[8];
        char name[8];
        float score[3];
};

void Student::input()
{
        cout<<"请输入学号:";
        cin>>num;
        cout<<"请输入姓名:";
        cin>>name;
        cout<<"请输入三门课程的成绩:";
        for(int i=0;i<3;i++)
                cin>>score[i];
}
float Student::get_average()
{
        return (score[0]+score[1]+score[2])/3;
}
void Student::print()
{
        cout<<get_average();
}
int main(int argc, char* argv[])
{
        Student stu[3];
    for(int i=0;i<3;i++)
    {
                stu[i].input();
        }
        for( i=0;i<3;i++)
    {
                stu[i].print();
            cout<<" ";
        }
        system("pause");
        return 0;
}

5个回答

 根据你的思路,不应该写在类里,因为你的类表示单个学生,而求学生成绩最大值不属于任何一个学生,而是一个总的任务。
非要作为成员函数也不是不可以,但是很牵强
int getmax(Student stu[], int n)
{
int x = 0;
for (int i = 1; i < n; i++)
{
if (stu[i].get_average() > stu[x].get_average()) x = i;
}
return x;
}

你可以写一个函数,在函数里,枚举学生成绩数组,然后更新最大值。这样就可以知道哪位学生成绩最高啦

主程序调用
int n = getmax(stu, 3);
cout << stu[n].name <<" "<< stu[n].num << " " << stu[n].get_average();

给你一个思路吧:
在计算平均分的同时,比较出最高平均分,然后打印这个学生的成绩。

这个可以通过类实现,但是没必要,也不规范,如果硬要做,可以重载<操作符来判断平均成绩的大小,进而输出他的各项信息

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐