From 939e84fb6eb4c87fb266d5ea5a818e0370d3892c Mon Sep 17 00:00:00 2001 From: Ger Date: Sun, 30 Oct 2022 22:49:45 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=9D=D0=B5=D0=B4=D0=B5=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BC=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B8=20=D0=B2?= =?UTF-8?q?=D0=BE=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 51 +++++++++++++++++++++++++++++++++++ src/main/java/Main.java | 12 ++++++--- src/main/java/Persons.java | 19 +++++++++++++ 3 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 src/main/java/Calculator.java create mode 100644 src/main/java/Persons.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 0000000..4cadc86 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,51 @@ +import java.util.Scanner; + +public class Calculator { + String products = "\n"; //Аккумулируем товары + String prodName; //Наименование 1 шт из сканера + String exit = "завершить"; // Команда прерывания + String exitMessage = "Программа завершена"; // Сообщение после прерывания + double price = 0.00; //цена 1 шт вводимая пользователем + double sum = 0.00; // сумма + int countProducts; // Количество введенных товаров + + public void consoleProducts() { + Scanner scanner = new Scanner(System.in); + while (true) { + System.out.printf("Введите название товара или '%s' для выхода\n", exit); // эта строка юзается для первого и последующих запрсов ввода товаров + prodName = scanner.next(); + if (prodName.equalsIgnoreCase(exit)) { + System.out.println(exitMessage); + break; + } + while (true) { + System.out.println("Введите стоимость товара в формате рубли.копейки. Например: 10,45"); + price = scanner.nextDouble(); + if (price > 0.00) { + countProducts++; + products = products + prodName + " "; + sum += price; + break; + } else { + System.out.println("Ошибка ввода стоимости"); + } + } + System.out.println("Товар успешно добавлен."); + } + double bill = sum / Main.persons; + System.out.printf("Введены следующие товары, в количестве %d шт.:", countProducts); + System.out.print(products + "\n"); + System.out.println("Сумма на одного человека: " + String.format("%.2f", bill) + " " + rubles(bill)); + } + public String rubles(double a) { + int rub = (int) Math.floor(a); + if (rub % 100 > 5 && rub <= 20) { + return "рублей"; + } else if (rub % 10 == 1) { + return "рубль"; + } else if (rub % 10 > 1 && rub % 10 < 5) { + return "рубля"; + } + return "рублей"; + } +} \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..9f28bae 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,12 @@ public class Main { + public static int persons; + public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + Persons.enterPersons(); + + Calculator calculator = new Calculator(); + calculator.consoleProducts(); } -} +} \ No newline at end of file diff --git a/src/main/java/Persons.java b/src/main/java/Persons.java new file mode 100644 index 0000000..41ce5f8 --- /dev/null +++ b/src/main/java/Persons.java @@ -0,0 +1,19 @@ +import java.util.Scanner; + +public class Persons { + + public static void enterPersons() { + Scanner scanner = new Scanner(System.in); + System.out.println("На скольких человек разделить счёт?\nВведите количество посетителей от 2 до 1000"); + + while (true) { // Запускаем бесконечный цикл + Main.persons = scanner.nextInt(); + + if (Main.persons > 1 && Main.persons < 1000) { + System.out.printf("Введено %d посетителей\n", Main.persons); + break; // Выходим из цикла + } + System.out.println("Ошибка ввода. Попробуйте ещё раз."); + } + } +} \ No newline at end of file From 588e321601b766f849eab2adfbfa45d39b13ca63 Mon Sep 17 00:00:00 2001 From: Ger Date: Wed, 2 Nov 2022 21:15:51 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0?= =?UTF-8?q?=20"=D0=BD=D0=B0=20=D0=BD=D0=B5=20=D1=86=D0=B8=D1=84=D1=80?= =?UTF-8?q?=D1=8B"=20=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9=20Int=20=D0=B8=20Doubl?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 6 ++++-- src/main/java/Persons.java | 10 ++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index 4cadc86..8a79047 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -12,7 +12,7 @@ public class Calculator { public void consoleProducts() { Scanner scanner = new Scanner(System.in); while (true) { - System.out.printf("Введите название товара или '%s' для выхода\n", exit); // эта строка юзается для первого и последующих запрсов ввода товаров + System.out.printf("Введите название товара или '%s' для выхода\n", exit); prodName = scanner.next(); if (prodName.equalsIgnoreCase(exit)) { System.out.println(exitMessage); @@ -20,14 +20,16 @@ public void consoleProducts() { } while (true) { System.out.println("Введите стоимость товара в формате рубли.копейки. Например: 10,45"); + if (scanner.hasNextDouble()) { price = scanner.nextDouble(); if (price > 0.00) { countProducts++; products = products + prodName + " "; sum += price; break; - } else { + }} else { System.out.println("Ошибка ввода стоимости"); + scanner.next(); } } System.out.println("Товар успешно добавлен."); diff --git a/src/main/java/Persons.java b/src/main/java/Persons.java index 41ce5f8..4ccf64c 100644 --- a/src/main/java/Persons.java +++ b/src/main/java/Persons.java @@ -6,14 +6,16 @@ public static void enterPersons() { Scanner scanner = new Scanner(System.in); System.out.println("На скольких человек разделить счёт?\nВведите количество посетителей от 2 до 1000"); - while (true) { // Запускаем бесконечный цикл + while (true) { + if (scanner.hasNextInt()){ Main.persons = scanner.nextInt(); if (Main.persons > 1 && Main.persons < 1000) { System.out.printf("Введено %d посетителей\n", Main.persons); - break; // Выходим из цикла - } + break; + }} else { System.out.println("Ошибка ввода. Попробуйте ещё раз."); + scanner.next(); } } -} \ No newline at end of file +}} \ No newline at end of file From 571959fa94f44b7ee0e37ed3f200173803d8024a Mon Sep 17 00:00:00 2001 From: Ger Date: Wed, 2 Nov 2022 21:31:19 +0300 Subject: [PATCH 3/3] Ctrl + Alt + L --- src/main/java/Calculator.java | 16 +++++++++------- src/main/java/Persons.java | 20 +++++++++++--------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index 8a79047..af8c57f 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -21,13 +21,14 @@ public void consoleProducts() { while (true) { System.out.println("Введите стоимость товара в формате рубли.копейки. Например: 10,45"); if (scanner.hasNextDouble()) { - price = scanner.nextDouble(); - if (price > 0.00) { - countProducts++; - products = products + prodName + " "; - sum += price; - break; - }} else { + price = scanner.nextDouble(); + if (price > 0.00) { + countProducts++; + products = products + prodName + " "; + sum += price; + break; + } + } else { System.out.println("Ошибка ввода стоимости"); scanner.next(); } @@ -39,6 +40,7 @@ public void consoleProducts() { System.out.print(products + "\n"); System.out.println("Сумма на одного человека: " + String.format("%.2f", bill) + " " + rubles(bill)); } + public String rubles(double a) { int rub = (int) Math.floor(a); if (rub % 100 > 5 && rub <= 20) { diff --git a/src/main/java/Persons.java b/src/main/java/Persons.java index 4ccf64c..1663219 100644 --- a/src/main/java/Persons.java +++ b/src/main/java/Persons.java @@ -7,15 +7,17 @@ public static void enterPersons() { System.out.println("На скольких человек разделить счёт?\nВведите количество посетителей от 2 до 1000"); while (true) { - if (scanner.hasNextInt()){ - Main.persons = scanner.nextInt(); + if (scanner.hasNextInt()) { + Main.persons = scanner.nextInt(); - if (Main.persons > 1 && Main.persons < 1000) { - System.out.printf("Введено %d посетителей\n", Main.persons); - break; - }} else { - System.out.println("Ошибка ввода. Попробуйте ещё раз."); - scanner.next(); + if (Main.persons > 1 && Main.persons < 1000) { + System.out.printf("Введено %d посетителей\n", Main.persons); + break; + } + } else { + System.out.println("Ошибка ввода. Попробуйте ещё раз."); + scanner.next(); + } } } -}} \ No newline at end of file +} \ No newline at end of file