diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..2c86ebf4d 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,104 @@ +import java.util.Scanner; +// Класс Автомобиль +class Car { + private String name; + private int speed; + + public Car(String name, int speed) { + this.name = name; + this.speed = speed; + } + + public int getDistance() { + return speed * 24; + } + + public String getName() { + return name; + } + + public int getSpeed() { + return speed; + } +} + +// Класс Гонка +class Race { + private Car winner; + + public void determineWinner(Car[] cars) { + winner = cars[0]; + for (int i = 1; i < cars.length; i++) { + if (cars[i].getDistance() > winner.getDistance()) { + winner = cars[i]; + } + } + } + + public Car getWinner() { + return winner; + } +} + +// Главный класс public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + Scanner scanner = new Scanner(System.in); + int numberOfCars = 3; // можно легко изменить + Car[] cars = new Car[numberOfCars]; + + for (int i = 0; i < numberOfCars; i++) { + cars[i] = createCar(i + 1, scanner); + } + + Race race = new Race(); + race.determineWinner(cars); + + Car winner = race.getWinner(); + System.out.println("\n🏁 Победитель гонки: " + winner.getName()); + System.out.println("Скорость: " + winner.getSpeed() + " км/ч"); + System.out.println("Проехал за 24 часа: " + winner.getDistance() + " км"); + } + + // Метод создания машины с вводом и валидацией + private static Car createCar(int number, Scanner scanner) { + String name; + int speed; + + System.out.println("Введите название машины №" + number + ":"); + while (true) { + name = scanner.nextLine().trim(); + if (!name.isEmpty()) break; + System.out.println("Название не может быть пустым. Введите ещё раз:"); + } + + System.out.println("Введите скорость машины №" + number + ":"); + while (true) { + String input = scanner.nextLine().trim(); + if (isValidSpeed(input)) { + speed = Integer.parseInt(input); + if (speed >= 0 && speed <= 250) { // ✅ от 0 до 250 + break; + } else { + System.out.println("Неправильная скорость. Введите число от 0 до 250:"); + } + } else { + System.out.println("Неправильная скорость. Введите целое число:"); + } + } + + return new Car(name, speed); + } + + // Метод для проверки, является ли строка числом + private static boolean isValidSpeed(String input) { + if (input.isEmpty()) return false; + for (int i = 0; i < input.length(); i++) { + if (!Character.isDigit(input.charAt(i))) { + return false; + } + } + return true; } -} \ No newline at end of file +}