Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

package grade _ book _ 8 ; / / Fig. 7 . 1 8 : GradeBook.java / / Grade book using two - dimensional array

package grade_book_8;
// Fig. 7.18: GradeBook.java
// Grade book using two-dimensional array to store grades.
public class GradeBook
{
private String courseName; // name of course this grade book represents
private int grades[][]; // two-dimensional 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
}// end two-argument GradeBook constructor
// method to set the course name
public void setCourseName( String name )
{
courseName = name; // store the course name
}// end method setCourseName
// method to retrieve the course name
// method to retrieve the course name
public String getCourseName()
{
return courseName;
}// end method getCourseName
// 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());
}// end method displayMessage
// perform various operations on the data
public void processGrades()
{
// output grades array
outputGrades();
// call methods getMinimum and getMaximum
System.out.printf("
%s %d
%s %d
",
"Lowest grade in the grade book is", getMinimum(),
"Highest grade in the grade book is", getMaximum());
// output grade distribution chart of all grades on all tests
outputBarChart();
}// end method processGrades
// find minimum grade
public int getMinimum()
{
// assume first element of grades array is smallest
int lowGrade = grades[0][0];
// loop through rows of grades array
for ( int studentGrades[] : grades )
{
// loop through columns of current row
for ( int grade : studentGrades )
{
// if grade less than lowGrade, assign it to lowGrade
if ( grade < lowGrade )
lowGrade = grade;
}// end inner for
}// end outer for
return lowGrade; // return lowest grade
}// end method getMinimum
// find maximum grade
public int getMaximum()
{
// assume first element of grades array is largest
int highGrade = grades[0][0];
// loop through rows of grades array
for ( int studentGrades[] : grades )
{
// loop through columns of current row
for ( int grade : studentGrades )
{
// if grade greater than highGrade, assign it to highGrade
if ( grade > highGrade )
highGrade = grade;
}// end inner for
}// end outer for
return highGrade; // return highest grade
}// end method getMaximum
// determine average grade for particular student (or set of grades)
public double getAverage( int setOfGrades[])
{
int total =0; // initialize total
// sum grades for one student
for ( int grade : setOfGrades )
total += grade;
// return average of grades
return (double) total / setOfGrades.length;
}// end method getAverage
// output bar chart displaying overall grade distribution
public void outputBarChart()
{
System.out.println( "Overall grade distribution:" );
// stores frequency of grades in each range of 10 grades
int frequency[]= new int[11];
// for each grade in GradeBook, increment the appropriate frequency
for ( int studentGrades[] : grades )
{
for ( int grade : studentGrades )
++frequency[ grade /10];
}// end outer for
// 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("%5d: ",100);
else
System.out.printf("%02d-%02d: ",
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
}// end outer for
}// end method outputBarChart
// output the contents of the grades array
public void outputGrades()
{
System.out.println( "The grades are:
");
System.out.print(""); // align column heads
// create a column heading for each of the tests
for ( int test =0; test < grades[0].length; test++)
System.out.printf( "Test %d ", test +1);
System.out.println( "Average" ); // student average column heading
// create rows/columns of text representing array grades
for ( int student =0; student < grades.length; student++)
{
System.out.printf( "Student %2d", student +1);
for ( int test : grades[ student ])// output student's grades
System.out.printf("%8d", test );
// call method getAverage to calculate student's average grade;
// pass row of grades as the argument to getAverage
double average = getAverage( grades[ student ]);
System.out.printf("%9.2f
", average );
}// end outer for
}// end method outputGrades
}// end class GradeBook
package grade_book_8;
// Fig. 7.19: GradeBookTest.java
// Creates GradeBook object using a two

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Big Data Systems A 360-degree Approach

Authors: Jawwad ShamsiMuhammad Khojaye

1st Edition

0429531575, 9780429531576

More Books

Students also viewed these Databases questions

Question

What are the differences between leaders and managers?

Answered: 1 week ago

Question

Who are the market participants in the foreign exchange market?

Answered: 1 week ago

Question

Explain the pages in white the expert taxes

Answered: 1 week ago