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