CSE142 Program Example handout #25
Class Grade.java
----------------
// Stuart Reges
// 11/22/04
//
// Class Grade stores the information for a single grade (units and grade).
// It also computes the quality points for a given grade.
public class Grade {
private int myUnits;
private double myGrade;
// construct Grade object with given units and grade
public Grade(int units, double grade) {
myUnits = units;
myGrade = grade;
}
// returns the units for this grade
public int getUnits() {
return myUnits;
}
// returns the quality points for this grade
public double getQualityPoints() {
return myUnits * myGrade;
}
// returns a string representation of this grade
public String toString() {
return myUnits + "-unit " + myGrade;
}
}
Testing Program GradeTest.java
------------------------------
// Stuart Reges
// 11/22/04
//
// This program tests the Grade class.
public class GradeTest {
public static void main(String[] args) {
Grade g1 = new Grade(4, 3.9);
Grade g2 = new Grade(3, 4.0);
Grade g3 = new Grade(5, 2.7);
Grade g4 = new Grade(2, 0.0);
show(g1);
show(g2);
show(g3);
show(g4);
}
public static void show(Grade g) {
System.out.print("Grade = " + g);
System.out.print(", points = " + g.getQualityPoints());
System.out.println(", units = " + g.getUnits());
}
}
Output of GradeTest
-------------------
Grade = 4-unit 3.9, points = 15.6, units = 4
Grade = 3-unit 4.0, points = 12.0, units = 3
Grade = 5-unit 2.7, points = 13.5, units = 5
Grade = 2-unit 0.0, points = 0.0, units = 2
Class GradeList.java
--------------------
// Stuart Reges
// 11/22/04
//
// Class GradeList stores a list of grades for a particular person and computes
// a weighted GPA.
import java.util.*;
public class GradeList {
private String myName;
private ArrayList myGrades;
// constructs an empty grade list for the person with the given name
public GradeList(String name) {
myName = name;
myGrades = new ArrayList();
}
// adds the given grade to the list of grades
public void add(Grade g) {
myGrades.add(g);
}
// gets the ith grade from the list (0-based indexing)
public Grade get(int i ) {
return (Grade)myGrades.get(i);
}
// returns the number of grades in the list
public int length() {
return myGrades.size();
}
// returns the weighted gpa for this person, 0.0 if no classes taken
public double getGPA() {
int units = 0;
double points = 0.0;
for (int i = 0; i < myGrades.size(); i++) {
Grade g = (Grade)myGrades.get(i);
units += g.getUnits();
points += g.getQualityPoints();
}
if (units == 0)
return 0.0;
else
return points/units;
}
// returns a string representation of this grade list
public String toString() {
return "Grades for " + myName + " = " + myGrades;
}
}
Testing Program GradeListTest.java
----------------------------------
// Stuart Reges
// 11/22/04
//
// This program tests the GradeList class.
public class GradeListTest {
public static void main(String[] args) {
GradeList list = new GradeList("Joe Schmoe");
show(list);
list.add(new Grade(3, 4.0));
show(list);
list.add(new Grade(2, 3.2));
show(list);
list.add(new Grade(4, 2.7));
show(list);
list.add(new Grade(2, 0.0));
show(list);
}
public static void show(GradeList list) {
System.out.println(list);
System.out.println("gpa = " + list.getGPA());
System.out.println("length = " + list.length());
for (int i = 0; i < list.length(); i++)
System.out.println("Grade #" + i + " = " + list.get(i));
System.out.println();
}
}
Output of GradeListTest
-----------------------
Grades for Joe Schmoe = []
gpa = 0.0
length = 0
Grades for Joe Schmoe = [3-unit 4.0]
gpa = 4.0
length = 1
Grade #0 = 3-unit 4.0
Grades for Joe Schmoe = [3-unit 4.0, 2-unit 3.2]
gpa = 3.6799999999999997
length = 2
Grade #0 = 3-unit 4.0
Grade #1 = 2-unit 3.2
Grades for Joe Schmoe = [3-unit 4.0, 2-unit 3.2, 4-unit 2.7]
gpa = 3.2444444444444445
length = 3
Grade #0 = 3-unit 4.0
Grade #1 = 2-unit 3.2
Grade #2 = 4-unit 2.7
Grades for Joe Schmoe = [3-unit 4.0, 2-unit 3.2, 4-unit 2.7, 2-unit 0.0]
gpa = 2.6545454545454543
length = 4
Grade #0 = 3-unit 4.0
Grade #1 = 2-unit 3.2
Grade #2 = 4-unit 2.7
Grade #3 = 2-unit 0.0