From f27f80234d5273b8023542509c3ec9450dac8eff Mon Sep 17 00:00:00 2001 From: Andrey Gurin Date: Sat, 4 May 2024 19:48:49 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=20?= =?UTF-8?q?=D0=9A=D0=B0=D0=BB=D1=8C=D0=BA=D1=83=D0=BB=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=80=20=D1=81=D1=87=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 27 +++++++++++++++++++ src/main/java/Formatter.java | 13 ++++++++++ src/main/java/Main.java | 49 +++++++++++++++++++++++++++++++++++ src/main/java/Product.java | 8 ++++++ 4 files changed, 97 insertions(+) create mode 100644 src/main/java/Calculator.java create mode 100644 src/main/java/Formatter.java create mode 100644 src/main/java/Product.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 000000000..018b29750 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,27 @@ +import java.util.ArrayList; + +public class Calculator { + + ArrayList products = new ArrayList(); + public void addProduct(Product product){ + if (products.add(product)) + System.out.println("Товар успешно добавлен"); + } + + public void printProducts() { + System.out.println("Добавленные товары:"); + for (Product it : products){ + System.out.println(it.name + ": " + it.price); + } + } + + public void calculateForPersons(int persons) { + double sum = 0f; + for (Product it : products){ + sum += it.price; + } + double total = sum / persons; + Formatter format = new Formatter(total); + System.out.println("Сумма, которую должен заплатить каждый: " + format.getStringPrice()); + } +} diff --git a/src/main/java/Formatter.java b/src/main/java/Formatter.java new file mode 100644 index 000000000..bd7d6bda4 --- /dev/null +++ b/src/main/java/Formatter.java @@ -0,0 +1,13 @@ +public class Formatter { + double price; + public Formatter(double price){ + this.price = price; + } + public String getStringPrice() { + + if (Math.floor(price) < 2) + return String.format("%.2f", price) + " рубль"; + else + return String.format("%.2f", price) + " рубля"; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..b50ce57e8 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,55 @@ +import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.println("Hello world!"); + int persons = -1; + Scanner scaner = new Scanner(System.in); + while (persons <= 1) { + System.out.println("Введите количество человек"); + if (scaner.hasNextInt()) { + persons = scaner.nextInt(); + if (persons <= 1){ + System.out.println("Введено некорректное значение (должно быть больше 1)"); + } + } else + { + System.out.println("Введено некорректное значение (должно быть число)"); + scaner.next(); + } + } + System.out.println("Количество человек для расчета " + persons); + + Calculator calculator = new Calculator(); + while (true) + { + System.out.println("Введите название товара (для завершения введите \"Завершить\"):"); + String name = scaner.next(); + if (name.equalsIgnoreCase("Завершить")) { + break; + } else { + double price = askForPrice(scaner); + calculator.addProduct(new Product(name, price)); + } + } + scaner.close(); + calculator.printProducts(); + calculator.calculateForPersons(persons); + } + public static double askForPrice(Scanner scanerPrice) { + while (true) { + System.out.println("Введите стоимость товара (в формате рубли.копейки)"); + if (scanerPrice.hasNextFloat()){ + double price = scanerPrice.nextDouble(); + if (price> 0) { + return price; + } + else + System.out.println("Стоимость не может быть меньше или равна нулю"); + }else { + System.out.println("Формат стоимости должен быть: рубли.копейки"); + scanerPrice.next(); + } + } } } \ No newline at end of file diff --git a/src/main/java/Product.java b/src/main/java/Product.java new file mode 100644 index 000000000..cbd9d7835 --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,8 @@ +public class Product { + double price; + String name; + public Product(String name, double price) { + this.name = name; + this.price = price; + } +} From c6496403d211065f9ad66ebb886f608b71c7b7f6 Mon Sep 17 00:00:00 2001 From: AndreyGurinV <136261242+andreygurinv@users.noreply.github.com> Date: Sun, 5 May 2024 08:08:37 +0300 Subject: [PATCH 2/5] Update src/main/java/Main.java Co-authored-by: AleksandrIlinskii <129396632+aleksandrilinskii@users.noreply.github.com> --- src/main/java/Main.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index b50ce57e8..2f9df5bec 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -12,8 +12,7 @@ public static void main(String[] args) { if (persons <= 1){ System.out.println("Введено некорректное значение (должно быть больше 1)"); } - } else - { + } else { System.out.println("Введено некорректное значение (должно быть число)"); scaner.next(); } From cab33582a9da633875bef8e3d432401c7506ee39 Mon Sep 17 00:00:00 2001 From: AndreyGurinV <136261242+andreygurinv@users.noreply.github.com> Date: Sun, 5 May 2024 08:08:45 +0300 Subject: [PATCH 3/5] Update src/main/java/Main.java Co-authored-by: AleksandrIlinskii <129396632+aleksandrilinskii@users.noreply.github.com> --- src/main/java/Main.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 2f9df5bec..68c1cedea 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -20,8 +20,7 @@ public static void main(String[] args) { System.out.println("Количество человек для расчета " + persons); Calculator calculator = new Calculator(); - while (true) - { + while (true) { System.out.println("Введите название товара (для завершения введите \"Завершить\"):"); String name = scaner.next(); if (name.equalsIgnoreCase("Завершить")) { From 8e956d15cbe607b81e65808569f8daef607ee537 Mon Sep 17 00:00:00 2001 From: AndreyGurinV <136261242+andreygurinv@users.noreply.github.com> Date: Sun, 5 May 2024 08:08:53 +0300 Subject: [PATCH 4/5] Update src/main/java/Main.java Co-authored-by: AleksandrIlinskii <129396632+aleksandrilinskii@users.noreply.github.com> --- src/main/java/Main.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 68c1cedea..f536d3c3d 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -41,9 +41,9 @@ public static double askForPrice(Scanner scanerPrice) { double price = scanerPrice.nextDouble(); if (price> 0) { return price; - } - else + } else { System.out.println("Стоимость не может быть меньше или равна нулю"); + } }else { System.out.println("Формат стоимости должен быть: рубли.копейки"); scanerPrice.next(); From 3616b111b591ab27c6336f8ac8ff1236676c74c8 Mon Sep 17 00:00:00 2001 From: Andrey Gurin Date: Sun, 5 May 2024 08:45:09 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=A3=D1=81=D0=BE=D0=B2=D0=B5=D1=80=D1=88?= =?UTF-8?q?=D0=B5=D0=BD=D1=81=D1=82=D0=B2=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=B0?= =?UTF-8?q?=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC=20=D0=BE=D0=BF=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BE=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D1=87=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Formatter.java | 20 +++++++++++++++----- src/main/java/Main.java | 1 - 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/Formatter.java b/src/main/java/Formatter.java index bd7d6bda4..27cae94ce 100644 --- a/src/main/java/Formatter.java +++ b/src/main/java/Formatter.java @@ -4,10 +4,20 @@ public Formatter(double price){ this.price = price; } public String getStringPrice() { - - if (Math.floor(price) < 2) - return String.format("%.2f", price) + " рубль"; - else - return String.format("%.2f", price) + " рубля"; + double prc = Math.floor(price); + prc %= 100; + if (prc>= 5 && prc <= 20){ + return String.format("%.2f", price) + " рублей"; + } + else { + prc %= 10; + if (prc == 1) { + return String.format("%.2f", price) + " рубль"; + } else if (prc> 1 && prc < 5){ + return String.format("%.2f", price) + " рубля"; + } else { + return String.format("%.2f", price) + " рублей"; + } + } } } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index f536d3c3d..74f7da489 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -2,7 +2,6 @@ public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); int persons = -1; Scanner scaner = new Scanner(System.in); while (persons <= 1) {

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