From 523ec6567a745feb51b3fc971909f2331040b989 Mon Sep 17 00:00:00 2001 From: Anton Date: 2024年10月18日 15:13:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D0=BE=D0=B2=20Race=20=D0=B8=20Car,=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=BA=D0=BE=D0=B4?= =?UTF-8?q?=20=D0=B2=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=B5=20Main?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 18 ++++++++++++ src/main/java/Main.java | 65 +++++++++++++++++++++++++++++++++++++++-- src/main/java/Race.java | 17 +++++++++++ 3 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 src/main/java/Car.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..39ddc8229 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,18 @@ +public class Car { + String name; + int speed; + + Car(String name, int speed) { + this.name = name; + this.speed = speed; + } + + public String getName() { + return name; + } + + public int calculateDistance() { + return speed * 24; + } + +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..e24442b74 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,67 @@ +import java.util.HashSet; +import java.util.InputMismatchException; +import java.util.Scanner; +import java.util.Set; public class Main { + + final static Scanner scanner = new Scanner(System.in); + public static void main(String[] args) { - System.out.println("Hello world!"); + Car[] cars = new Car[3]; + Set usedNames = new HashSet(); //Здесь будет храниться список введенных названий машин + for (int i = 0; i < 3; i++) { + String carName; + int carSpeed; + + while (true) { + System.out.printf("Введите название машины No%d: ", i + 1); + carName = inputCarName(i); + if (!usedNames.contains(carName)) { + usedNames.add(carName); + break; + } else { + System.out.printf("Машина %s уже существует. Пожалуйста, введите другое название.\n", carName); + } + } + carSpeed = inputCarSpeed(i); + cars[i] = new Car(carName, carSpeed); + } + + Race race = new Race(cars); + Car leader = race.findLeader(); + + System.out.printf("Самая быстрая машина: %s", leader.getName()); + + } + + public static String inputCarName(int i) { + while (true) { + String name = scanner.nextLine().trim(); + if (!name.isEmpty()) { + return name; + } else { + System.out.println("Введено пустое название. Пожалуйста, введите название автомобиля."); + System.out.printf("Введите название машины No%d: ", i + 1); + } + } + } + + public static int inputCarSpeed(int i) { + while (true) { + System.out.printf("Введите скорость машины No%d: ", i + 1); + try { + int speed = scanner.nextInt(); + scanner.nextLine(); + if (speed> 0 && speed <= 250) { + return speed; + } else { + System.out.println("Неправильная скорость"); + } + } catch (InputMismatchException e) { + System.out.println("Ошибка: введено не число"); + scanner.nextLine(); + } + } } -} \ 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..ed5a95ec6 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,17 @@ +public class Race { + private final Car[] cars; + + Race(Car[] cars) { + this.cars = cars; + } + + public Car findLeader() { + Car leader = cars[0]; + for (Car car : cars) { + if (car.calculateDistance()> leader.calculateDistance()) { + leader = car; + } + } + return leader; + } +}

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