diff options
| author | mokha <mokha@cisco.com> | 2019-05-08 17:56:52 -0600 |
|---|---|---|
| committer | mokha <mokha@cisco.com> | 2019-05-08 17:56:52 -0600 |
| commit | d7eccde0f7fe5f046a224336d2b2a789e9b0b9f7 (patch) | |
| tree | 404e803511689d687c91342659f2229b12fee75c /src/Q4/BanffMarathonRunner.java | |
| parent | f263324f457897de8a1fd95250526d9114b84778 (diff) | |
add doc and fix error in better than average logic
Diffstat (limited to 'src/Q4/BanffMarathonRunner.java')
| -rw-r--r-- | src/Q4/BanffMarathonRunner.java | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/src/Q4/BanffMarathonRunner.java b/src/Q4/BanffMarathonRunner.java index 36856a8..e9c68cf 100644 --- a/src/Q4/BanffMarathonRunner.java +++ b/src/Q4/BanffMarathonRunner.java @@ -1,3 +1,11 @@ +/** + * Assignment 1, COMP268 Class: BanffMarathonRunner.java + * + * @description Represents a marathon runner + * @author: mo khan Student ID: 3431709 + * @date May 8, 2019 + * @version 1.0 + */ package Q4; import Q1.*; @@ -8,44 +16,90 @@ public class BanffMarathonRunner extends AddressBook { private int time; private int years; + /** + * Constructs a BanffMarathonRunner object. + * + * @param firstName the first name of the runner + * @param lastName the last name of the runner + * @param time the time it took the runner to complete the marathon + * @param years the number of years they participated + */ public BanffMarathonRunner(String firstName, String lastName, int time, int years) { super(firstName, "", lastName); this.time = time; this.years = years; } + /** + * Performs a comparison of this runner with another based on the time it took them to complete + * the marathon. Because java generics does not allow implementing a generic interface with + * different type parameters, this code assumes the AddressBook is an instance of a Runner. + * + * @param AddressBook the other runner to compare against + * @return a negative integer, zero, or a positive integer as the first argument is less than, + * equal to, or greater than the second. + */ public int compareTo(AddressBook other) { BanffMarathonRunner runner = (BanffMarathonRunner) other; return Integer.compare(this.time, runner.time); } + /** + * Returns a string representation of the runner. + * + * @return The first name + the # of years that they participated. + */ @Override public String toString() { return super.getFirstName() + " " + this.years; } + /** + * Sorts the list of runners based on time, then returns the fastest runner. + * + * @param runners the list of runners. + * @return the fastest runner + */ public static BanffMarathonRunner getFastestRunner(BanffMarathonRunner[] runners) { Arrays.sort(runners); return runners[0]; } + /** + * Sorts the list of runners based on time, then returns the second fastest runner. + * + * @param runners the list of runners. + * @return the second fastest runner + */ public static BanffMarathonRunner getSecondFastestRunner(BanffMarathonRunner[] runners) { Arrays.sort(runners); return runners[1]; } + /** + * Calculates the average time that it took the runners to complete the marathon. + * + * @param runners the array of runners. + * @return the average time taken to complete the marathon + */ public static int getAverageTime(BanffMarathonRunner[] runners) { int sum = 0; for (BanffMarathonRunner runner : runners) sum += runner.time; return sum / runners.length; } + /** + * Returns the runners that finished the marathon in above or equal to average time. + * + * @param the list of runners + * @return the list of runners that finished the marathon in above average time. + */ public static String getAboveAverageRunners(BanffMarathonRunner[] runners) { int average = getAverageTime(runners); ArrayList<String> winners = new ArrayList<String>(); for (BanffMarathonRunner runner : runners) - if (runner.time >= average) winners.add(runner.toString()); + if (runner.time <= average) winners.add(runner.toString()); return String.join(System.lineSeparator(), winners); } |
