Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In Java, I\'m trying to take an input a double grade and output by calling the m

ID: 3857977 • Letter: I

Question

In Java, I'm trying to take an input a double grade and output by calling the method findLetterGrade . All input and output should be in the main. Here's what I have so far but I keep getting an error , after I input a number. Can you tell me what am I doing wrong?

Enter a grade between (0-100) or -1 to quit: 99
99.0The letter grade is for Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double
        at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
        at java.util.Formatter$FormatSpecifier.printInteger(Unknown Source)
        at java.util.Formatter$FormatSpecifier.print(Unknown Source)
        at java.util.Formatter.format(Unknown Source)
        at java.io.PrintStream.format(Unknown Source)
        at java.io.PrintStream.printf(Unknown Source)
        at LetterGrades.main(LetterGrades.java:29)


Code I have so far:

//Inez Wibowo
//inezwibowo@my.smccd.edu
//CIS 254ON
//LetterGrades.java
//Eleventh java file
//Lab 5 Chapter 6
//07-17-2017
/*validation*/


import java.util.Scanner;//program uses Scanner to read input

public class LetterGrades
{
   //main method begins program to execute  
   public static void main( String[] args )
   {
       double grade;
       String finalGrade;

       do
       {
           Scanner input = new Scanner(System.in);//set up input to read in value
           System.out.print("Enter a grade between (0-100) or -1 to quit: ");
          grade = (double)input.nextInt();
           System.out.print(grade);
           LetterGrades new1 = new LetterGrades();
           finalGrade = new1.findLetterGrade(grade);
           System.out.printf("%s%d%s%s%n","The letter grade is for ", grade, " is ", finalGrade);
       }while (grade != -1);//end loop
      
  
       System.out.printf("%n%nProgrammed by Inez Wibowo%n");
   }//end method
   public static String findLetterGrade(double grade)//begin method findLetterGrade
   {
      
       String outputGrade;

       switch((int)grade)
       {
       case 93://grade between 93
       case 100://and 100
           outputGrade = "A";
           break;
       case 90://grade between 90 - 92
           outputGrade = "A-";
           break;
       case 87:// grade between 87 - 89
           outputGrade = "B+";
           break;
       case 83:// grade between 83 -86
           outputGrade = "B";
           break;
       case 80://grade between 80-82
           outputGrade = "B-";
           break;
       case 77://grade between 77 - 79
           outputGrade = "C+";
           break;
       case 70://grade between 70 - 76
           outputGrade = "C";
           break;
       case 67://grade between 67-69
           outputGrade = "D+";
           break;
       case 63://grade between 63-66
           outputGrade = "D";
           break;
       case 60://grade between 60-62
           outputGrade = "D-";
           break;
       default://grade less than 60
           outputGrade = "F";
           break;
       }
       return outputGrade;
   }//end method findLetterGrade  
}//end class LetterGrades

Sample program run:

Enter a grade (0-100) or -1 to quit: 88.5
The letter grade is for 88.50 is B+

Enter a grade (0-100) or -1 to quit: 92.9
The letter grade is for 92.90 is A-

Enter a grade (0-100) or -1 to quit: 74
The letter grade is for 74.00 is C

Enter a grade (0-100) or -1 to quit: -1

Explanation / Answer

LetterGrades.java

import java.util.Scanner;//program uses Scanner to read input

public class LetterGrades

{

//main method begins program to execute

public static void main( String[] args )

{

double grade;

String finalGrade;

  

Scanner input = new Scanner(System.in);//set up input to read in value

System.out.print("Enter a grade between (0-100) or -1 to quit: ");

grade = input.nextDouble();

while(true)

{

if(grade!=-1)

{

System.out.print(grade);

finalGrade = findLetterGrade(grade);

System.out.printf("%s%.1f%s%s%n","The letter grade is for ", grade, " is ", finalGrade);

System.out.print("Enter a grade between (0-100) or -1 to quit: ");

grade = input.nextDouble();

continue;

}

else

break;

}

  

  

  

System.out.printf("%n%nProgrammed by Inez Wibowo%n");

}//end method

public static String findLetterGrade(double grade)//begin method findLetterGrade

{

  

String outputGrade;

  

if(grade>=92 && grade<=100)

outputGrade="A";

else if(grade>=90 && grade<=92)

outputGrade="A-";

else if(grade>=87 && grade<=89)

outputGrade = "B+";

else if(grade>=83 && grade<=86)

outputGrade = "B";

else if(grade>=80 && grade<=82)

outputGrade = "B-";

else if(grade>=77 && grade<=79)

outputGrade = "C+";

else if(grade>=70 && grade<=76)

outputGrade = "C";

else if(grade>=67 && grade<=69)

outputGrade = "D+";

else if(grade>=63 && grade<=66)

outputGrade = "D";

else if(grade>=60 && grade<=62)

outputGrade = "D-";

else

outputGrade = "F";

  

return outputGrade;

}//end method findLetterGrade

}//end class LetterGrades

_________________

Output:

Enter a grade between (0-100) or -1 to quit: 88.5
88.5The letter grade is for 88.5 is B+
Enter a grade between (0-100) or -1 to quit: 90
90.0The letter grade is for 90.0 is A-
Enter a grade between (0-100) or -1 to quit: 74
74.0The letter grade is for 74.0 is C
Enter a grade between (0-100) or -1 to quit: -1


Programmed by Inez Wibowo


_____________Could you rate me well.Plz .Thank You

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote