From b0e6762f7a565f3e53613ad865b566e8eac37ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=20=D0=9B=D1=8C=D0=B2=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Wed, 18 Sep 2024 17:26:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 13 +++++++ src/main/java/CarInputManager.java | 57 ++++++++++++++++++++++++++++++ src/main/java/Main.java | 16 +++++++-- src/main/java/Race.java | 25 +++++++++++++ 4 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 src/main/java/Car.java create mode 100644 src/main/java/CarInputManager.java create mode 100644 src/main/java/Race.java 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; + } +}