функция — почему mycourses [i] .getGrade () ничего не возвращает (C ++)?

У меня проблема с функцией getGrade () в заголовочном файле, которая не возвращает буквенную оценку, основанную на отметках, введенных пользователем в основной файл. Когда я компилирую и запускаю, программа не отображает буквенную оценку согласно введенным меткам.

Заголовочный файл (course.h)

#include <iostream>
#include <string>

using namespace std;

class Course {
private:
int totalMarks;
char grade;public:
void marksInfo(int tm)
{
totalMarks = tm;
}

int getMarks(void)
{
return totalMarks;
}

void setGrade(char c)
{
if(totalMarks <= 39)
c = 'E';

if(totalMarks >= 40 && totalMarks <= 49)
c = 'D';

if(totalMarks >= 50 && totalMarks <= 64)
c = 'C'
}

char getGrade(void)
{
return grade;
}
};

Основной файл

 #include <iostream>
#include <string>
#include "course.h"
using namespace std;

int main()
{
int tm;

Course course[5];

for (int i = 0; i < 5; i++)
{
cout << "Subject #" << i+1 << endl;

cout << "Total Marks #" << i+1 << ": ";
cin >> tm;

course[i].marksInfo(tm);

cout << endl;

course[i].getGrade();
}

cout << "Grade: " << course[0].getGrade();
}

-1

Решение

Ваш код никогда не устанавливается grade в что-нибудь. У вас также есть проблема в ожидании:

void setGrade(char c)
{
if(totalMarks <= 39)
c = 'E';

if(totalMarks >= 40 && totalMarks <= 49)
c = 'D';

if(totalMarks >= 50 && totalMarks <= 64)
c = 'C'
}

эта функция никогда не меняется grade, что он делает, это заселяет локальная переменная называется ‘C’ со значением, основанным на totalMarks, а затем сразу же забывает его. Я думаю, что вы хотели, было что-то вроде этого:

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;
}
};
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector