Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 107 additions & 1 deletion src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,112 @@
import java.util.Scanner;

// Класс Автомобилей
class Car {
private String name;
private int speed;

public Car(String name, int speed) {
this.name = name;
this.speed = speed;
}

public String getName() {
return name;
}

public int getSpeed() {
return speed;
}

public int calculateDistance() {
return 24 * speed;
}
}

// Класс Гонка
class Race {
private String leaderName;
private int leaderDistance;

public Race() {
this.leaderName = "";
this.leaderDistance = 0;
}

public void determineLeader(Car car) {
int carDistance = car.calculateDistance();
if (carDistance > leaderDistance) {
leaderName = car.getName();
leaderDistance = carDistance;
}
}

public String getLeader() {
return leaderName;
}
}

// Главный класс
public class Main {
private static Scanner scanner = new Scanner(System.in);

public static void main(String[] args) {
System.out.println("Hello world!");
Race race = new Race();

for (int i = 1; i <= 3; i++) {
System.out.println("--- Автомобиль №" + i + " ---");

// Ввод названия автомобиля
String carName = inputCarName(i);

// Ввод скорости
int carSpeed = inputCarSpeed(i);

// Создание автомобиля и определение лидера
Car car = new Car(carName, carSpeed);
race.determineLeader(car);

System.out.println(); // строка для читаемости
}

// Вывод результата
String winner = race.getLeader();
System.out.println("Самая быстрая машина: " + winner);

scanner.close();
}

// Метод для ввода названия автомобиля
private static String inputCarName(int carNumber) {
String carName = "";
while (carName.isEmpty()) {
System.out.print("Введите название машины №" + carNumber + ": ");
carName = scanner.nextLine().trim();
if (carName.isEmpty()) {
System.out.println("Название машины не может быть пустым!");
}
}
return carName;
}

// Метод для ввода скорости автомобиля
private static int inputCarSpeed(int carNumber) {
int carSpeed = 0;
while (true) {
System.out.print("Введите скорость машины №" + carNumber + " (1-250 км/ч): ");
if (scanner.hasNextInt()) {
carSpeed = scanner.nextInt();
scanner.nextLine(); // очистка буфера
if (carSpeed > 0 && carSpeed <= 250) {
break;
} else {
System.out.println("Неправильная скорость! Скорость должна быть от 1 до 250 км/ч.");
}
} else {
System.out.println("Ошибка! Введите целое число.");
scanner.nextLine(); // очистка буфера при ошибке
}
}
return carSpeed;
}
}