Please update the following program: import java.util.Scanner; public class Grad
ID: 3913833 • Letter: P
Question
Please update the following program:
import java.util.Scanner;
public class GradesforSam {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int TOTAL_GRADES = 0;
int i;
int sumGrade;
int minGrade;
int maxGrade;
double avgGrade;
char letterGrade = 0;
System.out.println("Hi Sam, how many total grades do you want to process?");
TOTAL_GRADES = scnr.nextInt();
int[] userGrade = new int[TOTAL_GRADES];
for (i = 0; i < userGrade.length; ++i)
{
System.out.println("Please enter grade " + (i+1) + ":");
userGrade[i] = scnr.nextInt();
}
sumGrade = 0;
minGrade = 0;
maxGrade = 0;
for (i = 0; i < userGrade.length; ++i)
{
sumGrade = sumGrade + userGrade[i];
if (userGrade[i] > maxGrade)
{
maxGrade = userGrade[i];
}
if (userGrade[i] < minGrade)
{
minGrade = userGrade[i];
}
}
if ((avgGrade >= 90) && (avgGrade <= 100))
{
letterGrade = 'A';
}
else if ((avgGrade >= 80) && (avgGrade <= 89))
{
letterGrade = 'B';
}
else if ((avgGrade >= 70) && (avgGrade <= 79))
{
letterGrade = 'C';
}
else if ((avgGrade >= 60) && (avgGrade <= 69))
{
letterGrade = 'D';
}
else if ((avgGrade >= 0) && (avgGrade <= 59))
{
letterGrade = 'F';
}
avgGrade = 1.0 * sumGrade/TOTAL_GRADES;
System.out.println("Your total score is: " + sumGrade);
System.out.println("Lowest score is: "+ minGrade);
System.out.println("Highest score is "+ maxGrade);
System.out.printf("Average score is: %.2f ",avgGrade);
System.out.println("Your grade so far is a " + letterGrade);
}
}
Create a method called getTotalScore that has 1 array parameter, and returns the total in the array
Create a method called getLowestScore that has 1 array parameter, and returns the lowest element in the array
Create a method called getHighestScore that has 1 array parameter, and returns the highest element in the array
Create a method called getAverage that has 2 parameters (the totalScore and size of the array), and returns the average score
Create a method called printGrade, that takes 1 parameter (your average score), and prints out your grade, based on the grade scale that is on our course Syllabus. [
Use JavaDoc style comments above all 5 methods, and your class header. Generate javadocs using the javadoc tool, and zip up the doc folder. Submit the doc.zip file with your submission
Explanation / Answer
Here is the completed code for this problem. Comments are included, go through it, learn how things work and let me know if you have any doubts. Thanks
// GradesforSam.java
import java.util.Scanner;
public class GradesforSam {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int TOTAL_GRADES = 0;
int i;
int sumGrade;
int minGrade;
int maxGrade;
double avgGrade;
System.out
.println("Hi Sam, how many total grades do you want to process?");
TOTAL_GRADES = scnr.nextInt();
int[] userGrade = new int[TOTAL_GRADES];
for (i = 0; i < userGrade.length; ++i)
{
System.out.println("Please enter grade " + (i + 1) + ":");
userGrade[i] = scnr.nextInt();
}
/**
* replaced everything with the newly created methods
*/
sumGrade = getTotalScore(userGrade);
minGrade = getLowestScore(userGrade);
maxGrade = getHighestScore(userGrade);
avgGrade = getAverage(userGrade, TOTAL_GRADES);
System.out.println("Your total score is: " + sumGrade);
System.out.println("Lowest score is: " + minGrade);
System.out.println("Highest score is " + maxGrade);
System.out.printf("Average score is: %.2f ", avgGrade);
printGrade(avgGrade);
}
/**
* method to calculate the total score
*
* @param array
* - array containing scores
* @return the sum total of all values in array
*/
static int getTotalScore(int array[]) {
int total = 0;
for (int i = 0; i < array.length; i++) {
total += array[i];
}
return total;
}
/**
* method to calculate the lowest score
*
* @param array
* - array containing scores
* @return the lowest score among all values in array
*/
static int getLowestScore(int array[]) {
int lowest = 0;
for (int i = 0; i < array.length; i++) {
if (i == 0) {
lowest = array[i];
} else if (array[i] < lowest) {
lowest = array[i];
}
}
return lowest;
}
/**
* method to calculate the highest score
*
* @param array
* - array containing scores
* @return the highest score among all values in array
*/
static int getHighestScore(int array[]) {
int highest = 0;
for (int i = 0; i < array.length; i++) {
if (i == 0) {
highest = array[i];
} else if (array[i] > highest) {
highest = array[i];
}
}
return highest;
}
/**
* method to calculate the average score
*
* @param array
* - array containing scores
* @param size
* - size of array
* @return the average score among all values in array
*/
static double getAverage(int array[], int size) {
int sum = getTotalScore(array);
double average = (double) sum / size;
return average;
}
/**
* method to print the letter grade
*
* @param avgGrade
* - average score
*/
static void printGrade(double avgGrade) {
char letterGrade = ' ';
if ((avgGrade >= 90) && (avgGrade <= 100)) {
letterGrade = 'A';
} else if ((avgGrade >= 80) && (avgGrade <= 89)) {
letterGrade = 'B';
} else if ((avgGrade >= 70) && (avgGrade <= 79)) {
letterGrade = 'C';
} else if ((avgGrade >= 60) && (avgGrade <= 69)) {
letterGrade = 'D';
} else if ((avgGrade >= 0) && (avgGrade <= 59)) {
letterGrade = 'F';
}
System.out.println("Letter grade: " + letterGrade);
}
}
/*OUTPUT*/
Hi Sam, how many total grades do you want to process?
5
Please enter grade 1:
98
Please enter grade 2:
91
Please enter grade 3:
88
Please enter grade 4:
96
Please enter grade 5:
93
Your total score is: 466
Lowest score is: 88
Highest score is 98
Average score is: 93.20
Letter grade: A