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