1  public class Student
  2  {
  3     private double[] scores;
  4     private int scoresSize;
  5  
  6     /**
  7        Constructs a student with no scores and a maximum number of scores.
  8        @capacity the maximum number of scores for this student
  9     */
 10     public Student(int capacity)
 11     {
 12        scores = new double[capacity];
 13        scoresSize = 0;
 14     }
 15  
 16     /**
 17        Adds a score for this student.
 18        @param score the score to add
 19        @return true if the score was added, false if there was no room to add the score
 20     */
 21     public boolean addScore(double score)
 22     {
 23        if (scoresSize < scores.length)
 24        {
 25           scores[scoresSize] = score;
 26           scoresSize++;
 27           return true;
 28        }
 29        else
 30        {
 31           return false;      
 32        }
 33     }
 34     
 35     /**
 36        Gets the position of the minimum score.
 37        @return the position of the smallest element of values, or -1
 38        if there are no scores.
 39     */
 40     public int minimumPosition()
 41     {
 42        if (scoresSize == 0) { return -1; }
 43        int smallestPosition = 0;
 44        for (int i = 1; i < scoresSize; i++)
 45        {
 46           if (scores[i] < scores[smallestPosition])
 47           {
 48              smallestPosition = i;
 49           }
 50        }
 51        return smallestPosition;
 52     }
 53  
 54     /**
 55        Computes the sum of the scores
 56        @return the total score
 57     */
 58     public double sum()
 59     {
 60        double total = 0;
 61        for (int i = 0; i < scoresSize; i++)
 62        {
 63           total = total + scores[i];
 64        }
 65        return total;
 66     }     
 67  
 68     /**
 69        Removes a score at a given position.
 70        @param pos the position of the score to remove
 71     */
 72     public void removeScore(int pos)
 73     {
 74        // Remove the element at this position--see Section 7.3.6
 75        scores[pos] = scores[scoresSize - 1];
 76        scoresSize--;
 77     }
 78  }
 79