From 998881678c907bd6b08403b9718b2fd81a218872 Mon Sep 17 00:00:00 2001 From: sermakov Date: Sat, 5 Nov 2022 13:41:24 +0300 Subject: [PATCH 1/3] First code --- .idea/.gitignore | 3 + .idea/codeStyles/Project.xml | 123 +++++++++++++++++++++++++++ .idea/codeStyles/codeStyleConfig.xml | 5 ++ .idea/compiler.xml | 6 ++ .idea/gradle.xml | 18 ++++ .idea/misc.xml | 10 +++ .idea/vcs.xml | 6 ++ src/main/java/Item.java | 43 ++++++++++ src/main/java/Main.java | 36 +++++++- 9 files changed, 247 insertions(+), 3 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 src/main/java/Item.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..7643783 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,123 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..61a9130 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..6cec569 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a47d29e --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/Item.java b/src/main/java/Item.java new file mode 100644 index 0000000..d2c5009 --- /dev/null +++ b/src/main/java/Item.java @@ -0,0 +1,43 @@ +import java.util.Scanner; + +public class Item { + + static String name; + static double price; + + static String values = ""; + static double sum = 0; + + Item (double price, String name) { + this.price = price; + this.name = name; + } + + static void calculate() { + while (true) { + + Scanner scanner = new Scanner(System.in); + + System.out.println("Если вы хотите добавить блюдо, введите наименование блюда"); + System.out.println("Если вы не хотите добавлять блюдо, введите Завершить"); + + name = scanner.nextLine(); + + if (name.equalsIgnoreCase("завершить")) { + System.out.println("Выход из калькулятора"); + break; + } else { + System.out.println("Введите цену"); + price = scanner.nextDouble(); + + values += name + " " + price + "\n"; + sum += price; + + System.out.println("Блюдо " + name + " стоимостью " + price + " рублей успешно добавлено!"); + } + } + System.out.println("Добавленные товары:"); + System.out.println(values); + System.out.println("Общая сумма: " + sum + " рублей"); + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..548ee7f 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,38 @@ +import java.util.Scanner; + public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + Scanner scanner = new Scanner(System.in); + + while (true) { + + printMenu(); + + int quantityOfPersons = scanner.nextInt(); + + if (quantityOfPersons == 1) { + System.out.println("Тебе грустно и одиноко, нечем заняться? Занимайся Джаббой!"); + break; + } else if (quantityOfPersons > 1) { + System.out.println("Итак, " + quantityOfPersons + " человек харчевали..."); + Item.calculate(); + System.out.println(Item.sum / quantityOfPersons); + } else if (quantityOfPersons == 0) { + System.out.println("Выход"); + break; + } else { + System.out.println("Введите корректное количество гостей"); + } + + } + } + + public static void printMenu() { + System.out.println("Добрый день!"); + System.out.println("На скольких человек вы хотите разделить счёт?"); + System.out.println("Введите целое значение от 1 и выше"); + System.out.println("Введите 0, для того, чтобы выйти из программы"); } } From 55a288038cf3e77de44d88b0b9d64ce4213bcd45 Mon Sep 17 00:00:00 2001 From: sermakov Date: Sat, 5 Nov 2022 15:36:47 +0300 Subject: [PATCH 2/3] First version --- src/main/java/CaseEnding.java | 20 ++++++++++++++++++++ src/main/java/Item.java | 24 +++++++++++------------- src/main/java/Main.java | 33 +++++++++++++++++++++------------ 3 files changed, 52 insertions(+), 25 deletions(-) create mode 100644 src/main/java/CaseEnding.java diff --git a/src/main/java/CaseEnding.java b/src/main/java/CaseEnding.java new file mode 100644 index 0000000..6770b0b --- /dev/null +++ b/src/main/java/CaseEnding.java @@ -0,0 +1,20 @@ +public class CaseEnding { + + static String roubleCase = " рублей"; + static double remainder; + + static String setEnding(double price) { + if (Math.floor(price) >= 11 && Math.floor(price) <= 14) { + return roubleCase = " рублей"; + } else { + remainder = Math.floor(price) % 10; + if (remainder == 1) { + return roubleCase = " рубль"; + } else if (remainder >= 2 && remainder <= 4) { + return roubleCase = " рубля"; + } else { + return roubleCase = " рублей"; + } + } + } +} diff --git a/src/main/java/Item.java b/src/main/java/Item.java index d2c5009..cd64029 100644 --- a/src/main/java/Item.java +++ b/src/main/java/Item.java @@ -8,36 +8,34 @@ public class Item { static String values = ""; static double sum = 0; - Item (double price, String name) { - this.price = price; - this.name = name; - } - static void calculate() { while (true) { Scanner scanner = new Scanner(System.in); - System.out.println("Если вы хотите добавить блюдо, введите наименование блюда"); - System.out.println("Если вы не хотите добавлять блюдо, введите Завершить"); + System.out.println("\nЕсли вы хотите добавить блюдо в калькулятор, введите наименование блюда:"); + System.out.println("Если вы не хотите добавлять блюдо в калькулятор, введите «Завершить»:"); name = scanner.nextLine(); if (name.equalsIgnoreCase("завершить")) { - System.out.println("Выход из калькулятора"); + System.out.println("Выход из калькулятора (вы ввели «Завершить»)."); break; } else { - System.out.println("Введите цену"); + System.out.println("Введите цену блюда:"); + price = scanner.nextDouble(); - values += name + " " + price + "\n"; + values += name + " " + price + ";\n"; sum += price; - System.out.println("Блюдо " + name + " стоимостью " + price + " рублей успешно добавлено!"); + System.out.println("Блюдо " + name + " стоимостью " + price + CaseEnding.setEnding(price) + " успешно добавлено!"); + System.out.println("Текущая сумма блюд: " + sum + CaseEnding.setEnding(sum) + "."); } } - System.out.println("Добавленные товары:"); + + System.out.println("\nДобавленные блюда: "); System.out.println(values); - System.out.println("Общая сумма: " + sum + " рублей"); + System.out.println("Общая сумма блюд: " + sum + CaseEnding.setEnding(sum) + "."); } } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 548ee7f..b5c2d6e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -10,29 +10,38 @@ public static void main(String[] args) { printMenu(); - int quantityOfPersons = scanner.nextInt(); + String quantityOfPersons = scanner.nextLine(); + int number = -1; - if (quantityOfPersons == 1) { + try { + number = Integer.parseInt(quantityOfPersons); + } catch (NumberFormatException e) { + System.out.println("Вы ввели что-то не то... Давайте ещё раз."); + } + + if (number == 1) { System.out.println("Тебе грустно и одиноко, нечем заняться? Занимайся Джаббой!"); - break; - } else if (quantityOfPersons > 1) { - System.out.println("Итак, " + quantityOfPersons + " человек харчевали..."); + } else if (number > 1) { + System.out.println("Итак, вас " + quantityOfPersons + ". И вы харчевали..."); Item.calculate(); - System.out.println(Item.sum / quantityOfPersons); - } else if (quantityOfPersons == 0) { - System.out.println("Выход"); + double pricePerPerson = Item.sum / number; + System.out.println("\nКаждый из посетителей должен заплатить " + String.format("%.2f", pricePerPerson) + CaseEnding.setEnding(pricePerPerson) + "."); + System.out.println("Вычисления завершены. Выход."); + break; + } else if (number == 0) { + System.out.println("Выход, потому что кое-кто нажал ноль."); break; } else { - System.out.println("Введите корректное количество гостей"); + System.out.println("Введите положительное число гостей."); } } } public static void printMenu() { - System.out.println("Добрый день!"); + System.out.println("\nДобрый день!"); System.out.println("На скольких человек вы хотите разделить счёт?"); - System.out.println("Введите целое значение от 1 и выше"); - System.out.println("Введите 0, для того, чтобы выйти из программы"); + System.out.println("Пожалуйста, введите количество гостей - от 1 и выше."); + System.out.println("Или введите 0 для того, чтобы выйти из программы."); } } From ea2c66ea1ac8d3e6fba7f51c1fbdefc0ed5678b8 Mon Sep 17 00:00:00 2001 From: sermakov Date: Sat, 5 Nov 2022 16:27:23 +0300 Subject: [PATCH 3/3] Fixes --- src/main/java/Item.java | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/main/java/Item.java b/src/main/java/Item.java index cd64029..6503ddf 100644 --- a/src/main/java/Item.java +++ b/src/main/java/Item.java @@ -3,7 +3,7 @@ public class Item { static String name; - static double price; + static double price = 0; static String values = ""; static double sum = 0; @@ -22,15 +22,27 @@ static void calculate() { System.out.println("Выход из калькулятора (вы ввели «Завершить»)."); break; } else { - System.out.println("Введите цену блюда:"); + System.out.println("Введите стоимость блюда в формате [рубли.копейки]:"); - price = scanner.nextDouble(); + String stringPrice = scanner.nextLine(); - values += name + " " + price + ";\n"; - sum += price; + try { + price = Double.parseDouble(stringPrice); + } catch (NumberFormatException e) { + System.out.println("Введите численное значение."); + price = 0; + } - System.out.println("Блюдо " + name + " стоимостью " + price + CaseEnding.setEnding(price) + " успешно добавлено!"); - System.out.println("Текущая сумма блюд: " + sum + CaseEnding.setEnding(sum) + "."); + if (price > 0) { + values += name + " " + price + ";\n"; + sum += price; + + System.out.println("Блюдо " + name + " стоимостью " + price + CaseEnding.setEnding(price) + " успешно добавлено!"); + System.out.println("Текущая сумма блюд: " + sum + CaseEnding.setEnding(sum) + "."); + } else { + System.out.println("Введите корректную стоимость блюда больше нуля."); + + } } }