From 4657535edcba31afaa6397734c69a5eb4d09ebea Mon Sep 17 00:00:00 2001 From: "l.ansperi" Date: Wed, 26 Jun 2024 20:57:46 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= =?UTF-8?q?=D0=B0=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 9 ++++++++ src/main/java/Main.java | 48 ++++++++++++++++++++++++++++++++++++++--- src/main/java/Race.java | 36 +++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 3 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 00000000..1ec479c7 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,9 @@ +public class Car { + String name; + int speed; + + public Car(String name, int speed) { + this.name = name; + this.speed = speed; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c43..41a66dd1 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,50 @@ +import java.util.ArrayList; +import java.util.Scanner; + public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + Scanner scanner = new Scanner(System.in); + Race race = new Race(); + + // + System.out.println("Перед гонкой зарегистрируйте автомобили"); + + for (int i = 0; i < 3; i++) { + String carName = ""; + int carSpeed = -1; + + while (carName.isEmpty()) { + System.out.print("Название автомобиля #" + (i + 1) + ": "); + carName = scanner.next(); + } + + while (true) { + System.out.print("Скорость автомобиля #" + (i + 1) + ": "); + carSpeed = scanner.nextInt(); + + if (carSpeed < 0 || carSpeed > 250) { + System.out.println("Скорость автомобиля должна быть в значении от 0 до 250"); + } else { + break; + } + } + + race.Registration(new Car(carName, carSpeed)); + } + + System.out.println(); + System.out.println("Регистрация автомобилей завершена, старт гонки..."); + + //Запускаем гонку на 24 часа + race.Start(24); + + Car winner = race.getWinner(); + + //Выводим победителя + System.out.println(); + System.out.println("Самая быстрая машина: " + winner.name + ", со скоростью " + winner.speed); + } } diff --git a/src/main/java/Race.java b/src/main/java/Race.java new file mode 100644 index 00000000..fe391ef9 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,36 @@ +import java.util.ArrayList; + +public class Race { + + Car winner = null; + ArrayList cars = new ArrayList<>(); + + private int calcDistance(Car car, int hours) { + return car.speed * hours; + } + + public void Registration(Car car) { + cars.add(car); + } + + public void Start(int raceHours) { + + winner = null; + for (int i = 0; i < cars.size(); i++) { + Car car = cars.get(i); + if (winner == null) { + winner = car; + } else { + if (calcDistance(car, raceHours) > calcDistance(winner, raceHours)) { + winner = car; + } + } + } + + } + + public Car getWinner() { + return winner; + } + +} From 100cff1ca0fbe0160a3526023e55eb0ab2ff658f Mon Sep 17 00:00:00 2001 From: "l.ansperi" Date: Sat, 29 Jun 2024 12:00:11 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D0=B7=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 41a66dd1..e4b40bba 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -17,21 +17,23 @@ public static void main(String[] args) { while (carName.isEmpty()) { System.out.print("Название автомобиля #" + (i + 1) + ": "); - carName = scanner.next(); + carName = scanner.nextLine(); } while (true) { System.out.print("Скорость автомобиля #" + (i + 1) + ": "); - carSpeed = scanner.nextInt(); + carSpeed = scanner.hasNextInt() ? scanner.nextInt() : -1; if (carSpeed < 0 || carSpeed > 250) { System.out.println("Скорость автомобиля должна быть в значении от 0 до 250"); + scanner.next(); } else { break; } } race.Registration(new Car(carName, carSpeed)); + scanner.nextLine(); } System.out.println();