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