This is a two part code with a tester class. For some reason I can't figure out how to convert this string variable to code correctly involved in the equation gradeNum = grad - .3 and gradeNum = grade + 0.3. Any ideas?
/** This is my class Grade */
public class Grade
{
private String grade;
private double gradeNum;
// Constructor
public Grade(String showGrade)
{
grade = showGrade;
gradeNum = 0;
}
// getNumericGrade method to return grade number
public double getNumericGrade()
{
if (grade.equalsIgnoreCase("A") || grade.equalsIgnoreCase("A+"))
{
gradeNum = 4.0;
}
else if (grade.equalsIgnoreCase("A-"))
{
gradeNum = 3.7;
}
if (grade.equalsIgnoreCase("B"))
{
gradeNum = 3.0;
}
else if (grade.equalsIgnoreCase("B+"))
{
gradeNum = 3.3;
}
else if (grade.equalsIgnoreCase("B-"))
{
gradeNum = 2.7;
}
if (grade.equalsIgnoreCase("C"))
{
gradeNum = 2.0;
}
else if (grade.equalsIgnoreCase("C+"))
{
gradeNum = 2.3;
}
else if (grade.equalsIgnoreCase("C-"))
{
gradeNum = 1.7;
}
if (grade.equalsIgnoreCase("D"))
{
gradeNum = 1.0;
}
else if (grade.equalsIgnoreCase("D+"))
{
gradeNum = 1.3;
}
else if (grade.equalsIgnoreCase("D-"))
{
gradeNum = .7;
}
if (grade.equalsIgnoreCase("F"))
{
gradeNum = 0.0;
}
return gradeNum;
System.out.println("Invalid letter grade");
return -1.0;
}
}
/** This is my class tester
*/
import java. util .Scanner;
/**
This program tests the numeric grade with a given letter grade.
*/
public class GradeTester
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("Enter a letter grade: ");
String showGrade = in.nextLine();
Grade gg = new Grade(showGrade);
System.out.print("Numeric Value: ");
System.out.println(gg.getNumericGrade());
in.close();
}
}
equalsIgnoreCasecompares an entire string. If the input is"B+", there will not be any place in your code that setsgradeNumto 3.0. You will want to use one or more of these methods in theStringclass:length(),charAt(),substring().getNumericGrade, because they will helpgetNumericGradereturn the correct result.