Untitled

 avatar
unknown
java
5 months ago
2.9 kB
1
Indexable
import java.util.Scanner;

public class GradeCalculator {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Input grades with proper prompts
        System.out.print("Enter your prelim grade: ");
        double prelimGrade = scanner.nextDouble();

        System.out.print("Enter your midterm grade: ");
        double midtermGrade = scanner.nextDouble();

        System.out.print("Enter your final grade: ");
        double finalGrade = scanner.nextDouble();

        // Validate input (optional)
        validateGrades(prelimGrade, midtermGrade, finalGrade);

        // Calculate total and average grades
        double totalGrade = prelimGrade + midtermGrade + finalGrade;
        double averageGrade = totalGrade / 3.0; // Use double for decimal precision

        // Determine letter grade and remarks
        String letterGrade;
        String remarks;

        if (averageGrade >= 100) {
            letterGrade = "Invalid";
            remarks = "Grades cannot exceed 100.";
        } else if (averageGrade >= 98) {
            letterGrade = "A+";
            remarks = "Excellent!";
        } else if (averageGrade >= 94) {
            letterGrade = "A";
            remarks = "Outstanding!";
        } else if (averageGrade >= 90) {
            letterGrade = "A-";
            remarks = "Very good.";
        } else if (averageGrade >= 86) {
            letterGrade = "B+";
            remarks = "Good.";
        } else if (averageGrade >= 81) {
            letterGrade = "B";
            remarks = "Satisfactory.";
        } else if (averageGrade >= 77) {
            letterGrade = "B-";
            remarks = "Above average.";
        } else if (averageGrade >= 70) {
            letterGrade = "C+";
            remarks = "Average.";
        } else if (averageGrade >= 60) {
            letterGrade = "C";
            remarks = "Needs improvement.";
        } else if (averageGrade >= 50) {
            letterGrade = "C-";
            remarks = "Passing, but consider re-evaluation.";
        } else {
            letterGrade = "F";
            remarks = "Failed. Please consult with your instructor.";
        }

        // Output results
        System.out.println("Your overall grade is: " + averageGrade);
        System.out.println("Letter grade: " + letterGrade);
        System.out.println("Remarks: " + remarks);

        scanner.close();
    }

    // Optional method to validate grades (can be customized)
    public static void validateGrades(double prelim, double midterm, double finalGrade) {
        if (prelim < 0 || prelim > 100 || midterm < 0 || midterm > 100 || finalGrade < 0 || finalGrade > 100) {
            throw new IllegalArgumentException("Grades must be between 0 and 100.");
        }
    }
}
Editor is loading...
Leave a Comment