You are to create a CourseGrades application that simulates a grade book for a c
ID: 3533427 • Letter: Y
Question
You are to create a CourseGrades application that simulates a grade book for a class with six students that each has 5 test scores. The CourseGrades application should use a GradeBook class that has a member variables grades, which is a two-dimensional array of integers, and methods getGrades() for prompting the user for the test grades for each student, showGrades() that displays the grades for the class, studentAvg() that has a student number parameter and then returns the average grade for that student, testAvg() that has a test number parameter and then returns the average grade for that test.
Explanation / Answer
// Fig. 7.14: GradeBook.java
// Grade book using an array to store test grades.
public class GradeBook
{
private String courseName; // name of course this GradeBook represents
private int grades[]; // array of student grades
// two-argument constructor initializes courseName and grades array
public GradeBook( String name, int gradesArray[] )
{
courseName = name; // initialize courseName
grades = gradesArray; // store grades
}
// method to set the course name
public void setCourseName( String name )
{
courseName = name; // store the course name
}
// method to retrieve the course name
public String getCourseName()
{
return courseName;
}
// display a welcome message to the GradeBook user
public void displayMessage()
{
// getCourseName gets the name of the course
System.out.printf( "Welcome to the grade book for %s! ",
getCourseName() );
}
// perform various operations on the data
public void processGrades()
{
// output grades array
outputGrades();
// call method getAverage to calculate the average grade
System.out.printf( " Class average is %.2f ", getAverage() );
// call methods getMinimum and getMaximum
System.out.printf( "Lowest grade is %d Highest grade is %d ",
getMinimum(), getMaximum() );
// call outputBarChart to print grade distribution chart
outputBarChart();
}
// find minimum grade
public int getMinimum()
{
int lowGrade = grades[ 0 ]; // assume grades[ 0 ] is smallest
// loop through grades array
for ( int grade : grades )
{
// if grade lower than lowGrade, assign it to lowGrade
if ( grade < lowGrade )
lowGrade = grade; // new lowest grade
}
return lowGrade; // return lowest grade
// find maximum grade
public int getMaximum()
{
int highGrade = grades[ 0 ]; // assume grades[ 0 ] is largest
// loop through grades array
for ( int grade : grades )
{
// if grade greater than highGrade, assign it to highGrade
if ( grade > highGrade )
highGrade = grade; // new highest grade
}
return highGrade; // return highest grade
// determine average grade for test
public double getAverage()
{
int total = 0; // initialize total
// sum grades for one student
for ( int grade : grades )
total += grade;
// return average of grades
return (double) total / grades.length;
// output bar chart displaying grade distribution
public void outputBarChart()
{
System.out.println( "Grade distribution:" );
// stores frequency of grades in each range of 10 grades
int frequency[] = new int[ 11 ];
// for each grade, increment the appropriate frequency
for ( int grade : grades )
++frequency[ grade / 10 ];
// for each grade frequency, print bar in chart
for ( int count = 0; count < frequency.length; count++ )
{
// output bar label ( "00-09: ", ..., "90-99: ", "100: " )
if ( count == 10 )
System.out.printf( "]: ", 100 );
else
System.out.printf( "d-d: ",count * 10, count * 10 + 9
// print bar of asterisks
for ( int stars = 0; stars < frequency[ count ]; stars++ )
System.out.print( "*" );
System.out.println(); // start a new line of output
}
}
// output the contents of the grades array
public void outputGrades()
{
System.out.println( "The grades are: " );
// output each student's grade
for ( int student = 0; student < grades.length; student++ )
System.out.printf( "Student -: = ",
student + 1, grades[ student ] );
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.