diff --git a/src/main/java/Auto.java b/src/main/java/Auto.java new file mode 100644 index 000000000..aa1265a21 --- /dev/null +++ b/src/main/java/Auto.java @@ -0,0 +1,19 @@ +public class Auto { + String name; + int speed; + + public Auto(String name, int speed) { + this.name = name; + this.speed = speed; + } + + public String getName() { + return name; + } + + public int getSpeed() { + return speed; + } +} + + diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..2bb5095ed 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,44 @@ +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + Scanner scanner = new Scanner(System.in); + Race race = new Race(); + + for (int i = 1; i <= 3; i++) { + System.out.println("Автомобиль #" + i); + + String name = getName(scanner); + int speed = getValidSpeed(scanner, name); + + race.addCar(new Auto(name, speed)); + System.out.println("Текущий лидер: " + race.getCurrentLeader()); + } + + System.out.println("\nФинальный победитель: " + race.getCurrentLeader()); + } + + private static String getName(Scanner scanner) { + System.out.print("Название: "); + return scanner.nextLine(); + } + + private static int getValidSpeed(Scanner scanner, String name) { + while (true) { + System.out.print("Скорость для " + name + " (1-250): "); + + if (scanner.hasNextInt()) { + int speed = scanner.nextInt(); + scanner.nextLine(); // Очистка буфера + + if (speed > 0 && speed <= 250) { + return speed; + } + System.out.println("Ошибка: скорость должна быть 1-250!"); + } else { + System.out.println("Ошибка: введите целое число!"); + scanner.nextLine(); // Очистка неверного ввода + } + } } -} \ 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..a7ab288fc --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,26 @@ +import java.util.ArrayList; + +public class Race { + String currentLeaderName = "Лидер отсутствует"; + int currentLeaderDistance = 0; + ArrayList cars = new ArrayList<>(); + + public void addCar(Auto car) { + cars.add(car); + updateLeader(car); + } + + private void updateLeader(Auto newCar) { + int newDistance = 24 * newCar.getSpeed(); + + if (newDistance > currentLeaderDistance) { + currentLeaderDistance = newDistance; + currentLeaderName = newCar.getName(); + } + } + + public String getCurrentLeader() { + return currentLeaderName; + } +} +