是小狐狸啊 2016-05-23 15:32 采纳率: 63.6%
浏览 1492
已采纳

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条回答 默认 最新

  • threenewbee 2016-05-23 15:42
    关注
     根据你的思路,不应该写在类里,因为你的类表示单个学生,而求学生成绩最大值不属于任何一个学生,而是一个总的任务。
    非要作为成员函数也不是不可以,但是很牵强
    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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊