From 5ef0679bd6b237534f5e9354b31179351598cd09 Mon Sep 17 00:00:00 2001 From: vladislav-8 Date: 2022年10月25日 23:24:23 +0700 Subject: [PATCH 1/4] 1st --- src/main/java/Calculator.java | 64 +++++++++++++++++++++++++++++++++++ src/main/java/Main.java | 3 ++ 2 files changed, 67 insertions(+) create mode 100644 src/main/java/Calculator.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 0000000..ed5fbc2 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,64 @@ +import java.util.Scanner; +import java.util.ArrayList; + +public class Calculator { + int person = 0; + double total; + + public void addPersons() { + int a; + System.out.println("На скольких человек необходимо разделить счёт?"); + Scanner scanner = new Scanner(System.in); + while (true) { + if (!scanner.hasNextInt()) { + System.out.println("Ошибочка! Введите целое число больше единицы"); + scanner.next(); + continue; + } else { + a = scanner.nextInt(); + } + if (a> 1) { + break; + } else { + System.out.println("Ошибочка! Введите целое число больше единицы"); + } + } + person = a; + } + + public void addProducts() { + Scanner scanner = new Scanner(System.in); + ArrayList products = new ArrayList(); + while (true) { + System.out.println("Отлично! Введите товар или напишите 'завершить'"); + String s = scanner.next(); + if (s.equalsIgnoreCase("завершить")) { + break; + } else { + System.out.println("Введите цену товара в формате РУБЛИ.КОПЕЙКИ Например: '[10.45]'"); + double d = scanner.nextDouble(); + products.add(s); + while (d <= 0) { + System.out.println("Ошибка! Введите корректное значение."); + d = scanner.nextDouble(); + } + total = total + d; + String s2 = "Товар " + s + " успешно добавлен!" + " " + "Стоимостью " + String.format("%.2f", d); + System.out.println(s2); + } + } + System.out.println("Добавленные товары: " + "\n" + String.join("\n", products)); + System.out.println("Средний чек на человека: " + String.format("%.2f", total / person) + " " + getRightWord(total / person)); + } + + public static String getRightWord(double coin) { + coin = (int) Math.floor(coin); + if (coin == 0) return ""; + coin = Math.abs(coin) % 100; + int n1 = (int) (coin % 10); + if (coin> 10 && coin < 20) return "рублей"; + if (n1> 1 && n1 < 5) return "рубля"; + if (n1 == 1) return "рубль"; + return "рублей"; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..e778bdd 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -4,5 +4,8 @@ public static void main(String[] args) { // ваш код начнется здесь // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости System.out.println("Привет Мир"); + Calculator calculator = new Calculator(); + calculator.addPersons(); + calculator.addProducts(); } } From a351532cd2bbf9f86e67d2817743c2c2b317d098 Mon Sep 17 00:00:00 2001 From: vladislav-8 Date: 2022年10月25日 23:26:44 +0700 Subject: [PATCH 2/4] 1st --- src/main/java/Calculator.java | 16 ++++++++-------- src/main/java/Main.java | 1 + 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index ed5fbc2..761cea5 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -31,19 +31,19 @@ public void addProducts() { ArrayList products = new ArrayList(); while (true) { System.out.println("Отлично! Введите товар или напишите 'завершить'"); - String s = scanner.next(); - if (s.equalsIgnoreCase("завершить")) { + String product = scanner.next(); + if (product.equalsIgnoreCase("завершить")) { break; } else { System.out.println("Введите цену товара в формате РУБЛИ.КОПЕЙКИ Например: '[10.45]'"); - double d = scanner.nextDouble(); - products.add(s); - while (d <= 0) { + double price = scanner.nextDouble(); + products.add(product); + while (price <= 0) { System.out.println("Ошибка! Введите корректное значение."); - d = scanner.nextDouble(); + price = scanner.nextDouble(); } - total = total + d; - String s2 = "Товар " + s + " успешно добавлен!" + " " + "Стоимостью " + String.format("%.2f", d); + total = total + price; + String s2 = "Товар " + product + " успешно добавлен!" + " " + "Стоимостью " + String.format("%.2f", price); System.out.println(s2); } } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index e778bdd..75dc0e1 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -7,5 +7,6 @@ public static void main(String[] args) { Calculator calculator = new Calculator(); calculator.addPersons(); calculator.addProducts(); + } } From 1413443aefa5a74a04dcf0500eb6ca83255b7d2b Mon Sep 17 00:00:00 2001 From: vladislav-8 Date: 2022年10月25日 23:32:46 +0700 Subject: [PATCH 3/4] 1st --- src/main/java/Calculator.java | 3 +-- src/main/java/Main.java | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index 761cea5..45318bf 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -43,8 +43,7 @@ public void addProducts() { price = scanner.nextDouble(); } total = total + price; - String s2 = "Товар " + product + " успешно добавлен!" + " " + "Стоимостью " + String.format("%.2f", price); - System.out.println(s2); + System.out.println("Товар " + product + " успешно добавлен!" + " " + "Стоимостью " + String.format("%.2f", price)); } } System.out.println("Добавленные товары: " + "\n" + String.join("\n", products)); diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 75dc0e1..0c09aea 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -3,6 +3,7 @@ public class Main { public static void main(String[] args) { // ваш код начнется здесь // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости + System.out.println("Привет Мир"); Calculator calculator = new Calculator(); calculator.addPersons(); From 4e7d3b67285845516da760622c90a0aff882e29f Mon Sep 17 00:00:00 2001 From: vladislav-8 Date: 2022年10月27日 18:43:12 +0700 Subject: [PATCH 4/4] 1st (2) --- src/main/java/Calculator.java | 57 +++++++++++++++++++++++------------ src/main/java/Main.java | 1 - 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index 45318bf..15da72f 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -2,8 +2,10 @@ import java.util.ArrayList; public class Calculator { + int person = 0; double total; + String listProducts; public void addPersons() { int a; @@ -29,35 +31,52 @@ public void addPersons() { public void addProducts() { Scanner scanner = new Scanner(System.in); ArrayList products = new ArrayList(); + double price; while (true) { - System.out.println("Отлично! Введите товар или напишите 'завершить'"); + System.out.println("Введите название товара или \"Завершить\" если список товаров готов:"); String product = scanner.next(); - if (product.equalsIgnoreCase("завершить")) { + if (product.equalsIgnoreCase("Завершить")) { break; } else { - System.out.println("Введите цену товара в формате РУБЛИ.КОПЕЙКИ Например: '[10.45]'"); - double price = scanner.nextDouble(); products.add(product); - while (price <= 0) { - System.out.println("Ошибка! Введите корректное значение."); - price = scanner.nextDouble(); + } + System.out.println("Введите цену товара в формате Х.ХХ:"); + while (true) { + try { + price = Double.parseDouble(scanner.next()); + if (price <= 0) { + System.out.println("Неверный ввод. Введите цену заново:"); + } else { + total = total + price; + break; + } + } catch (Exception e) { + System.out.println("Неверный ввод. Введите цену заново:"); } - total = total + price; - System.out.println("Товар " + product + " успешно добавлен!" + " " + "Стоимостью " + String.format("%.2f", price)); } + System.out.println("Товар " + product + " успешно добавлен!"); } System.out.println("Добавленные товары: " + "\n" + String.join("\n", products)); - System.out.println("Средний чек на человека: " + String.format("%.2f", total / person) + " " + getRightWord(total / person)); + System.out.println("Средний чек на человека: " + String.format("%.2f", total / person) + " " + getRightWord((int) (total / person))); } - public static String getRightWord(double coin) { - coin = (int) Math.floor(coin); - if (coin == 0) return ""; - coin = Math.abs(coin) % 100; - int n1 = (int) (coin % 10); - if (coin> 10 && coin < 20) return "рублей"; - if (n1> 1 && n1 < 5) return "рубля"; - if (n1 == 1) return "рубль"; - return "рублей"; + + public String getRightWord(int num) { + int preLastDigit = num % 100 / 10; + if (preLastDigit == 1) { + return "рублей"; + } + + switch (num % 10) { + 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 0c09aea..db6fbfd 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -8,6 +8,5 @@ public static void main(String[] args) { Calculator calculator = new Calculator(); calculator.addPersons(); calculator.addProducts(); - } }

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