Search⌘ K
AI Features

Solution: Grade Report Generator

Explore how to build a grade report generator by applying Java control flow fundamentals such as if-else statements and loops. Understand method overloading to calculate final scores with different parameters and use conditional logic to assign letter grades. This lesson helps you structure modular code for clear, reusable grade computations and reports.

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]) + ")");
}
}
}
...