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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.