From e1f6893023e1e00e765909b127129a7ab6ece3d6 Mon Sep 17 00:00:00 2001 From: s-buvaka Date: Wed, 27 Jul 2022 23:03:27 +0300 Subject: [PATCH 1/3] Remove classes --- src/main/java/Calculator.java | 22 ---------------- src/main/java/Formatter.java | 17 ------------- src/main/java/Item.java | 10 -------- src/main/java/Main.java | 47 +++-------------------------------- 4 files changed, 3 insertions(+), 93 deletions(-) delete mode 100644 src/main/java/Calculator.java delete mode 100644 src/main/java/Formatter.java delete mode 100644 src/main/java/Item.java 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..a9198c43 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,49 +1,8 @@ -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(); - - if (friendCount > 1) { - break; - } else if (friendCount == 1) { - System.out.println( - "Нет смысла делить сумму на одного человека. Давайте попробуем ввести другое значение, которое будет больше единицы."); - } else { - System.out.println("Неверное количество друзей. Значение должно быть болье единицы, давайте попробуем еще раз."); - } - } - - Calculator calculator = new Calculator(friendCount); - - while (true) { - System.out.println("Введите название товара"); - 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; - } - } - - double result = calculator.divideSum(); - Formatter formatter = new Formatter(); - - System.out.println(calculator.cart); - System.out.println("Каждому человеку к оплате: " + formatter.roundResult(result) + " " + formatter.formatValue(result)); + // ваш код начнется здесь + // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости + System.out.println("Привет Мир"); } } From c521234c876be18b465b2fd45ef8a71d814fb7a9 Mon Sep 17 00:00:00 2001 From: s-buvaka Date: Wed, 27 Jul 2022 23:13:52 +0300 Subject: [PATCH 2/3] Change project name --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" From de63cd14b5c56507109b1ad3add3b86d53ac3c74 Mon Sep 17 00:00:00 2001 From: aurilaus Date: Thu, 27 Jun 2024 16:20:28 +0300 Subject: [PATCH 3/3] HomeWork #1 --- src/main/java/Main.java | 13 +++- src/main/java/constructor/CarConstructor.java | 30 +++++++++ src/main/java/constructor/Race.java | 62 +++++++++++++++++++ src/main/java/models/Car.java | 11 ++++ 4 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 src/main/java/constructor/CarConstructor.java create mode 100644 src/main/java/constructor/Race.java create mode 100644 src/main/java/models/Car.java diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c43..9bf5282b 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,15 @@ +import constructor.Race; +import constructor.CarConstructor; + public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + CarConstructor constructor = new CarConstructor(); + Race race = new Race(constructor); + while (constructor.carsSize() < 3) { + race.prepare(); + } + race.getFasterCar(); } + } diff --git a/src/main/java/constructor/CarConstructor.java b/src/main/java/constructor/CarConstructor.java new file mode 100644 index 00000000..cf2db918 --- /dev/null +++ b/src/main/java/constructor/CarConstructor.java @@ -0,0 +1,30 @@ +package constructor; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import models.Car; + +public class CarConstructor { + + private final Set cars = new HashSet<>(); + + public boolean addCar(String name, int speed) { + Car newCar = new Car(name, speed); + if (cars.stream().anyMatch(car -> car.name.equals(name))) { + System.out.println("Автомобиль с именем '" + name + "' уже существует."); + return false; + } + return cars.add(newCar); + + } + + public int carsSize() { + return cars.size(); + } + + public Set getCars() { + return Collections.unmodifiableSet(cars); + } +} diff --git a/src/main/java/constructor/Race.java b/src/main/java/constructor/Race.java new file mode 100644 index 00000000..6ba25940 --- /dev/null +++ b/src/main/java/constructor/Race.java @@ -0,0 +1,62 @@ +package constructor; + +import java.util.Scanner; + +import models.Car; + +public class Race { + private static final int MAX_SPEED = 250; + private static final int MIN_SPEED = 0; + private static final int HOURS_IN_DAY = 24; + + private final CarConstructor constructor; + private final Scanner scanner; + + public Race(CarConstructor constructor) { + this.constructor = constructor; + this.scanner = new Scanner(System.in); + } + + public void prepare() { + String name = carName(); + int speed = carSpeed(); + constructor.addCar(name, speed); + } + + private String carName() { + System.out.println(formatMessage("- Введите название машины №%d")); + return scanner.next(); + } + + private int carSpeed() { + while (true) { + System.out.println(formatMessage("- Введите скорость машины №%d")); + try { + int speed = Integer.parseInt(scanner.next()); + if (speed >= MIN_SPEED && speed <= MAX_SPEED) { + return speed; + } else { + System.out.println("- Неправильная скорость."); + } + } catch (NumberFormatException e) { + System.out.println("- Пожалуйста, введите целое число."); + } + } + } + + private String formatMessage(String message) { + return String.format(message, constructor.carsSize() + 1); + } + + public void getFasterCar() { + Car fasterCar = constructor.getCars().stream() + .max((c1, c2) -> Integer.compare(c1.speed * HOURS_IN_DAY, c2.speed * HOURS_IN_DAY)) + .orElse(null); + + if (fasterCar != null) { + System.out.printf("- Самая быстрая машина: %s%n", fasterCar.name); + } else { + System.out.println("- Нет машин в списке."); + } + } +} diff --git a/src/main/java/models/Car.java b/src/main/java/models/Car.java new file mode 100644 index 00000000..4f34f760 --- /dev/null +++ b/src/main/java/models/Car.java @@ -0,0 +1,11 @@ +package models; + +public class Car { + public String name; + public int speed; + + public Car(String name, int speed) { + this.name = name; + this.speed = speed; + } +}