diff --git a/src/main/java/Car.java b/src/main/java/Car.java new file mode 100644 index 000000000..203808f9c --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,15 @@ +public class Car { + private static final int RACE_DURATION = 24; + public final String name; + public final int speed; + public Car(String name, int speed) { + this.name = name; + this.speed = speed; + } + + public int calculateDistance (){ + return speed*RACE_DURATION; + } +} + + diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..8f6ef882e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,53 @@ +import java.util.InputMismatchException; +import java.util.Scanner; public class Main { + private static final int MIN_SPEED = 1; + private static final int MAX_SPEED = 250; + public static void main(String[] args) { - System.out.println("Hello world!"); + + Scanner scanner = new Scanner(System.in); + Race race = new Race(); + + System.out.println("Добро пожаловать в гонку!"); + System.out.println("Введите данные для трех автомобилей"); + for (int i = 0; i < 3; i++) { + String name = readCarName(scanner, i + 1); + int speed = readCarSpeed(scanner, i + 1); + Car newCar = new Car(name, speed); + race.checkLeader(newCar); + } + System.out.println("Самая быстрая машина: " + race.getLeaderName()); + } + private static String readCarName(Scanner scanner, int carNumber) { + while (true) { + System.out.println("Введите название автомобиля No " + carNumber + ":"); + String name = scanner.nextLine().trim(); + if (!name.isEmpty()) { + return name; + } + System.out.println("Ошибка: Название не может быть пустым. Попробуйте еще раз."); + } } -} \ No newline at end of file + private static int readCarSpeed(Scanner scanner, int carNumber){ + while (true){ + System.out.println("Введите скорость автомобиля No " + carNumber + " (" + MIN_SPEED + "-" + MAX_SPEED + "км/ч):"); + try{ + int speed = scanner.nextInt(); + scanner.nextLine(); + if (speed>= MIN_SPEED && speed <= MAX_SPEED) { + return speed; + } else { + System.out.println("Ошибка: скорость должна быть от " + MIN_SPEED + " до " + MAX_SPEED + " км/ч. Попробуйте еще раз."); + } + } catch (InputMismatchException e) { + System.out.println("Ошибка: введите целое число. Попробуйте еще раз."); + scanner.next(); + } + } + } + +} + + diff --git a/src/main/java/Race.java b/src/main/java/Race.java new file mode 100644 index 000000000..4c5c6ad23 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,24 @@ +public class Race { + private Car leader; + private int leaderDistance = 0; + + public void checkLeader(Car newCar) { + int newCarDistance = newCar.calculateDistance(); + if (leader == null) { + leader = newCar; + leaderDistance = newCarDistance; + } else { + if (newCarDistance> leaderDistance) { + leader = newCar; + leaderDistance = newCarDistance; + } + } + } + + public String getLeaderName() { + if (leader != null) { + return leader.name; + } + return "Нет победителя"; + } +}

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