This program is the same as the previous one, except that it doesn't use an enumeration. Instead it uses a for loop that continues for each element in the vector, and it uses elementAt() to retrieve each element.
import java.util.*; class Student { private String name; // Student's name private Vector marks = new Vector(); public Student (String n) { name = n; } public void addMark (int i) { marks.addElement (new Integer(i)); } public String getName () { return name; } public double getAverage() { int sum = 0; for (int i=0; i<marks.size(); i++) { sum += ((Integer)marks.elementAt(i)).intValue(); } return (double)sum/marks.size(); } } class Course { private String name; // Course's name private Vector students = new Vector(); public Course (String n) { name = n; } public void addStudent (Student s) { students.addElement(s); } public String getName () { return name; } public void printMarks() { for (int i=0; i<students.size(); i++) { Student s = (Student)students.elementAt(i); System.out.println (s.getName() + " " + s.getAverage()); } } } class School { public static void main (String[] args) { Student lia = new Student ("Lia"); Student sam = new Student ("Sam"); lia.addMark (87); lia.addMark (93); sam.addMark (60); sam.addMark (75); Student ann = new Student ("Ann"); Student jim = new Student ("Jim"); ann.addMark (70); ann.addMark (65); jim.addMark (85); jim.addMark (91); Course csc108 = new Course ("CSC108"); csc108.addStudent (lia); csc108.addStudent (sam); Course csc148 = new Course ("CSC148"); csc148.addStudent (ann); csc148.addStudent (jim); System.out.println ("CSC108 Marks:"); csc108.printMarks(); System.out.println ("\nCSC148 Marks:"); csc148.printMarks(); } }
CSC108 Marks: Lia 90.0 Sam 67.5 CSC148 Marks: Ann 67.5 Jim 88.0