From 2a17af1b58a5f9c770439a8763907a87432a538d Mon Sep 17 00:00:00 2001 From: byBlinque Date: Sun, 30 Oct 2022 17:58:30 +1000 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=81=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=E2=84=961=20v1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 1 + src/main/java/GoodCalculator.java | 40 +++++++++++++++++++++ src/main/java/Main.java | 58 ++++++++++++++++++++++++++++++- 3 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 src/main/java/GoodCalculator.java diff --git a/build.gradle b/build.gradle index 1b1d075..c7365e9 100644 --- a/build.gradle +++ b/build.gradle @@ -8,3 +8,4 @@ repositories { dependencies { } + diff --git a/src/main/java/GoodCalculator.java b/src/main/java/GoodCalculator.java new file mode 100644 index 0000000..66458c1 --- /dev/null +++ b/src/main/java/GoodCalculator.java @@ -0,0 +1,40 @@ +public class GoodCalculator { + String goodName; + String goodSumName = "Добавленные товары:"; + double goodPrice; + double goodSumPrice; + + GoodCalculator() { + String goodName = ""; + double goodPrice; + double goodSumPrice = 0.0; + } + + void addGood(String goodName, double goodPrice) { + this.goodSumName = goodSumName + "\n" + goodName + ": " + goodPrice + " " + rubleEnding(goodPrice); + this.goodSumPrice += goodPrice; + } + + String rubleEnding(double rubleValue) { + int rubleValueInt = (int) (Math.floor(rubleValue)); + + if ((rubleValueInt % 100 > 10) && (rubleValueInt % 100 < 20)) { + return "рублей"; + } + else { + switch (rubleValueInt % 10) { + case 1: + return "рубль"; + + case 2: + case 3: + case 4: + return "рубля"; + + default: + return "рублей"; + } + } + } + +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..59cb438 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,64 @@ +import java.util.Locale; +import java.util.Scanner; + public class Main { public static void main(String[] args) { // ваш код начнется здесь // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + GoodCalculator gc = new GoodCalculator(); + Scanner scanner = new Scanner(System.in); + scanner.useLocale(Locale.US); + + int peopleNumber = 0; + String contunieGoodAdding, resultSumPerPerson; + + System.out.println("На скольких человек разделить счет?"); + peopleNumber = scanner.nextInt(); + + while (peopleNumber < 2) { + System.out.println("Введите целое число больше 1:"); + peopleNumber = scanner.nextInt(); + + } + + while (true) { + System.out.println("Введите название товара:"); + gc.goodName = scanner.nextLine(); + gc.goodName = scanner.nextLine(); + + System.out.println("Введите стоимость товара [копейки.рубли] (например, 40.25):"); + gc.goodPrice = scanner.nextDouble(); + + gc.addGood(gc.goodName, gc.goodPrice); + System.out.println("\n\nТовар успешно добавлен! Текущая общая сумма: " + gc.goodSumPrice + " " + gc.rubleEnding(gc.goodSumPrice)); + + System.out.println("Хотите добавить еще товар? Чтобы завершить, введите \'Завершить\'"); + contunieGoodAdding = scanner.next(); + if (contunieGoodAdding.equalsIgnoreCase("Завершить")) { + break; + } + + + } + resultSumPerPerson = String.format("%.2f" ,gc.goodSumPrice/peopleNumber); + System.out.println("\n\n" + gc.goodSumName + "\n\nОбщая сумма: " + gc.goodSumPrice + " " + gc.rubleEnding(gc.goodSumPrice) + "\nС каждого участника по " + resultSumPerPerson + " " + gc.rubleEnding(gc.goodSumPrice)); + + + + + + + + + + + + } + + + } + From f8db4b72eb50b138f8fb4ebb0536a521439a7819 Mon Sep 17 00:00:00 2001 From: byBlinque Date: Mon, 31 Oct 2022 20:35:19 +1000 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=81=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=E2=84=961=20v1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/GoodCalculator.java | 15 ++++++++--- src/main/java/Main.java | 45 +++++++++++++++++++++++-------- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/src/main/java/GoodCalculator.java b/src/main/java/GoodCalculator.java index 66458c1..7b0c311 100644 --- a/src/main/java/GoodCalculator.java +++ b/src/main/java/GoodCalculator.java @@ -17,24 +17,31 @@ void addGood(String goodName, double goodPrice) { String rubleEnding(double rubleValue) { int rubleValueInt = (int) (Math.floor(rubleValue)); + String result; if ((rubleValueInt % 100 > 10) && (rubleValueInt % 100 < 20)) { - return "рублей"; + result = "рублей"; } else { switch (rubleValueInt % 10) { case 1: - return "рубль"; + result = "рубль"; + break; case 2: case 3: case 4: - return "рубля"; + result = "рубля"; + break; default: - return "рублей"; + result = "рублей"; + break; } } + + return result; + } } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 59cb438..36cb10e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -11,25 +11,50 @@ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); scanner.useLocale(Locale.US); - int peopleNumber = 0; + int peopleNumber; String contunieGoodAdding, resultSumPerPerson; System.out.println("На скольких человек разделить счет?"); - peopleNumber = scanner.nextInt(); - - while (peopleNumber < 2) { - System.out.println("Введите целое число больше 1:"); - peopleNumber = scanner.nextInt(); + while (true) { + if (scanner.hasNextInt()) { + peopleNumber = scanner.nextInt(); + if (peopleNumber > 1) { + break; + } + else { + System.out.println("Введите целое число больше 1:"); + scanner.nextLine(); + } + } + else { + System.out.println("Введите целое число больше 1:"); + scanner.nextLine(); + } } while (true) { System.out.println("Введите название товара:"); - gc.goodName = scanner.nextLine(); + scanner.nextLine(); gc.goodName = scanner.nextLine(); System.out.println("Введите стоимость товара [копейки.рубли] (например, 40.25):"); - gc.goodPrice = scanner.nextDouble(); + while (true) { + if (scanner.hasNextDouble()) { + gc.goodPrice = scanner.nextDouble(); + if (gc.goodPrice > 0) { + break; + } + else { + System.out.println("Введите число больше 0:"); + scanner.nextLine(); + } + } + else { + System.out.println("Введите число больше 0:"); + scanner.nextLine(); + } + } gc.addGood(gc.goodName, gc.goodPrice); System.out.println("\n\nТовар успешно добавлен! Текущая общая сумма: " + gc.goodSumPrice + " " + gc.rubleEnding(gc.goodSumPrice)); @@ -39,11 +64,9 @@ public static void main(String[] args) { if (contunieGoodAdding.equalsIgnoreCase("Завершить")) { break; } - - } resultSumPerPerson = String.format("%.2f" ,gc.goodSumPrice/peopleNumber); - System.out.println("\n\n" + gc.goodSumName + "\n\nОбщая сумма: " + gc.goodSumPrice + " " + gc.rubleEnding(gc.goodSumPrice) + "\nС каждого участника по " + resultSumPerPerson + " " + gc.rubleEnding(gc.goodSumPrice)); + System.out.println("\n\n" + gc.goodSumName + "\n\nОбщая сумма: " + gc.goodSumPrice + " " + gc.rubleEnding(gc.goodSumPrice) + "\nС каждого участника: " + resultSumPerPerson + " " + gc.rubleEnding(gc.goodSumPrice/peopleNumber));