From 045eadb5f7cc90d82f21f2597fd639a5ffb80dca Mon Sep 17 00:00:00 2001 From: Ilya Chernov Date: 2022年8月22日 19:51:24 +0300 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=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=BD=D0=BE=D0=B9=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D1=8B=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BillCalculator.java | 71 +++++++++++++++++++++++++++++++ src/main/java/Main.java | 11 +++-- 2 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 src/main/java/BillCalculator.java diff --git a/src/main/java/BillCalculator.java b/src/main/java/BillCalculator.java new file mode 100644 index 0000000..1e3ec5d --- /dev/null +++ b/src/main/java/BillCalculator.java @@ -0,0 +1,71 @@ +import java.util.Scanner; + +public class BillCalculator { + + public int numberOfPeople = 0; + public String dishesList = ""; + public double billAmount = 0.0; + Scanner scanner; + + public BillCalculator (Scanner scanner) { + this.scanner = scanner; + } + + public void inputParameters () { + System.out.println ("Введите количество человек, на которых нужно поделить счет"); + int i; + while (true) { + i = scanner.nextInt(); + if (i < 2) { + System.out.println("Количество человек не должно быть меньше двух"); + } + else { + numberOfPeople = i; + break; + } + } + } + + public void addDishes () { + while (true) { + System.out.println ("Введите название блюда"); + String name = scanner.next(); + if (name.equalsIgnoreCase("завершить")) { + break; + } + System.out.println ("Введите цену блюда"); + double price = scanner.nextDouble(); + dishesList = dishesList + name + "\n"; + billAmount = billAmount + price; + } + } + + public void printResult () { + System.out.println("Добавленные товары:\n"+dishesList); + double costPerPerson = billAmount / numberOfPeople; + String costText = "%.2f "; + System.out.println("Сумма на человека: " + String.format(costText,costPerPerson) + addCorrectRubleString(costPerPerson)); + } + + public String addCorrectRubleString (double billAmount) { + int amount = (int) billAmount; + + if(amount> 100) + amount %= 100; + + if(amount> 20) + amount %= 10; + + switch(amount) + { + 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..4abf905 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,13 @@ +import java.util.Locale; +import java.util.Scanner; + public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + Scanner scanner = new Scanner(System.in).useLocale(Locale.US); + BillCalculator calculator = new BillCalculator(scanner); + calculator.inputParameters(); + calculator.addDishes(); + calculator.printResult(); } } From 1f807f5dad3fa32b5d009c2501b69c760625b8bc Mon Sep 17 00:00:00 2001 From: Ilya Chernov Date: 2022年8月22日 21:01:09 +0300 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=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=BD=D0=BE=D0=B9=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D1=8B=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BillCalculator.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/BillCalculator.java b/src/main/java/BillCalculator.java index 1e3ec5d..1463682 100644 --- a/src/main/java/BillCalculator.java +++ b/src/main/java/BillCalculator.java @@ -13,7 +13,11 @@ public BillCalculator (Scanner scanner) { public void inputParameters () { System.out.println ("Введите количество человек, на которых нужно поделить счет"); - int i; + int i = 0; + while (!scanner.hasNextInt()) { + System.out.println("Введите целое число"); + scanner.next(); + } while (true) { i = scanner.nextInt(); if (i < 2) { @@ -33,7 +37,11 @@ public void addDishes () { if (name.equalsIgnoreCase("завершить")) { break; } - System.out.println ("Введите цену блюда"); + System.out.println ("Введите цену блюда в формате \"рубли.копейки\""); + while (!scanner.hasNextDouble()) { + System.out.println("Некорректный ввод цены, введите цену блюда в формате \"рубли.копейки\""); + scanner.next(); + } double price = scanner.nextDouble(); dishesList = dishesList + name + "\n"; billAmount = billAmount + price;

AltStyle によって変換されたページ (->オリジナル) /