From 0e0f34ec9e9df796851390748763bbff48a9890d Mon Sep 17 00:00:00 2001 From: Venera-sav Date: Wed, 23 Nov 2022 12:44:03 +0400 Subject: [PATCH 1/2] 1 commit --- src/main/java/Calculator.java | 51 +++++++++++++++++++++++++++++++ src/main/java/FormOfCurrency.java | 18 +++++++++++ src/main/java/Main.java | 17 +++++++++-- src/main/java/Request.java | 27 ++++++++++++++++ 4 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 src/main/java/Calculator.java create mode 100644 src/main/java/FormOfCurrency.java create mode 100644 src/main/java/Request.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 0000000..75beaa1 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,51 @@ +import java.util.*; + +public class Calculator { + public static float calculate() { + Scanner console = new Scanner(System.in); + float sum=0.00f; + + System.out.println("Введите товар"); + String product = console.nextLine(); + float price = priceChecking(); + sum=sum+price; + String cheque = String.format("Добавленные товары:\n" + product + " %.2f", price) + " руб."; + System.out.println("Товар успешно добавлен. Завершить? (Введите Завершить либо любой другой символ для продолжения)"); + + while(true) { + if (console.next().equalsIgnoreCase("Завершить")) { + System.out.println(cheque); + break; + } + else { + System.out.println("Введите товар"); + console.nextLine(); + product = console.nextLine(); + price = priceChecking(); + sum=sum+price; + cheque = String.format(cheque + "\n" + product + " %.2f", price) + " руб."; + System.out.println("Товар успешно добавлен. Завершить? (Введите Завершить либо любой другой символ для продолжения)"); + } + } + return sum; + } + + public static float priceChecking () { + System.out.println("Введите цену товара в формате 00,00 (рубли,копейки)"); + float price; + Scanner console = new Scanner(System.in); + + while (!(console.hasNextFloat())) { + System.out.println("Требуется именно число в формате 00,00 (рубли,копейки) или 00 (рубли)"); + console.next(); + } + price=console.nextFloat(); + + while (!(price > 0)) { + System.out.println("Стоимость товара должна быть больше нуля"); + price=console.nextFloat(); + } + + return price; + } +} diff --git a/src/main/java/FormOfCurrency.java b/src/main/java/FormOfCurrency.java new file mode 100644 index 0000000..abb6180 --- /dev/null +++ b/src/main/java/FormOfCurrency.java @@ -0,0 +1,18 @@ +import java.util.*; + +public class FormOfCurrency { + public static String defineTheForm(int count) { + String form; + if (count%100>4 && count%100<21) { + form = "рублей"; + } + else if (count%10==1) { + form = "рубль"; + } + else if (count%10>1 && count%10<5) { + form = "рубля"; + } + else form = "рублей"; + return form; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..7926f53 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,19 @@ +import java.util.*; public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + System.out.println("Привет! Это программа Калькулятор счёта"); + int guestCount = Request.askGuestCount(); // Метод запроса и проверки корректности количества гостей + System.out.println("Итак, количество гостей - " + guestCount+ " чел."); + + float sum = Calculator.calculate(); // Сбор позиций и цен чека, возврат суммы + String formSum = FormOfCurrency.defineTheForm((int)Math.floor(sum)); //определение окончания рубля + String formSumOne = FormOfCurrency.defineTheForm((int)Math.floor(sum/guestCount)); + + System.out.println(String.format("Общая сумма товаров - " + "%.2f", sum)+" " +formSum); + System.out.println(String.format("Сумма покупок на одного человека - " + "%.2f", (sum/guestCount))+ " " +formSumOne); } + + } diff --git a/src/main/java/Request.java b/src/main/java/Request.java new file mode 100644 index 0000000..fdad5ac --- /dev/null +++ b/src/main/java/Request.java @@ -0,0 +1,27 @@ +import java.util.*; + +public class Request { + public static int askGuestCount() { + System.out.println("Здравствуйте! Введите число гостей: "); + int count; + Scanner console = new Scanner(System.in); + while (true) { + if (!console.hasNextInt()) { // Проверем, что это целое число + System.out.println("Должно быть введено именно ЧИСЛО. Попробуем еще раз? )"); + console.next(); + + } else { + count = console.nextInt(); + if (count < 1) + System.out.println("Количество гостей должно быть больше 1 человека. Попробуем еще раз? )"); + else { + if (count == 1) { + System.out.println("Количество гостей должно быть больше 1 человека. Попробуем еще раз? )"); + } else + break; + } + } + } + return count; + } +} From c9b35f5dda58bd50c6cc78e101b8d588b0af2d76 Mon Sep 17 00:00:00 2001 From: Venera-sav Date: Wed, 23 Nov 2022 14:19:17 +0400 Subject: [PATCH 2/2] Commit2 --- src/main/java/Calculator.java | 4 ++-- src/main/java/Main.java | 11 ++++++----- src/main/java/Request.java | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index 75beaa1..71cbf9d 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -9,7 +9,7 @@ public static float calculate() { String product = console.nextLine(); float price = priceChecking(); sum=sum+price; - String cheque = String.format("Добавленные товары:\n" + product + " %.2f", price) + " руб."; + String cheque = String.format("*********************************************\nДобавленные товары:\n" + product + " %.2f", price) + " " + FormOfCurrency.defineTheForm((int)Math.floor(price)); System.out.println("Товар успешно добавлен. Завершить? (Введите Завершить либо любой другой символ для продолжения)"); while(true) { @@ -23,7 +23,7 @@ public static float calculate() { product = console.nextLine(); price = priceChecking(); sum=sum+price; - cheque = String.format(cheque + "\n" + product + " %.2f", price) + " руб."; + cheque = String.format(cheque + "\n" + product + " %.2f", price) + " " + FormOfCurrency.defineTheForm((int)Math.floor(price)); System.out.println("Товар успешно добавлен. Завершить? (Введите Завершить либо любой другой символ для продолжения)"); } } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 7926f53..05e0f74 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -8,12 +8,13 @@ public static void main(String[] args) { System.out.println("Итак, количество гостей - " + guestCount+ " чел."); float sum = Calculator.calculate(); // Сбор позиций и цен чека, возврат суммы - String formSum = FormOfCurrency.defineTheForm((int)Math.floor(sum)); //определение окончания рубля - String formSumOne = FormOfCurrency.defineTheForm((int)Math.floor(sum/guestCount)); + String newline = "*********************************************"; - System.out.println(String.format("Общая сумма товаров - " + "%.2f", sum)+" " +formSum); - System.out.println(String.format("Сумма покупок на одного человека - " + "%.2f", (sum/guestCount))+ " " +formSumOne); + System.out.println(newline); + System.out.println(String.format("Общая сумма товаров - " + "%.2f", sum)+" " +FormOfCurrency.defineTheForm((int)Math.floor(sum))); + System.out.println(String.format("Сумма покупок на одного человека - " + "%.2f", (sum/guestCount))+ " " +FormOfCurrency.defineTheForm((int)Math.floor(sum/guestCount))); + System.out.println(newline); } -} +} \ No newline at end of file diff --git a/src/main/java/Request.java b/src/main/java/Request.java index fdad5ac..9867c31 100644 --- a/src/main/java/Request.java +++ b/src/main/java/Request.java @@ -2,7 +2,7 @@ public class Request { public static int askGuestCount() { - System.out.println("Здравствуйте! Введите число гостей: "); + System.out.println("Введите число гостей: "); int count; Scanner console = new Scanner(System.in); while (true) {