143k views
0 votes
Test Average and Grade

Write a program that asks the user to enter five test scores. The program should display a
letter grade for each score and the average test score. Write the following methods in the
program:
calcAverage:
This method should accept five test scores as arguments and return the
average of the scores.
determineGrade:
This method should accept a test score as an argument and return a
letter grade for the score, based on the following grading scale:
Score Letter Grade
90-100 A
80-89 B
70-79 C
60-69 D
Below 60 F
Expected Output:
Enter·test·grade·for·student·1:55↵ ·
Enter·test·grade·for·student·2:65↵ ·
Enter·test·grade·for·student·3:75↵ ·
Enter·test·grade·for·student·4:85↵ ·
Enter·test·grade·for·student·5:95↵ ·
The·letter·grades·are·as·follows:↵
Student·1:·F↵
Student·2:·D↵
Student·3:·C↵
Student·4:·B↵
Student·5:·A↵
The·average·grade·was:·75.00↵
ISSUES: PLEASE HELP:
I can not get the student's letter grade to display correctly;
I can not get the average to calculate correctly;
Instructions states to write the METHODS in the program.
My output:
Enter test grade for student 1:50
Enter test grade for student 2:60
Enter test grade for student 3:70
Enter test grade for student 4:80
Enter test grade for student 5:90
The letter grades are as follows:
Student 0.0F
Student F
Student F
Student F
Student F
Average:0.0
My Code:
import java.util.Scanner;
public class TestAveGrade{
public static double calcAverage(double userScore1, double userScore2, double userScore3, double userScore4, double userScore5){
double average;
average = (userScore1 +userScore2 +userScore3 +userScore4 +userScore5) /5;
return average;
}
public static String determineGrade(double testScore){
String letterGrade = " ";
if (testScore < 60){
letterGrade = "F";
} else if (testScore <70) {
letterGrade = "D";
}else if (testScore <80) {
letterGrade = "C";
}else if (testScore <90) {
letterGrade = "B";
}else if (testScore <100) {
letterGrade = "A";
}
return letterGrade;
}
public static void main( String [] args) {
Scanner scanner = new Scanner( System.in );
int numberOfScores = 5;
double userScore;
double userScore1 = 0;
double userScore2 = 0;
double userScore3 = 0;
double userScore4 = 0;
double userScore5 = 0;String outputString = "The letter grades are as follows:\\";for(int currentScore = 1; currentScore <= numberOfScores; currentScore++){System.out.print ("Enter test grade for student " + currentScore+":");userScore = scanner.nextDouble();switch (currentScore) {case 1:userScore1 = userScore1;outputString += "Student "+ userScore1 + determineGrade( userScore1) +"\\";break;case 2:userScore2 = userScore2;outputString += "Student "+ determineGrade (userScore2) + "\\";break;case 3:userScore2 = userScore3;outputString += "Student "+ determineGrade (userScore3) + "\\";break;case 4:userScore2 = userScore4;outputString += "Student "+ determineGrade (userScore4) + "\\";break;case 5:userScore2 = userScore5;outputString += "Student "+ determineGrade (userScore5) + "\\";break;default:break;}}System.out.print( outputString + "Average:" + calcAverage (userScore1, userScore2, userScore3, userScore4, userScore5));}}

1 Answer

2 votes

Answer:

import java.util.Scanner;

public class TestAveGrade

{

public static void main(String[] args) {

Scanner scanner = new Scanner( System.in );

double userScore1, userScore2, userScore3, userScore4, userScore5;

System.out.print ("Enter test grade for student1:");

userScore1 = scanner.nextDouble();

System.out.print ("Enter test grade for student2:");

userScore2 = scanner.nextDouble();

System.out.print ("Enter test grade for student3:");

userScore3 = scanner.nextDouble();

System.out.print ("Enter test grade for student4:");

userScore4 = scanner.nextDouble();

System.out.print ("Enter test grade for student5:");

userScore5 = scanner.nextDouble();

System.out.println("The letter grades are as follows:");

System.out.println("Student-1: " + determineGrade(userScore1));

System.out.println("Student-2: " + determineGrade(userScore2));

System.out.println("Student-3: " + determineGrade(userScore3));

System.out.println("Student-4: " + determineGrade(userScore4));

System.out.println("Student-5: " + determineGrade(userScore5));

System.out.printf("The average grade was: %.2f", calcAverage (userScore1, userScore2, userScore3, userScore4, userScore5));

}

public static double calcAverage(double userScore1, double userScore2, double userScore3, double userScore4, double userScore5){

double average;

average = (userScore1 +userScore2 +userScore3 +userScore4 +userScore5) /5;

return average;

}

public static String determineGrade(double testScore){

String letterGrade = " ";

if (testScore < 60){

letterGrade = "F";

}

else if (testScore <70) {

letterGrade = "D";

}

else if (testScore <80) {

letterGrade = "C";

}

else if (testScore <90) {

letterGrade = "B";

}

else if (testScore <100) {

letterGrade = "A";

}

return letterGrade;

}

}

Step-by-step explanation:

Hi, I modified your code. Your methods work but you need to update the main.

Ask the user to enter five grades and store the values in different variables

Call the determineGrade method passing each grade as a parameter

Call the calcAverage method passing all the grades as parameter

User Xuan
by
5.2k points