diff options
Diffstat (limited to 'src/Q4/BanffMarathonRunner.java')
| -rw-r--r-- | src/Q4/BanffMarathonRunner.java | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/src/Q4/BanffMarathonRunner.java b/src/Q4/BanffMarathonRunner.java deleted file mode 100644 index d9f5617..0000000 --- a/src/Q4/BanffMarathonRunner.java +++ /dev/null @@ -1,148 +0,0 @@ -/** - * 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.*; -import java.util.ArrayList; -import java.util.Arrays; - -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 other 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); - } - - /** - * Return the time take to complete the race. - * - * @return the time taken to complete the race - */ - public int getTime() { - return this.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 runners 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()); - - return String.join(System.lineSeparator(), winners); - } - - public static void main(String[] args) { - BanffMarathonRunner[] runners = { - new BanffMarathonRunner("Elena", "Brandon", 341, 1), - new BanffMarathonRunner("Thomas", "Molson", 273, 2), - new BanffMarathonRunner("Hamilton", "Winn", 278, 5), - new BanffMarathonRunner("Suzie", "Sarandin", 329, 7), - new BanffMarathonRunner("Philip", "Winne", 445, 9), - new BanffMarathonRunner("Alex", "Trebok", 275, 3), - new BanffMarathonRunner("Emma", "Pivoto", 275, 4), - new BanffMarathonRunner("John", "Lenthen", 243, 1), - new BanffMarathonRunner("James", "Lean", 334, 1), - new BanffMarathonRunner("Jane", "Ostin", 412, 1), - new BanffMarathonRunner("Emily", "Car", 393, 4), - new BanffMarathonRunner("Daniel", "Hamshire", 299, 4), - new BanffMarathonRunner("Neda", "Bazdar", 343, 3), - new BanffMarathonRunner("Aaron", "Smith", 317, 6), - new BanffMarathonRunner("Kate", "Hen", 265, 8) - }; - - BanffMarathonRunner fastestRunner = BanffMarathonRunner.getFastestRunner(runners); - System.out.println(fastestRunner.getFirstName()); - System.out.println(fastestRunner.getHomeAddress()); - System.out.println(fastestRunner.getTime()); - - BanffMarathonRunner secondFastestRunner = BanffMarathonRunner.getSecondFastestRunner(runners); - System.out.println(secondFastestRunner.getFirstName()); - System.out.println(secondFastestRunner.getHomeAddress()); - System.out.println(secondFastestRunner.getTime()); - System.out.println(secondFastestRunner.getTime() - fastestRunner.getTime()); - - System.out.print(BanffMarathonRunner.getAboveAverageRunners(runners)); - } -} |
