您的代码从未设置
grade
到
任何东西您在等待时也有问题:
void setGrade(char c)
{
if(totalMarks <= 39)
c = 'E';
if(totalMarks >= 40 && totalMarks <= 49)
c = 'D';
if(totalMarks >= 50 && totalMarks <= 64)
c = 'C'
}
此函数永不更改
等级
,它所做的是填充
局部变量
使用基于totalMarks的值调用“C”,然后立即将其忘记。我想你想要的更多是这样的:
class Course {
private:
int totalMarks;
char grade;
public:
void marksInfo(int tm)
{
totalMarks = tm;
if(totalMarks <= 39)
grade = 'E';
else if(totalMarks >= 40 && totalMarks <= 49)
grade = 'D';
else if(totalMarks >= 50 && totalMarks <= 64)
grade = 'C';
else if(totalMarks >= 65 && totalMarks <= 84)
grade = 'B';
else
grade = 'A';
}
int getMarks(void)
{
return totalMarks;
}
char getGrade(void)
{
return grade;
}
};