diff --git a/settings.gradle b/settings.gradle index 716abf25..be110bf6 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,4 +12,4 @@ dependencyResolutionManagement { mavenCentral() } } -rootProject.name = "BillCalculator" +rootProject.name = "Java-Module-Project" diff --git a/src/main/java/Automobile.java b/src/main/java/Automobile.java new file mode 100644 index 00000000..590322f7 --- /dev/null +++ b/src/main/java/Automobile.java @@ -0,0 +1,10 @@ +public class Automobile { + + String name; + int speed; + + public Automobile(String name, int speed) { + this.name = name; + this.speed = speed; + } +} \ No newline at end of file diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java deleted file mode 100644 index 2fbc00dd..00000000 --- a/src/main/java/Calculator.java +++ /dev/null @@ -1,22 +0,0 @@ -class Calculator { - - int friendsCount; - - String cart = "Добавленные товары:"; - double totalPrice = 0; - - Calculator(int friendsCount) { - this.friendsCount = friendsCount; - } - - void addItem(Item item) { - totalPrice += item.price; - cart = cart + "\n" + item.name; - - System.out.println(item.name + " в корзине"); - } - - double divideSum() { - return totalPrice / friendsCount; - } -} diff --git a/src/main/java/Formatter.java b/src/main/java/Formatter.java deleted file mode 100644 index 3f915b75..00000000 --- a/src/main/java/Formatter.java +++ /dev/null @@ -1,17 +0,0 @@ -public class Formatter { - - String formatValue(double price) { - double roundedValue = Math.floor(price); - if (roundedValue == 1) { - return "рубль"; - } else if (roundedValue >= 2 && roundedValue <= 4) { - return "рубля"; - } else { - return "рублей"; - } - } - - String roundResult(final double result) { - return String.format("%.2f", result); - } -} diff --git a/src/main/java/Item.java b/src/main/java/Item.java deleted file mode 100644 index fad8a4e9..00000000 --- a/src/main/java/Item.java +++ /dev/null @@ -1,10 +0,0 @@ -class Item { - - String name; - double price; - - Item(String name, double price) { - this.name = name; - this.price = price; - } -} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 11ba5d36..5fe815da 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,49 +1,45 @@ +import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - int friendCount; - while (true) { - System.out.println("На сколько человек необходимо разделить счет?"); - friendCount = scanner.nextInt(); + final int AMOUNT_CARS = 3; + final int MAX_SPEED = 250; + final int MIN_SPEED = 0; - if (friendCount > 1) { - break; - } else if (friendCount == 1) { - System.out.println( - "Нет смысла делить сумму на одного человека. Давайте попробуем ввести другое значение, которое будет больше единицы."); - } else { - System.out.println("Неверное количество друзей. Значение должно быть болье единицы, давайте попробуем еще раз."); - } - } + Scanner scanner = new Scanner(System.in); + System.out.println("Приветствую на гонке «24 часа Ле-Мана»!"); + ArrayList autoList = new ArrayList<>(); - Calculator calculator = new Calculator(friendCount); + for (int i = 0; i < AMOUNT_CARS; i++) { - while (true) { - System.out.println("Введите название товара"); + System.out.println("— Введите название машины №" + (i + 1) + ":"); String name = scanner.next(); - System.out.println("Введите стоимость товара в формате: 'рубли.копейки' [10.45, 11.40]"); - double price = scanner.nextDouble(); - - calculator.addItem(new Item(name, price)); - - System.out.println( - "Хотите добавить еще один товар? Введите любой символ для продолжения, либо 'Завершить' если больше нет товаров для добавления"); - String answer = scanner.next(); - - if (answer.equalsIgnoreCase("Завершить")) { - break; + System.out.println("— Введите скорость машины №" + (i + 1) + " в параметрах от " + MIN_SPEED + " по " + MAX_SPEED + " км/ч:"); + while (true) { + String input = scanner.nextLine(); + if (input.isEmpty()) { + continue; + } + try { + int speed = Integer.parseInt(input); + if (speed >= MIN_SPEED && speed <= MAX_SPEED) { + Automobile auto = new Automobile(name, speed); + autoList.add(auto); + Race.getWinner(auto); + System.out.println("Приветствуем нового учавстника гонки: \n" + autoList.get(i).name + " со скоростью " + autoList.get(i).speed); + break; + } else { + System.out.println("Введена скорость вне допустимого диапозона. Попробуй ещё. \nЯ в тебя верю, на этот раз у тебя обязательно получится!"); + } + } catch (NumberFormatException error) { + System.out.println("Введены некорректное значение скорости. Попробуй ещё. \nЯ в тебя верю, на этот раз у тебя обязательно получится!"); + } } } - - double result = calculator.divideSum(); - Formatter formatter = new Formatter(); - - System.out.println(calculator.cart); - System.out.println("Каждому человеку к оплате: " + formatter.roundResult(result) + " " + formatter.formatValue(result)); + System.out.println("\nПриветствуем победителя гонки: \n" + Race.winner + " проехал " + Race.distance + " км."); } } diff --git a/src/main/java/Race.java b/src/main/java/Race.java new file mode 100644 index 00000000..4e57f668 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,12 @@ +public class Race { + static int distance = 0; + static String winner = ""; + + public static void getWinner(Automobile auto) { + //Дистанция = время (24) * скорость (вводит пользователь) + if (distance < 24 * auto.speed) { + distance = 24 * auto.speed; + winner = auto.name; + } + } +}