Search⌘ K
AI Features

Solution: Grade Report Generator

Explore how to implement a grade report generator in Java by defining overloaded methods to calculate final scores with different weightings. Learn to use conditional statements for assigning letter grades and loops for outputting formatted reports, reinforcing control flow and method use.

We'll cover the following...
Java 25
public class GradeGenerator {
public static double computeFinalScore(int finalExam, double... assignments) {
double sum = 0;
for (int i = 0; i < assignments.length; i++) {
sum += assignments[i];
}
double avgAssignments = (assignments.length > 0) ? sum / assignments.length : 0;
// Weighting: 50% Assignments, 50% Final
return (avgAssignments * 0.50) + (finalExam * 0.50);
}
public static double computeFinalScore(int midterm, int finalExam, double... assignments) {
double sum = 0;
for (int i = 0; i < assignments.length; i++) {
sum += assignments[i];
}
double avgAssignments = 0;
if (assignments.length > 0) {
avgAssignments = sum / assignments.length;
}
// Weighting: 40% Assignments, 20% Midterm, 40% Final
return (avgAssignments * 0.40) + (midterm * 0.20) + (finalExam * 0.40);
}
public static String gradeLetter(double finalScore) {
if (finalScore >= 90) return "A";
else if (finalScore >= 80) return "B";
else if (finalScore >= 70) return "C";
else if (finalScore >= 60) return "D";
else return "F";
}
public static void main(String[] args) {
double s1 = computeFinalScore(90, new double[]{80.0, 85.0, 95.0});
double s2 = computeFinalScore(75, 80, new double[]{70.0, 60.0, 80.0});
double s3 = computeFinalScore(60, 50, new double[]{55.0});
double[] finalScores = {s1, s2, s3};
System.out.println("Grade Report:");
for (int i = 0; i < finalScores.length; i++) {
System.out.println("Student " + (i + 1) + ": " + finalScores[i] + " (" + gradeLetter(finalScores[i]) + ")");
}
}
}
...