Java Reference
In-Depth Information
EXAMPLE:
(continued)
All the raw data is in the array
grade
, but two other arrays hold computed data. The
array
studentAverage
is used to record the average quiz score for each of the students.
For example, the program sets
studentAverage[0]
equal to the average of the quiz
scores received by student
1
,
studentAverage[1]
equal to the average of the quiz
scores received by student
2
, and so forth. The array
quizAverage
is used to record the
average score for each quiz. For example, the program sets
quizAverage[0]
equal to
the average of all the student scores for quiz
1
,
quizAverage[1]
records the average
score for quiz
2
, and so forth. Display 6.19 illustrates the relationship between the
arrays
grade
,
studentAverage
, and
quizAverage
. In that display, we have shown some
sample data for the array
grade
. The data in
grade
, in turn, determines the values that
are stored in
studentAverage
and in
quizAverage
. Display 6.19 also shows these com-
puted values for
studentAverage
and
quizAverage
. The two arrays
studentAverage
and
quizAverage
are created and filled by the constructor that creates the
GradeBook
object. (The constructors do this by calling private helping methods.)
The no-argument constructor for the class
GradeBook
obtains the data for the array
instance variable
grade
via a dialog with the user. Although this is not my favorite way
to define a no-argument constructor, some programmers like it and you should see an
example of it. Another alternative would be to have a no-argument constructor that
essentially does nothing and then have an input method that sets all the instance vari-
ables, including creating the array objects.
A very simple demonstration program along with the dialog it produces is given in
Display 6.20.
Display 6.18
A Grade Book Class
(part 1 of 4)
1
import
java.util.Scanner;
2
public class
GradeBook
3{
4
private int
numberOfStudents;
// Same as studentAverage.length.
5
private int
numberOfQuizzes;
// Same as quizAverage.length.
6
private int
[][] grade;
//numberOfStudents rows and numberOfQuizzes columns.
7
private double
[] studentAverage;
8
private double
[] quizAverage;
9
public
GradeBook(
int
[][] a)
10
{
11
if
(a.length == 0 || a[0].length == 0)
12
{
13
System.out.println("Empty grade records. Aborting.");
14
System.exit(0);
15
}
(continued)