diff --git a/src/main/java/Car.java b/src/main/java/Car.java new file mode 100644 index 000000000..d2b69873c --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,14 @@ + + +public class Car { + + String name; + int speed; + +public Car (String carName, int carSpeed){ //чтобы мог вызывать в других классах22 + this.name = carName; + this.speed = carSpeed; +} + + +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..65fc6bcaa 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,134 @@ +import java.util.Scanner; + public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + Scanner scanner = new Scanner(System.in); + Car car1 = new Car(null, 0); // создаем значения из класса Car + Car car2 = new Car(null, 0); + Car car3 = new Car(null, 0); + Race race24 = new Race(); // чтобы можно было делать ссылки на класс Race + +// Машина номер 1 + System.out.println("Введите название машины номер 1"); + + while (true) { + String inputName = scanner.nextLine(); + if (inputName.trim().isEmpty()){ + System.out.println ("Поле не может быть пустым"); + } else { + car1.name = inputName; + break; + } + } + + + System.out.println("Введите скорость машины номер 1"); + + while (true){ + if (scanner.hasNextInt()){ + int tempSpeed = scanner.nextInt(); + String tail = scanner.nextLine(); // если скорость введена как 250 250, забирается " 250" + if (tail.trim().isEmpty()) { // убираем пробелы из tail и проверяем: был ли tempSpeed введен одним числом или несколькими (если одним, то после числа ничего не осталось, если двумя и более, то минимум 1 число останется) + if (tempSpeed >= 0 && tempSpeed <= 250) { + car1.speed = tempSpeed; + + break; + } else { + + System.out.println("Некорректная скорость. Попробуйте снова. Скорость от 0 до 250"); + + } + } else { + System.out.println("Некорректная скорость. Попробуйте снова. Должно быть только одно число"); + } + } else { + scanner.nextLine(); + System.out.println("Некорректная скорость. Попробуйте снова. Должно быть введено целое число"); + } + } + + race24.calculateDistance(car1); //Считаем дистанцию и смотрим, лидер или нет + + +// Машина номер 2 + System.out.println("Введите название машины номер 2"); + while (true) { + String inputName = scanner.nextLine(); + if (inputName.trim().isEmpty()){ + System.out.println ("Поле не может быть пустым"); + } else if (car1.name.equalsIgnoreCase((inputName))) { + System.out.println("Такая машина уже учавствует в гонке."); + } else { + car2.name = inputName; + break; + } + } + + + System.out.println("Введите скорость машины номер 2"); + while (true){ + if (scanner.hasNextInt()){ + int tempSpeed = scanner.nextInt(); + String tail = scanner.nextLine(); // если скорость введена как 250 250, забирается " 250" + if (tail.trim().isEmpty()) { // убираем пробелы из tail и проверяем: был ли tempSpeed введен одним числом или несколькими (если одним, то после числа ничего не осталось, если двумя и более, то минимум 1 число останется) + if (tempSpeed >= 0 && tempSpeed <= 250) { + car2.speed = tempSpeed; + break; + } else { + + System.out.println("Некорректная скорость. Попробуйте снова. Скорость от 0 до 250"); + } + } else { + System.out.println("Некорректная скорость. Попробуйте снова. Должно быть только одно число"); + } + } else { + scanner.nextLine(); + System.out.println("Некорректная скорость. Попробуйте снова. Должно быть введено целое число"); + } + } + race24.calculateDistance(car2);//Считаем дистанцию и смотрим, лидер или нет + + // Машина номер 3 + System.out.println("Введите название машины номер 3"); + while (true) { + String inputName = scanner.nextLine(); + if (inputName.trim().isEmpty()){ + System.out.println ("Поле не может быть пустым"); + } else if (car1.name.equalsIgnoreCase((inputName)) || car2.name.equalsIgnoreCase((inputName))) { + System.out.println("Такая машина уже учавствует в гонке."); + } else { + car3.name = inputName; + break; + } + } + + System.out.println("Введите скорость машины номер 3"); + while (true){ + if (scanner.hasNextInt()){ + int tempSpeed = scanner.nextInt(); + String tail = scanner.nextLine(); // если скорость введена как 250 250, забирается " 250" + if (tail.trim().isEmpty()) { // убираем пробелы из tail и проверяем: был ли tempSpeed введен одним числом или несколькими (если одним, то после числа ничего не осталось, если двумя и более, то минимум 1 число останется) + if (tempSpeed >= 0 && tempSpeed <= 250) { + car3.speed = tempSpeed; + break; + } else { + + System.out.println("Некорректная скорость. Попробуйте снова. Скорость от 0 до 250"); + + } + } else { + System.out.println("Некорректная скорость. Попробуйте снова. Должно быть только одно число"); + } + } else { + scanner.nextLine(); + System.out.println("Некорректная скорость. Попробуйте снова. Должно быть введено целое число"); + } + } + race24.calculateDistance(car3);//Считаем дистанцию и смотрим, лидер или нет + + race24.printWinner(); // объявляем лидера } -} \ 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..f44a900d8 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,28 @@ +import java.util.ArrayList; + +public class Race { + + ArrayList winners = new ArrayList<>(); + int maxDistance = 0; // чтобы записывать дистанцию лидера и сравнивать + + public void calculateDistance (Car car){ + int distance = car.speed * 24; //считаем дистанцию + if (distance > maxDistance) { + maxDistance = distance; // + winners.clear(); // если появляется новый лидер, старого удаляем + winners.add(car.name); // добавляем в список текущего лидера + } else if (distance == maxDistance){ + winners.add(car.name); // если кто-то справился также как и лидер, добавляем в список + } + } + public void printWinner(){ + System.out.println("Самая быстрая машина: "); // метод, который выдает победителя + + for (String winner : winners){ + System.out.println(winner); + } + } + + } + +