From 1f1b7b49b0cd3486c8531c24f9cce70a43cdded2 Mon Sep 17 00:00:00 2001 From: Daria babicheva Date: Mon, 20 Apr 2026 11:49:15 +0300 Subject: [PATCH 1/4] Add new class - Automobile --- src/main/java/Automobile.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/java/Automobile.java diff --git a/src/main/java/Automobile.java b/src/main/java/Automobile.java new file mode 100644 index 000000000..814dfd9e9 --- /dev/null +++ b/src/main/java/Automobile.java @@ -0,0 +1,24 @@ +public class Automobile { + private String name; + private int speed; + + + public Automobile(String name, int speed) { + this.name = name; + this.speed = speed; + } + + + public String getName() { + return name; + } + + public int getSpeed() { + return speed; + } + + + public int calculateDistance() { + return speed * 24; + } +} \ No newline at end of file From 1e3d8293a0e5e4c8704d1d3ba7a491d7b3758318 Mon Sep 17 00:00:00 2001 From: Daria babicheva Date: Mon, 20 Apr 2026 11:51:20 +0300 Subject: [PATCH 2/4] Add new class - Race --- src/main/java/Race.java | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/java/Race.java diff --git a/src/main/java/Race.java b/src/main/java/Race.java new file mode 100644 index 000000000..bc719f9cb --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,23 @@ +public class Race { + private String leaderName; + private int leaderDistance; + + + public Race() { + this.leaderName = ""; + this.leaderDistance = 0; + } + + public void determineLeader(Automobile car) { + int carDistance = car.calculateDistance(); + + if (carDistance > leaderDistance) { + leaderDistance = carDistance; + leaderName = car.getName(); + } + } + + public String getLeaderName() { + return leaderName; + } +} \ No newline at end of file From 6cb8aa2857481c000d61fdc444d6efc7e53f4523 Mon Sep 17 00:00:00 2001 From: Daria babicheva Date: Mon, 20 Apr 2026 11:54:20 +0300 Subject: [PATCH 3/4] the main class is filled in --- src/main/java/Main.java | 85 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..af85461c6 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,89 @@ +import java.util.Scanner; public class Main { + private static final int MIN_SPEED = 0; + private static final int MAX_SPEED = 250; + private static final int NUMBER_OF_CARS = 3; + public static void main(String[] args) { - System.out.println("Hello world!"); + Scanner scanner = new Scanner(System.in); + Race race = new Race(); + + System.out.println("Добро пожаловать на гонку \"24 часа Ле-Мана\"!"); + System.out.println(); + + + for (int i = 1; i <= NUMBER_OF_CARS; i++) { + System.out.println(); + System.out.println("--- Автомобиль №" + i + " ---"); + + + String carName = getValidCarName(scanner, i); + + + int carSpeed = getValidCarSpeed(scanner, i); + + + Automobile car = new Automobile(carName, carSpeed); + race.determineLeader(car); + + System.out.println("Автомобиль \"" + carName + "\" добавлен в гонку!"); + } + + + System.out.println(); + System.out.println("САМАЯ БЫСТРАЯ МАШИНА: " + race.getLeaderName()); + + scanner.close(); + } + + + private static String getValidCarName(Scanner scanner, int carNumber) { + String carName = ""; + boolean isValid = false; + + while (!isValid) { + System.out.print("Введите название машины №" + carNumber + ": "); + carName = scanner.nextLine().trim(); + + // Проверка, что название не пустое + if (carName.isEmpty()) { + System.out.println("Ошибка: Название автомобиля не может быть пустым!"); + } else { + isValid = true; + } + } + + return carName; + } + + + private static int getValidCarSpeed(Scanner scanner, int carNumber) { + int speed = 0; + boolean isValid = false; + + while (!isValid) { + System.out.print("Введите скорость машины №" + carNumber + " (1-250 км/ч): "); + + // Проверяем, что введено целое число + if (scanner.hasNextInt()) { + speed = scanner.nextInt(); + scanner.nextLine(); // Очистка буфера + + // Проверка диапазона скорости + if (speed > MIN_SPEED && speed <= MAX_SPEED) { + isValid = true; + } else { + System.out.println("Неправильная скорость! Скорость должна быть от " + + (MIN_SPEED + 1) + " до " + MAX_SPEED + " км/ч."); + } + } else { + // Если введено не число + String invalidInput = scanner.nextLine(); + System.out.println("Ошибка: \"" + invalidInput + "\" - это не число! Введите целое число."); + } + } + + return speed; } } \ No newline at end of file From a1ec06c899338c219186a8f2e7d55d25cb0e29c7 Mon Sep 17 00:00:00 2001 From: Daria babicheva Date: Fri, 24 Apr 2026 20:11:34 +0300 Subject: [PATCH 4/4] new update --- src/main/java/Automobile.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/main/java/Automobile.java b/src/main/java/Automobile.java index 814dfd9e9..97d0fc3a0 100644 --- a/src/main/java/Automobile.java +++ b/src/main/java/Automobile.java @@ -1,23 +1,19 @@ public class Automobile { - private String name; - private int speed; - + private final String name; + private final int speed; + // Конструктор public Automobile(String name, int speed) { this.name = name; this.speed = speed; } - + // Геттеры public String getName() { return name; } - public int getSpeed() { - return speed; - } - - + // Метод для расчета дистанции за 24 часа public int calculateDistance() { return speed * 24; }