diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..30702796e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,12 @@ +import java.util.ArrayList; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + System.out.println("\nВведите названия трех гоночных автомобилей и их скорость.\n"); + + int countOfRacingCars = 3; + + ArrayList listRacingCars = RaceUtils.getAllRacingCars(countOfRacingCars); + RaceUtils.getRaceWinner(listRacingCars); } } \ No newline at end of file diff --git a/src/main/java/RaceUtils.java b/src/main/java/RaceUtils.java new file mode 100644 index 000000000..afe45b9d0 --- /dev/null +++ b/src/main/java/RaceUtils.java @@ -0,0 +1,96 @@ +import java.util.ArrayList; +import java.util.Scanner; + +public class RaceUtils { + + private static final String inputMessageRacingCarName = + "Введите название гоночного автомобиля No%d: "; + private static final String inputMessageRacingCarSpeed = + "Введите скорость гоночного автомобиля No%d: "; + private static final String alertMessageSpeedRange = + "Скорость автомобиля должна быть указана в диапазоне от 1 до 250 км/ч"; + + private static RacingCar setRacingCarNameAndSpeed(int carNumber) { + String racingCarName = setRacingCarName(carNumber); + int racingCarSpeed = setRacingCarSpeed(carNumber); + + System.out.print("\n"); + + return new RacingCar(racingCarName, racingCarSpeed); + } + + private static String setRacingCarName(int carNumber) { + String racingCarName = ""; + boolean racingCarSpeedCheck = true; + + System.out.printf(inputMessageRacingCarName, carNumber); + while (racingCarSpeedCheck) { + Scanner scannerRacingCarName = new Scanner(System.in); + racingCarName = scannerRacingCarName.nextLine(); + + if (racingCarName.isEmpty()) { + System.out.println("Название гоночного автомобиля не должно быть пустым!"); + System.out.printf(inputMessageRacingCarName, carNumber); + } else { + racingCarSpeedCheck = false; + } + } + + return racingCarName; + } + + private static int setRacingCarSpeed(int carNumber) { + int racingCarSpeed = 0; + boolean racingCarSpeedCheck = true; + + System.out.printf(inputMessageRacingCarSpeed, carNumber); + while (racingCarSpeedCheck) { + Scanner scannerRacingCarSpeed = new Scanner(System.in); + + if (scannerRacingCarSpeed.hasNextInt()) { + racingCarSpeed = scannerRacingCarSpeed.nextInt(); + + if (racingCarSpeed> 0 && racingCarSpeed <= 250) { + racingCarSpeedCheck = false; + } else { + System.out.println(alertMessageSpeedRange); + System.out.printf(inputMessageRacingCarSpeed, carNumber); + } + } else { + System.out.println(alertMessageSpeedRange); + System.out.printf(inputMessageRacingCarSpeed, carNumber); + } + } + + return racingCarSpeed; + } + + public static ArrayList getAllRacingCars(int countOfRacingCars) { + int minCountOfRacingCars = 1; + + ArrayList listRacingCars = new ArrayList(); + + do { + listRacingCars.add(setRacingCarNameAndSpeed(minCountOfRacingCars)); + minCountOfRacingCars++; + } while (minCountOfRacingCars <= countOfRacingCars); + + return listRacingCars; + } + + public static void getRaceWinner(ArrayList listRacingCars) { + int hoursOfRace = 24; + int finalDistance; + RacingCar winner = listRacingCars.get(0); + + for (RacingCar raceCar : listRacingCars) { + finalDistance = raceCar.speed * hoursOfRace; + + if (finalDistance> winner.speed * hoursOfRace) { + winner = raceCar; + } + } + + System.out.println("Самая быстрая машина: " + winner.name); + } +} diff --git a/src/main/java/RacingCar.java b/src/main/java/RacingCar.java new file mode 100644 index 000000000..eaca06fae --- /dev/null +++ b/src/main/java/RacingCar.java @@ -0,0 +1,9 @@ +public class RacingCar { + String name; + int speed; + + RacingCar(String name, int speed) { + this.name = name; + this.speed = speed; + } +}

AltStyle によって変換されたページ (->オリジナル) /