From 49ade1ffa10588b1b278b349d09e523cb85790a7 Mon Sep 17 00:00:00 2001 From: Siustoster Date: Thu, 5 Feb 2026 17:30:10 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BD=D0=BE=D0=B9=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B5?= =?UTF-8?q?=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 34 ++++++++++++++++++++++ src/main/java/Main.java | 64 ++++++++++++++++++++++++++++++++++++++++- src/main/java/Race.java | 23 +++++++++++++++ 3 files changed, 120 insertions(+), 1 deletion(-) 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..a0a4c6582 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,34 @@ +public class Car { + private int speed; + private String name; + private int distance; + + Car(int speed, String name) { + this.speed = speed; + this.name = name; + } + + public int getSpeed() { + return speed; + } + + public void setSpeed(int speed) { + this.speed = speed; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getDistance() { + return distance; + } + + public void setDistance(int distance) { + this.distance = distance; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..caaf85375 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,68 @@ +import static java.lang.Integer.parseInt; + +import java.util.ArrayList; +import java.util.Scanner; public class Main { + public static Scanner scanner = new Scanner(System.in); + public static void main(String[] args) { - System.out.println("Hello world!"); + System.out.println("Добро пожаловать на 24 часа Ле-Мана!"); + Race race; + ArrayList racersList = new ArrayList<>(); + String needAnotherRaceStr; + boolean bNeedAnotherRace; + while (true) { + racersList.clear(); + while (true) { + System.out.println("Введите количество учавствующих в заезде автомобилей:"); + int racersNum = scanner.nextInt(); + if (racersNum < 1) + System.out.println("Некорректное число участников заезда"); + else { + for (int i = 0; i < racersNum; i++) { + racersList.add(appendCar(i)); + } + break; + } + } + race = new Race(racersList); + race.startRace(); + race.getResult(); + while (true) { + System.out.println("Желаете провести еще один заезд? Да/Нет"); + needAnotherRaceStr = scanner.next(); + if (needAnotherRaceStr.equals("Да")) { + bNeedAnotherRace = true; + break; + } else if (needAnotherRaceStr.equals("Нет")) { + bNeedAnotherRace = false; + break; + } else System.out.println("Некорректный ввод"); + } + if (!bNeedAnotherRace) + break; + } + } + + public static Car appendCar(int number) { + String carName; + String carSpeed; + while (true) { + System.out.println("Введите название автомобиля №" + (number + 1)); + carName = scanner.next(); + if (carName.isBlank()) { + System.out.println("Некорректное название автомобиля"); + } else break; + } + while (true) { + System.out.println("Введите скорость автомобиля №" + (number + 1)); + carSpeed = scanner.next(); + if (carSpeed.contains(".") || carSpeed.contains(",") || parseInt(carSpeed) < 0 + || parseInt(carSpeed) > 250) { + System.out.println("Некорректная скорость"); + } else break; + } + return new Car(parseInt(carSpeed), carName); } } \ 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..105d7a1e6 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,23 @@ +import java.util.ArrayList; +import java.util.Comparator; + +public class Race { + private ArrayList racers = new ArrayList<>(); + + Race(ArrayList Racers) { + this.racers.addAll(Racers); + } + + public void startRace() { + System.out.println("Начинаем заезд!"); + for (Car car : racers) { + car.setDistance(car.getSpeed() * 24); + } + } + + public void getResult() { + racers.sort(Comparator.comparingInt(Car::getDistance)); + System.out.println("Победитель заезда: " + racers.getLast().getName() + ", проехавший " + + racers.getLast().getDistance() + " за 24 часа"); + } +} From 1f5b713f3876bc7c6a1d20c375de2d96c9cc3b43 Mon Sep 17 00:00:00 2001 From: Siustoster Date: Thu, 5 Feb 2026 18:51:52 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BD=D0=BE=D0=B9=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B5?= =?UTF-8?q?=20=E2=84=961=20=D0=BF=D0=BE=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB?= =?UTF-8?q?=D1=8C=D1=82=D0=B0=D1=82=D0=B0=D0=BC=20=D1=80=D0=B5=D0=B2=D1=8C?= =?UTF-8?q?=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index caaf85375..2a1acf68e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -16,15 +16,17 @@ public static void main(String[] args) { racersList.clear(); while (true) { System.out.println("Введите количество учавствующих в заезде автомобилей:"); - int racersNum = scanner.nextInt(); - if (racersNum < 1) - System.out.println("Некорректное число участников заезда"); - else { - for (int i = 0; i < racersNum; i++) { - racersList.add(appendCar(i)); + String racersNum = scanner.next(); + if (racersNum.matches("-?\\d+")) { + if (parseInt(racersNum) > 0) { + for (int i = 0; i < parseInt(racersNum); i++) { + racersList.add(appendCar(i)); + } + break; + } else { + System.out.println("Некорректное число участников заезда"); } - break; - } + } else System.out.println("Некорректное число участников заезда"); } race = new Race(racersList); race.startRace(); @@ -56,12 +58,13 @@ public static Car appendCar(int number) { } else break; } while (true) { - System.out.println("Введите скорость автомобиля №" + (number + 1)); + System.out.println("Введите скорость автомобиля №" + (number + 1) + " в диапазоне от 0 до 250 км\\ч"); carSpeed = scanner.next(); - if (carSpeed.contains(".") || carSpeed.contains(",") || parseInt(carSpeed) < 0 - || parseInt(carSpeed) > 250) { - System.out.println("Некорректная скорость"); - } else break; + if (carSpeed.matches("-?\\d+")) { + if (parseInt(carSpeed) >= 0 && parseInt(carSpeed) <= 250) { + break; + } else System.out.println("Некорректная скорость"); + } else System.out.println("Некорректная скорость"); } return new Car(parseInt(carSpeed), carName); }