From e6fb7daceadc7370de98eb7fa7a7a3c5e7552c3c Mon Sep 17 00:00:00 2001 From: s-buvaka Date: Wed, 30 Nov 2022 22:20:36 +0300 Subject: [PATCH 1/2] Add dev branch --- src/main/java/Main.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c435..955424e69 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,3 +1,4 @@ +// dev branch for Y.Practicum public class Main { public static void main(String[] args) { From 2354729d2bd38a786938f627f989758fc72e9cca Mon Sep 17 00:00:00 2001 From: NickMikhailov Date: Mon, 6 Feb 2023 19:24:49 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9A=D0=B0=D0=BB=D1=8C=D0=BA=D1=83=D0=BB?= =?UTF-8?q?=D1=8F=D1=82=D0=BE=D1=80,=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D1=8F=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Check.java | 52 ++++++++++++++++++++++++++++++++++++ src/main/java/Formatter.java | 29 ++++++++++++++++++++ src/main/java/Main.java | 38 +++++++++++++++++++++++++- 3 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 src/main/java/Check.java create mode 100644 src/main/java/Formatter.java diff --git a/src/main/java/Check.java b/src/main/java/Check.java new file mode 100644 index 000000000..713e7cdf0 --- /dev/null +++ b/src/main/java/Check.java @@ -0,0 +1,52 @@ +import java.util.LinkedList; +import java.util.Scanner; + +public class Check { + LinkedList name = new LinkedList<>(); + LinkedList price = new LinkedList<>(); + int count; + double sum; + + double getSum() {return sum;} + + Check(){ + Scanner scanner = new Scanner(System.in); + while (true){ + System.out.println("Введите товар №"+(count+1)+" или \"Завершить\", чтобы завершить ввод:"); + String nameInput = scanner.nextLine(); + if (nameInput.equalsIgnoreCase("Завершить")) break; + System.out.println("Сколько стоит " + nameInput + "? (формат ввода: \"0,00\"):"); + double priceInput; + while (true) { + if (scanner.hasNextDouble()) { + priceInput = scanner.nextDouble(); + scanner.nextLine(); + break; + } + else { + System.out.println("Некорректный ввод, попробуйте еще раз"); + scanner.nextLine(); + } + } + name.addLast(nameInput); + price.addLast(priceInput); + count++; + sum += priceInput; + System.out.println("Товар №"+count+" \"" + nameInput + "\" успешно добавлен!\n"); + } + scanner.close(); + } + + + void print() { + System.out.println("Добавленные товары:"); + System.out.println("-----------------------------------------------"); + Formatter rub = new Formatter(); + for (int i = 0; i < count; i++) { + System.out.println(String.format("%2d ",(i + 1)) + String.format(" |%-27s|",name.get(i)) + String.format("%7.2f", price.get(i)) + rub.format(price.get(i))); + } + System.out.println("-----------------------------------------------"); + System.out.println("ИТОГО:\t\t\t\t\t\t\t|" + String.format("%7.2f", sum) + rub.format(sum)); + System.out.println("-----------------------------------------------"); + } +} \ No newline at end of file diff --git a/src/main/java/Formatter.java b/src/main/java/Formatter.java new file mode 100644 index 000000000..0dce93c9b --- /dev/null +++ b/src/main/java/Formatter.java @@ -0,0 +1,29 @@ +public class Formatter { + + String format(double input) { + String rub; + int ending = (int)input % 100; + if(ending>10 && ending<20){ + rub=" рублей"; + } + else { + switch (ending % 10) { + case 1: { + rub = " рубль"; + break; + } + case 2: + case 3: + case 4: { + rub = " рубля"; + break; + } + default: { + rub = " рублей"; + break; + } + } + } + return rub; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 955424e69..6fb120728 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,9 +1,45 @@ +import java.util.Scanner; + // dev branch for Y.Practicum public class Main { public static void main(String[] args) { // ваш код начнется здесь // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + // Часть 1 - вводные параметры для счетчика (количество гостей) + int guestCount; + Scanner scanner = new Scanner(System.in); + while (true) { + System.out.println("\nНа скольких человек необходимо разделить счет?"); + while (true) { + if (scanner.hasNextInt()) { + guestCount = scanner.nextInt(); + break; + } + else { + scanner.next(); + System.out.println("Некорректный ввод, попробуйте еще раз"); + } + } + if (guestCount>1) break; + else if (guestCount == 1) { + System.out.println("Если вы один, то вам за все и платить!"); + } + else { + System.out.println("Некорректный ввод, попробуйте еще раз"); + } + } +// scanner.close(); + + // Часть 2 - создание чека и добавление товаров (в конструкторе) + Check check = new Check(); + + // Часть 3 - вывод результатов + check.print(); + + double checkPerOne = check.getSum()/guestCount; + Formatter rub = new Formatter(); + System.out.println("Вас было "+guestCount+", значит с каждого по " + String.format("%.2f", checkPerOne) + rub.format(checkPerOne)); } }