From a42898302b8105d4e7a10406485952735f300706 Mon Sep 17 00:00:00 2001 From: Yegor Date: Sun, 30 Oct 2022 19:42:14 +0600 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BC=D0=B0=D1=88=D0=BD=D0=B5?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 23 +++++++++++++++++++ src/main/java/Main.java | 33 +++++++++++++++++++++++---- src/main/java/Product.java | 43 +++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 src/main/java/Calculator.java create mode 100644 src/main/java/Product.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 0000000..d607838 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,23 @@ +public class Calculator { + float priceForPerson; + String outputCalculate; + String rub; + + void calculate(int persons, float totalPrice) { + priceForPerson = totalPrice/persons; + } + + void correctOutput() { + if (priceForPerson%10 == 1) { + rub = "рубль"; + } + else if (priceForPerson%10 == 2 && priceForPerson%10 == 3 && priceForPerson%10 == 4){ + rub = "рубля"; + } + else { + rub = "рублей"; + } + outputCalculate = String.format("%.2f", priceForPerson); + System.out.println("Каждый человек должен заплатить по: " + outputCalculate + " " + rub); + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..10cc3bc 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,33 @@ +import java.util.Scanner; + public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + Scanner scanner = new Scanner(System.in); + System.out.println("На скольких человек необходимо разделить счёт?"); + while (!scanner.hasNextInt()){ // Проверяем, ввели ли значение типа int + scanner.next(); + System.out.println("Вы ввели неверное значение, попробуйте еще раз: "); + } + int amountOfPersons = scanner.nextInt(); + while (amountOfPersons < 2) { // если значенние 0,1 или отрицательное, запрашиваем ввод снова + System.out.println("В таком случае нет смысла считать :\nВведите значение еще раз: "); + while (!scanner.hasNextInt()) { + scanner.next(); + } + amountOfPersons = scanner.nextInt(); + } + System.out.println("Кол-во персон: " + amountOfPersons); + + Product products = new Product(); + products.saveProducts(); + Calculator calculator = new Calculator(); + calculator.calculate(amountOfPersons, products.totalSumOfProducts); + calculator.correctOutput(); + + } + } -} + + + diff --git a/src/main/java/Product.java b/src/main/java/Product.java new file mode 100644 index 0000000..6b9b18f --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,43 @@ +import java.util.Scanner; + +public class Product { + Scanner scanner = new Scanner(System.in); + float priceOfProduct; // переменная отвечающая за стоимость каждого товара + float totalSumOfProducts; // переменная отвечающая за суммирование + String nameOfProduct; // строка содержащая название продукта + String totalProducts = ""; // строка сохраняющая все продукты + String endOfCalculate; // строка для завершения бесконечного цикла + + void saveProducts() { + while(true) { + System.out.println("Введите название товара: "); + nameOfProduct = scanner.next(); + totalProducts = totalProducts.concat(nameOfProduct + "\n"); + System.out.println("Введите стоимость товара в формате 'рубли.копейки' [10.45, 11.40]"); + testFloatPrice(); + totalSumOfProducts += priceOfProduct; + System.out.println("Товар успешно добавлен"); + System.out.println("Желаете ли Вы добавить еще 1 товар? (Введите 'Завершить' для завершения программы, любой другой ввод продолжит выполнение программы)"); + endOfCalculate = scanner.next(); + if (endOfCalculate.equalsIgnoreCase("Завершить")) + break; + } + System.out.println("Итоговая сумма всех товаров: " + totalSumOfProducts); + System.out.println("Добавленные товары:\n" + totalProducts); + } + + void testFloatPrice() { // проверка значения float + while(!scanner.hasNextFloat()) { + System.out.println("Неверный формат, попробуйте еще раз:"); + scanner.next(); + } + priceOfProduct = scanner.nextFloat(); + while(priceOfProduct < 0) { + System.out.println("Значение меньше нуля, попробуйте еще раз:"); + while (!scanner.hasNextFloat()) { + scanner.next(); + } + priceOfProduct = scanner.nextFloat(); + } + } +}