diff --git a/src/main/java/Car.java b/src/main/java/Car.java new file mode 100644 index 000000000..c03415da2 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,22 @@ +public class Car { + private String name; + private double speed; + + public Car(String name, double speed) { + this.name = name; + this.speed = speed; + } + + public String getName() { + return name; + } + + public double getSpeed() { + return speed; + } + + + public double calculateDistance() { + return speed * 24; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..803dfcba4 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,67 @@ +import java.util.Scanner; + public class Main { + private static final Scanner scanner = new Scanner(System.in); + private static final int CAR_COUNT = 3; + private static final double MIN_SPEED = 0; + private static final double MAX_SPEED = 250; + public static void main(String[] args) { - System.out.println("Hello world!"); + System.out.println("Добро пожаловать на гонку! Введите данные о 3 автомобилях."); + + Race race = new Race(); + + + for (int i = 1; i <= CAR_COUNT; i++) { + System.out.println("\nВведите данные для автомобиля №" + i + ":"); + Car car = createCar(); + race.addCar(car); + } + + + race.determineLeader(); + + + Car leader = race.getLeader(); + if (leader != null) { + System.out.println("\nСамая быстрая машина: " + leader.getName()); + } else { + System.out.println("\nНе удалось определить лидера гонки."); + } + + scanner.close(); + } + + + private static Car createCar() { + String name = getCarName(); + double speed = getValidSpeed(); + return new Car(name, speed); + } + + + private static String getCarName() { + System.out.print("Название автомобиля: "); + return scanner.nextLine(); + } + + + private static double getValidSpeed() { + double speed; + while (true) { + System.out.print("Скорость автомобиля (км/ч): "); + try { + speed = Double.parseDouble(scanner.nextLine()); + if (speed > MIN_SPEED && speed <= MAX_SPEED) { + break; + } else { + System.out.println("Ошибка: скорость должна быть больше 0 и не превышать 250 км/ч. Попробуйте ещё раз."); + } + } catch (NumberFormatException e) { + System.out.println("Ошибка: введите корректное числовое значение скорости."); + } + } + 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..8aab350d3 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,41 @@ +import java.util.ArrayList; +import java.util.List; + +public class Race { + private List cars; + private Car leader; + + public Race() { + cars = new ArrayList<>(); + } + + + public void addCar(Car car) { + cars.add(car); + } + + + public void determineLeader() { + if (cars.isEmpty()) { + leader = null; + return; + } + + leader = cars.get(0); + double maxDistance = leader.calculateDistance(); + + for (Car car : cars) { + double currentDistance = car.calculateDistance(); + if (currentDistance > maxDistance) { + maxDistance = currentDistance; + leader = car; + } + } + } + + + public Car getLeader() { + return leader; + } +} +