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

Write a program that read integer exam scored in the range 0 to 100 and displaye

ID: 3543592 • Letter: W

Question

Write a program that read integer exam scored in the range 0 to 100 and displayes the Total number of scores, total number of each letter grade, percente of total for each letter grade, range of scores: lowest to highest, and average score



this is what I got so far but is not working


import java.util.Scanner;


public class project7

{

public static void main(String[] args)

{

System.out.println ("This program computes the totalnumber of scores");

System.out.println("Total number of each letter grade");

System.out.println("Precentage of total for each letter grade");

System.out.println("Range of scores: lowest and highest");

System.out.println("Average Score");

double grade, percentA= 0.0, percentB= 0.0, percentC=0.0, percentD= 0.0, percentF=0.0, sum = 0.0, average,

smallest=0, largest=0;

int numberOfGrades = 0, A=0, B=0, C=0, D=0, F=0;

String answer;

Scanner keyboard = new Scanner(System.in);

do

{

System.out.println();

System.out.println("Enter all the scores to be averaged.");

System.out.println("Enter a negative number after you have entered all the scores.");

        grade = keyboard.nextDouble();

     while (grade >= 0)

     {

     if (grade >=90 && grade<= 100)

     {

     A++;

     }

     else if (grade >=80 && grade <=89)

     {

     B++;

     }

     else if (grade >=70 && grade <= 79)

     {

     C++;

     }

     else if (grade >=60 && grade <= 69)

     {

     D++;

     }

     else if (grade >= 0 && grade <=59)

     {

     F++;

     }

             sum = sum + grade;

             numberOfGrades ++;

             

     }

     

System.out.println("The total number of grade entered is " + numberOfGrades);

System.out.println("Number of A's = " + A);

System.out.println("Number of B's = " + B);

System.out.println("Number of C's = " + C);

System.out.println("Number of D's = " + D);

System.out.println("Number of F's = " + F);

percentA = (A/numberOfGrades) * 100;

System.out.println("The percent of A's = " + percentA + "%");

percentA = (B/numberOfGrades) * 100;

System.out.println("The percent of B's = " + percentB + "%");

percentA = (C/numberOfGrades) * 100;

System.out.println("The percent of C's = " + percentC + "%");

percentA = (D/numberOfGrades) * 100;

System.out.println("The percent of D's = " + percentD + "%");

percentA = (F/numberOfGrades) * 100;

System.out.println("The percent of F's = " + percentF + "%");

if (grade>=0 && grade<50)

smallest = grade;

if (grade>90 && grade <=100)

largest = grade;

System.out.println("The smalest number is " + smallest);

System.out.println("The largest number is " + largest);

System.out.println("The average is " + sum/numberOfGrades);

System.out.println("Want to do it for another exam");

System.out.println("Enter yes or no");

answer = keyboard.next();

} while (answer.equalsIgnoreCase("yes"));

}


}

Explanation / Answer

Hi ,

The only change you need to make is copy the grade = keyboard.nextDouble();

at the last line of the while loop.



I mean , at this location


sum = sum + grade;

numberOfGrades ++;

grade = keyboard.nextDouble(); // add here


}

Explaination for the issue:


The problem with your code was it was not reading the input multiple times. But if you keep it inside the loop, your code runs perfectly.   


Hope it helps :D