diff --git a/src/main/java/Car.java b/src/main/java/Car.java new file mode 100644 index 000000000..fe40b0e10 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,18 @@ + +public class Car { + private final String name; + private final int speed; + + public Car(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..7ccc8882f 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,69 @@ +import java.util.Scanner; public class Main { + + private static final int CARS_COUNT = 3; + 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(); + + for (int i = 1; i <= CARS_COUNT; i++) { + String name = readCarName(scanner, i); + int speed = readCarSpeed(scanner, i); + + Car car = new Car(name, speed); + race.consider(car); + } + + System.out.println("Самая быстрая машина: " + race.getLeaderName()); + scanner.close(); + } + + private static String readCarName(Scanner scanner, int carNumber) { + while (true) { + System.out.println("Введите название машины No" + carNumber + ":"); + String name = scanner.nextLine().trim(); + + if (name.isEmpty()) { + System.out.println("Ошибка: название не может быть пустым. Повторите ввод."); + continue; + } + return name; + } + } + + private static int readCarSpeed(Scanner scanner, int carNumber) { + while (true) { + System.out.println("Введите скорость машины No" + carNumber + ":"); + String input = scanner.nextLine().trim(); + + if (input.isEmpty()) { + System.out.println("Ошибка: скорость не может быть пустой. Повторите ввод."); + continue; + } + + if (input.contains(".") || input.contains(",")) { + System.out.println("Ошибка: скорость должна быть целым числом. Повторите ввод."); + continue; + } + + int speed; + try { + speed = Integer.parseInt(input); + } catch (NumberFormatException e) { + System.out.println("Ошибка: введите целое число. Повторите ввод."); + continue; + } + + if (speed < MIN_SPEED || speed> MAX_SPEED) { + System.out.println("Неправильная скорость (допустимо " + MIN_SPEED + "–" + MAX_SPEED + ")."); + continue; + } + + 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..c066f077c --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,17 @@ + +public class Race { + private String leaderName = ""; + private int leaderDistance = 0; + + public void consider(Car car) { + int distance = 24 * car.getSpeed(); + if (distance> leaderDistance) { + leaderDistance = distance; + leaderName = car.getName(); + } + } + + public String getLeaderName() { + return leaderName; + } +}

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