diff --git a/src/main/java/Car.java b/src/main/java/Car.java new file mode 100644 index 000000000..e96a16d2d --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,13 @@ +class Car { + String name; + int speed; + + Car(String name, int speed) { + this.name = name; + this.speed = speed; + } + + int distanceFor(int duration) { + return speed * duration; + } +} diff --git a/src/main/java/CarInputManager.java b/src/main/java/CarInputManager.java new file mode 100644 index 000000000..f4018d0c6 --- /dev/null +++ b/src/main/java/CarInputManager.java @@ -0,0 +1,57 @@ +import java.util.ArrayList; +import java.util.Scanner; + +class CarInputManager { + private Scanner scanner = new Scanner(System.in); + + ArrayList inputCars() { + ArrayList cars = new ArrayList<>(); + for (int i = 0; i < 3; i++) { + String carName; + Integer carSpeed; + + do { + carName = inputName(); + } while (carName == null); + + do { + carSpeed = inputSpeed(); + } while (carSpeed == null); + + cars.add(new Car(carName, carSpeed)); + } + + return cars; + } + + private String inputName() { + System.out.println("Введите название машины:"); + String name = scanner.nextLine(); + + if (name.isEmpty()) { + System.out.println("Название не может быть пустым.\nПопробуйте ещё раз...\n"); + return null; + } else { + return name; + } + } + + private Integer inputSpeed() { + System.out.println("Введите скорость машины"); + String speedText = scanner.nextLine(); + + if (!speedText.matches("-?\\d+")) { + System.out.println("Скорость должна быть целым положительным числом.\nПопробуйте ещё раз...\n"); + return null; + } + + Integer speed = Integer.valueOf(speedText); + + if (speed > 250 || speed < 0) { + System.out.println("Скорость должна быть не больше 250 и не меньше 0.\nПопробуйте ещё раз...\n"); + return null; + } else { + return speed; + } + } +} \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..e5b01e2be 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,18 @@ +import java.util.ArrayList; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + CarInputManager inputManager = new CarInputManager(); + ArrayList cars = inputManager.inputCars(); + Race race = new Race(cars); + Car winnerCar = race.getWinner(); + + if (winnerCar == null) { + System.out.println("Нет победителя"); + return; + } + System.out.printf("Самая быстрая машина: %s%n", winnerCar.name); } -} \ 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..2f059a76b --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,25 @@ +import java.util.ArrayList; + +class Race { + private ArrayList cars; + private int durationInHours = 24; + + Race(ArrayList cars) { + this.cars = cars; + } + + Car getWinner() { + if (cars.isEmpty()) { + return null; + } + + Car winner = this.cars.get(0); + for (Car car : cars) { + if (winner.distanceFor(durationInHours) < car.distanceFor(durationInHours)) { + winner = car; + } + } + + return winner; + } +}