diff --git a/src/main/java/Auto.java b/src/main/java/Auto.java new file mode 100644 index 000000000..64a40c040 --- /dev/null +++ b/src/main/java/Auto.java @@ -0,0 +1,14 @@ + +public class Auto implements Comparable { + String name; + int speed; + + + Auto(String name, int speed) { + this.name = name; + this.speed = speed; + } + public int compareTo(Auto o){ + return (o.speed-speed); + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..88f2aea9d 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,52 @@ +import java.util.ArrayList; +import java.util.Scanner; + public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + ArrayList autoList = new ArrayList(); + + competitors(autoList); + Race.check(autoList); + } + + public static void competitors(ArrayList autoList) { + Scanner scanner = new Scanner(System.in); + System.out.println("Объявляем участников гонки!"); + String name; + + int speed = 0; + for(int i = 0; i < 3; i++){ + System.out.println("Введите название автомобиля No" + (i+1)); + name = scanner.next(); + speed = getValidSpeed(); + autoList.add(new Auto(name, speed)); + Race.isWinner(name, speed); + } + } + + public static int getValidSpeed () { + String spStr; + int speed = 0; + boolean flag = true; + + while (flag) { + System.out.println("Введите скорость"); + Scanner scanner = new Scanner(System.in); + spStr = scanner.next(); + try { + speed = Integer.parseInt(spStr); + if (speed <=0 || speed> 250){ + flag = true; + System.out.println("Ошибка, только целые числа от 0 да 250, еще раз..."); + }else { + flag = false; + } + } catch (NumberFormatException e) { + System.out.println("Ошибка, только целые числа от 0 да 250, еще раз..."); + flag = true; + } + } + return speed; } } \ No newline at end of file diff --git a/src/main/java/Race.java b/src/main/java/Race.java new file mode 100644 index 000000000..c42270014 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,39 @@ +import java.util.ArrayList; +import java.util.Collections; + +public class Race { + static String winner; + static int start = 0; + static int winnerDistance = 0; + + public static int distance24h(int speed) { + return speed * 24; + } + + public static void isWinner(String name, int distance) { + if (distance> start) { + start = distance; + winner = name; + winnerDistance = distance24h(distance); + } + } + + public static void check (ArrayList checkList) { + int count = 0; + Collections.sort(checkList); + for (int i = 0; i < checkList.size()-1; i++) { + if (checkList.get(i).speed == checkList.get(i+1).speed){ + count++; + } + } + if (count == (checkList.size()-1)){ + System.out.println("Все финишировали одновременно!"); + } else if (count == 1) { + System.out.println("Две машины: \'"+checkList.get(0).name+"\' и \'"+ checkList.get(1).name+"\' пришли одновременно, проехав "+distance24h(checkList.get(0).speed)+ " километров за 24 часа."); + } else if (count == 0) { + System.out.println("Победитель финишировал на машине: \'"+checkList.get(0).name+"\', проехав "+distance24h(checkList.get(0).speed) + " километров за 24 часа."); + } else { + System.out.println("Несколько участников пришли к финишу одновременно!"); + } + } +}

AltStyle によって変換されたページ (->オリジナル) /