对这一章节的内容一头雾水

  1. 设计一个Grade类,判定学生某个考试的级别,全部操作在类Grade中实现(30分)。要求:

(1)在定义对象时指定学生姓名和分数。且姓名必须指定,分数可缺省,缺省值为0分。要求包含构造函数、复制构造函数、姓名用string类型来定义。
主函数中实例化6个学生对象的姓名和分数分别为:
 Sun l00
 Wu 90
 Jiang 52
 Zhou 0
 He 76
 Liu 88

(2) 编写一个私有成员函数getGrade(),判定学生成绩的等级(60分以下为E等,[60-70)分为D等,[70-80)为C等,[80-90)为B等,[90-100]分为A等)。

(3)编写一个常成员函数getInfo()输出结果,包含学生姓名、分数、等级。

(4)定义静态数据成员count,用于统计总的学生人数,并在主函数中输出。

(5)定义该类的友元函数compare(Grade &m,Grade &n),比较两个学生成绩的高低,输出成绩高的那个学生信息。

运行结果及代码如下,如有帮助,请帮忙采纳一下,谢谢。

img

代码:

#include <iostream>
#include <string>
using namespace std;

class Grade
{
public:
    string name;
    int score;
    static int count;
public:
    Grade(string n,int s=0){name = n;score = s;count++;}
    Grade(Grade& s){name = s.name;score = s.score;}

    void getInfo() const
    {
        cout << name << "  " << score << "  " << getGrade()<<endl;
    }

    friend bool compare(Grade &m,Grade &n){
        if (m.name.compare(n.name) == 0 && m.score == n.score)
        {
            return true;
        }
        return false;
    }

private:
    char getGrade() const
    {
        if(score>=90) return 'A';
        else if(score>=80 && score < 90) return 'B';
        else if(score>=70 && score < 80) return 'C';
        else if(score>=60 && score < 70) return 'D';
        else  return 'E';
    }
};

int Grade::count = 0;

int main()
{
    Grade a[6]={Grade("Sun",100),Grade("Wu",90),Grade("Jiang",52),Grade("Zhou",0),Grade("He",76),Grade("Liu",88)};
    for (int i = 0;i<6;i++)
    {
        a[i].getInfo();
    }
    cout << "学生总人数:" << Grade::count;
    return 0;
}