University of Toronto - Fall 2000
Department of Computer Science

Week 9 - Vector of Vectors (No enumeration used)

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();
    }
}

Program Output

CSC108 Marks:
Lia 90.0
Sam 67.5

CSC148 Marks:
Ann 67.5
Jim 88.0

Memory Model Diagram