Grading system in C++

c++, if-statement, switch-statement

Solution

If the input is `A+` or `B-`, then it is not a character anymore. So, get it using a string of chars, and check the values.

char a[3];
float m,n;
cin>>a;
if(a[1]=='+')
   m=0.3;
else if (a[1]=='-')
   m=-0.3;
else
    m=0;
switch(a[0])
{
  //Assign the value of n as 4,3,2,1 depending upon the grade.
}
cout<<n+m;

will print the grade

Problem

So this is my C++ question : Write a program that translates a letter grade into a number grade. Letter grades are A, B, C, D and F, possibly followed by + or -. Their numeric values are 4, 3, 2, 1 and 0. There is no F+ or F-. A + increases the numeric value by 0.3, a – decreases it by 0.3. However, an A+ has value 4.0. Enter a letter grade: B The numeric value is 2.7 And here is my code : ``` int main () { char grade; int value; cout << "Enter letter grade : " ; cin >> grade; switch(grade) { case 'A' : value = 4; break; case 'B' : value = 3; break; case 'C' : value = 2; break; case 'D' : value = 1; break; case 'E' : value = 0; break; default : cout << "Wrong input " << endl; break; } cout << value; system("PAUSE"); return 0; } ``` It able to print out 4 for A, 3 for B and so on. But however, the question required us to make the calculation for the + and - also. Am I supposed to use if else statement after the switch?

Original source