From 5b9e299895831d76a89a32752dd2d9b6ef559edc Mon Sep 17 00:00:00 2001 From: Fandorina Date: Sat, 29 Oct 2022 19:29:06 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 81 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 3 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..f3ddf1f 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,83 @@ +/** + * Калькулятор счёта + * @author Fandorina Polina + * В данной задаче не вызываются несколько методов многократно, + * поэтому нет смысла загружать JVM и создавать лишиние классы и функции, + * хотя разделить на логические блоки можно. Программа линейная, где каждая операция выполняется последовательно. + */ + +import java.util.Scanner; + public class Main { + private static final Scanner scanner = new Scanner(System.in); + public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + System.out.println("Здравствуйте!\nНа скольких гостей разделить счет?"); + int count; + String allProducts = ""; + double totalPrice = 0f; + double productPrice; + String rubles = ""; + double OnePersonSum = 0.00f; + + + while (true) { + count = scanner.nextInt(); + + if (count > 1) { + break; + } + if (count == 1) { + System.out.println("Разделение счета рассчитывается на большее кол-во гостей. Пожалуйста, введите число заново."); + } else { + System.out.println("Неверное кол-во гостей. Пожалуйста, введите число заново."); + } + } + + // Добавление товаров в калькулятор + + while (true) { + System.out.println("Введите название товара или введите команду \"Завершить\"."); + String productName = scanner.next(); + if (productName.equalsIgnoreCase("finish")) { + System.out.println("Добавленные товары: " + "\n" + allProducts); + break; + } else { + allProducts = allProducts + productName + "\n"; + while (true) { + System.out.println("Введите стоимость товара в формате \"рубли,копейки\"."); + productPrice = scanner.nextDouble(); + if (productPrice <= 0) { + System.out.println("Некорректное значение."); + } else { + break; + } + } + totalPrice = totalPrice + productPrice; + System.out.println("Товар добавлен в чек."); + } + + } + + + //Подсчет рублей для каждого гостя + int lastNum = (int) totalPrice % 10; + + switch (lastNum) { + case 1: + rubles = "рубль"; + case 2 | 3 | 4: + rubles = "рубля"; + default: + rubles = "рублей"; + } + + OnePersonSum = totalPrice / (double)count; + + System.out.println("Сумма на каждого гостя составляет " + String.format("%.2f", OnePersonSum) + " " + rubles + ".\nВсего доброго!"); + } } + From 76d62646f33fc8e5d62b19b884ce51a8ca0854c3 Mon Sep 17 00:00:00 2001 From: Fandorina Date: Mon, 31 Oct 2022 15:26:53 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=201=20(?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculate.java | 82 ++++++++++++++++++++++++++++++++++++ src/main/java/Main.java | 72 +++---------------------------- 2 files changed, 87 insertions(+), 67 deletions(-) create mode 100644 src/main/java/Calculate.java diff --git a/src/main/java/Calculate.java b/src/main/java/Calculate.java new file mode 100644 index 0000000..204a453 --- /dev/null +++ b/src/main/java/Calculate.java @@ -0,0 +1,82 @@ +import java.util.Scanner; + +public class Calculate { + + private static final Scanner scanner = new Scanner(System.in); + + int count; + String allProducts = ""; + double totalPrice = 0.00f; + double productPrice; + String rubles = ""; + + + public void initDataPersons() { + System.out.println("Здравствуйте!\nНа скольких гостей разделить счет?"); + + while (true) { + count = scanner.nextInt(); + + if (count > 1) { + break; + } + if (count == 1) { + System.out.println("Разделение счета рассчитывается на большее кол-во гостей. Пожалуйста, введите число заново."); + } else { + System.out.println("Неверное кол-во гостей. Пожалуйста, введите число заново."); + } + } + + } + + // Добавление товаров в калькулятор + + public void addingProducts() { + + while (true) { + System.out.println("Введите название товара или введите команду \"Завершить\"."); + String productName = scanner.next(); + if (productName.equalsIgnoreCase("finish")) { + System.out.println("Добавленные товары: " + "\n" + allProducts); + break; + } else { + allProducts = allProducts + productName + "\n"; + while (true) { + System.out.println("Введите стоимость товара в формате \"рубли,копейки\"."); + productPrice = scanner.nextDouble(); + if (productPrice <= 0) { + System.out.println("Некорректное значение."); + } else { + break; + } + } + this.totalPrice = totalPrice + productPrice; + System.out.println("Товар добавлен в чек."); + } + } + + } + + + //Подсчет рублей для каждого гостя + + public void endingOfRubles() { + int lastNum = (int) totalPrice % 10; + + if (totalPrice % 100 >= 11 && totalPrice % 100 <= 20) { + rubles = "рублей rublei"; + } else if (lastNum > 1 && lastNum < 5) { + rubles = "рубля rublya"; + } else if (totalPrice % 10 == 1) { + rubles = "рубль rubl"; + } + else { + rubles = "рублей rublei"; + } + + double OnePersonSum = totalPrice / (double)count; + System.out.println("Сумма на каждого гостя составляет " + String.format("%.2f", OnePersonSum) + " " + rubles + ".\nВсего доброго!"); + + } + +} \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index f3ddf1f..7721c47 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -6,78 +6,16 @@ * хотя разделить на логические блоки можно. Программа линейная, где каждая операция выполняется последовательно. */ -import java.util.Scanner; - public class Main { - private static final Scanner scanner = new Scanner(System.in); public static void main(String[] args) { - System.out.println("Здравствуйте!\nНа скольких гостей разделить счет?"); - int count; - String allProducts = ""; - double totalPrice = 0f; - double productPrice; - String rubles = ""; - double OnePersonSum = 0.00f; - - - while (true) { - count = scanner.nextInt(); - - if (count > 1) { - break; - } - if (count == 1) { - System.out.println("Разделение счета рассчитывается на большее кол-во гостей. Пожалуйста, введите число заново."); - } else { - System.out.println("Неверное кол-во гостей. Пожалуйста, введите число заново."); - } - } - - // Добавление товаров в калькулятор - - while (true) { - System.out.println("Введите название товара или введите команду \"Завершить\"."); - String productName = scanner.next(); - if (productName.equalsIgnoreCase("finish")) { - System.out.println("Добавленные товары: " + "\n" + allProducts); - break; - } else { - allProducts = allProducts + productName + "\n"; - while (true) { - System.out.println("Введите стоимость товара в формате \"рубли,копейки\"."); - productPrice = scanner.nextDouble(); - if (productPrice <= 0) { - System.out.println("Некорректное значение."); - } else { - break; - } - } - totalPrice = totalPrice + productPrice; - System.out.println("Товар добавлен в чек."); - } - - } - - - //Подсчет рублей для каждого гостя - int lastNum = (int) totalPrice % 10; - - switch (lastNum) { - case 1: - rubles = "рубль"; - case 2 | 3 | 4: - rubles = "рубля"; - default: - rubles = "рублей"; - } - - OnePersonSum = totalPrice / (double)count; - - System.out.println("Сумма на каждого гостя составляет " + String.format("%.2f", OnePersonSum) + " " + rubles + ".\nВсего доброго!"); - + Calculate calculate = new Calculate(); + calculate.initDataPersons(); + calculate.addingProducts(); + calculate.endingOfRubles(); } } + From 6fbf8e0a4b1403b3707efc88b160223369e5ad62 Mon Sep 17 00:00:00 2001 From: Fandorina Date: Tue, 22 Nov 2022 16:46:27 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=201=20(?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculate.java | 40 ++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/main/java/Calculate.java b/src/main/java/Calculate.java index 204a453..134d965 100644 --- a/src/main/java/Calculate.java +++ b/src/main/java/Calculate.java @@ -16,7 +16,6 @@ public void initDataPersons() { while (true) { count = scanner.nextInt(); - if (count > 1) { break; } @@ -32,32 +31,37 @@ public void initDataPersons() { // Добавление товаров в калькулятор public void addingProducts() { - - while (true) { + while (true) { System.out.println("Введите название товара или введите команду \"Завершить\"."); - String productName = scanner.next(); - if (productName.equalsIgnoreCase("finish")) { - System.out.println("Добавленные товары: " + "\n" + allProducts); - break; - } else { - allProducts = allProducts + productName + "\n"; - while (true) { - System.out.println("Введите стоимость товара в формате \"рубли,копейки\"."); - productPrice = scanner.nextDouble(); - if (productPrice <= 0) { - System.out.println("Некорректное значение."); - } else { - break; + try { + String productName = scanner.next(); + if (productName.equalsIgnoreCase("finish")) { + System.out.println("Добавленные товары: " + "\n" + allProducts); + break; + } else { + allProducts = allProducts + productName + "\n"; + while (true) { + System.out.println("Введите стоимость товара в формате \"рубли,копейки\"."); + productPrice = scanner.nextDouble(); + if (productPrice <= 0) { + System.out.println("Некорректное значение."); + } else { + break; + } } + this.totalPrice = totalPrice + productPrice; + System.out.println("Товар добавлен в чек."); } - this.totalPrice = totalPrice + productPrice; - System.out.println("Товар добавлен в чек."); + } + catch(Exception e){ + System.out.println("Некорректное название товара. Попробуйте снова."); } } } + //Подсчет рублей для каждого гостя public void endingOfRubles() {