Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

DESIGN and COMPLTE a program ACCORDINGLY that determines final letter grade for

ID: 3925726 • Letter: D

Question

DESIGN and COMPLTE a program ACCORDINGLY that determines final letter grade for a student with encouraging comment. Three exams and two assignment scores as well as the student name will be entered by the user. Every score should range from 0.00 – 100.00. The program will give user only one chance to correct invalid score and provide meaningful feedback. Exams and assignments have equal weights for the final score (i.e. 50% by each category) that determines the final grade. Final grade and comment are determined by the following scale: A – 90 or above (Excellent!!) B – between 80.00 – 89.99 (Good job!) C – between 70.00 – 79.99 (Happy? Not happy?) D – between 60.00 – 69.99 (Could be better, right?) F – below 60.00 (Could be improved next time?)

Explanation / Answer

Please follow the code and comments for description :

CODE :

import java.util.Scanner;

public class StudentGrades {

    static int count = 0; // count to get the number of changes in the score that are made

    public static void main(String[] args) { // main driver method
        count++; // incrementing the count
        if (count <= 2) { // providing only a single chance to the user to change the data
            Scanner sc = new Scanner(System.in); // scanner class to get the data
            System.out.println("Please Enter the Student's Name : "); // promot to enter the data for the user
            String name = sc.nextLine(); // getting the name

            System.out.println("Please Enter the Two Assignment's Scores (0 - 100) : "); // prompt to enter the assignments marks
            System.out.println("Enter the First Assignment Score : ");
            double ass1 = sc.nextDouble(); // getting the data
            System.out.println("Enter the Second Assignment Score : ");
            double ass2 = sc.nextDouble();
            if ((ass1 < 0 || ass1 > 100) || (ass2 < 0 || ass2 > 100)) { // checking the data of scores entered
                System.out.println("Invalid Scores of Assignments!");
                main(null); // if incorrect returning to the main again
            }
            double assTotal = ass1 + ass2; // calculating the total marks
            double assAvg = (assTotal * 50) / 200;
            System.out.println("Total Score in the Assignments : " + assAvg); // getting the total of assignments

            System.out.println("Please Enter the Three Exam's Scores (0 - 100) : "); // propmt to enter the exam marks
            System.out.println("Enter the First Exam Score : ");
            double ex1 = sc.nextDouble(); // getting the data
            System.out.println("Enter the Second Exam Score : ");
            double ex2 = sc.nextDouble();
            System.out.println("Enter the Third Exam Score : ");
            double ex3 = sc.nextDouble();
            if ((ex1 < 0 || ex1 > 100) || (ex2 < 0 || ex2 > 100) || (ex3 < 0 || ex3 > 100)) {// checking the data entered
                System.out.println("Invalid Scores of Exams!");
                main(null); // returning to the main again if invalid data
            }
            double exTotal = ex1 + ex2 + ex3;
            double exAvg = (exTotal * 50) / 300; // calculating the total exam scores
            System.out.println("Total Score in the Exams : : " + exAvg); // printing the data

            double FinalScore = assAvg + exAvg; // calculating the final score
            System.out.println("The Final Score Obtaineed is : " + FinalScore); // printing the final data
            System.out.println("Hi " + name);

            if (FinalScore >= 90) { // checking to get the grades
                System.out.println("Your Grade is A.");
                System.out.println("Excellent!!");
            } else if (FinalScore >= 80.00 && FinalScore <= 89.99) {
                System.out.println("Your Grade is B.");
                System.out.println("Good job!");
            } else if (FinalScore >= 70.00 && FinalScore <= 79.99) {
                System.out.println("Your Grade is C.");
                System.out.println("Happy? Not happy?");
            } else if (FinalScore >= 60.00 && FinalScore <= 69.99) {
                System.out.println("Your Grade is D.");
                System.out.println("Could be better, right?");
            } else if (FinalScore < 60.00) {
                System.out.println("Your Grade is F.");
                System.out.println("Could be improved next time?");
            }

        } else {
            System.out.println("Exiting the Code!"); // exiting the code if any invalid data
            System.exit(0);
        }
    }
}

OUTPUT :

Please Enter the Student's Name :
John Carter
Please Enter the Two Assignment's Scores (0 - 100) :
Enter the First Assignment Score :
50
Enter the Second Assignment Score :
102
Invalid Scores of Assignments!
Please Enter the Student's Name :
Mark
Please Enter the Two Assignment's Scores (0 - 100) :
Enter the First Assignment Score :
56
Enter the Second Assignment Score :
98
Total Score in the Assignments : 38.5
Please Enter the Three Exam's Scores (0 - 100) :
Enter the First Exam Score :
86
Enter the Second Exam Score :
91
Enter the Third Exam Score :
65
Total Score in the Exams : : 40.333333333333336
The Final Score Obtaineed is : 78.83333333333334
Hi Mark
Your Grade is C.
Happy? Not happy?


Hope this is helpful.