class ListOfInts {

   private int [] theList;
   private int numElements;
   private static final int maxListSize = 40;

   public ListOfInts() {
 	theList = new int[maxListSize];
	numElements = 0;
   }

   // Precondition: numElements < maxListSize
   public void addInt (int mark) {
	numElements++;
	theList[numElements-1] = mark;  // Why -1 ?
   }

   public float average () {
      	int sum = 0;
	for (int i=0; i<numElements; i++)
		sum += theList[i];
	return sum / numElements;
   }
}


class Student {

   private int studentNum;
   private String name;
   private ListOfInts markList;

   public Student (int n, String s) {
	studentNum = n;
	name = s;
	markList = new ListOfInts();
   }

   public void passCourse (int mark) {
 	markList.addInt(mark);
   }

   public float average() {
	return markList.average();
   }

}


class Example {

   public static void main (String[] args) {

       	Student Fred, Betty;
	Fred = new Student(12345, "Fred Flintstone");
	Fred.passCourse(75);
	Fred.passCourse(68);

	Betty = new Student(90210, "Betty Rubble");
	Betty.passCourse(92);

	System.out.println("Fred's avg: " + Fred.average() + " and " +
                           "Betty's avg: " + Betty.average());
   }
}
