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
Stuart Reges
Last modified: Mon Nov 22 13:07:44 PST 2004