From 6faf091eb9f086f985156e2bd79000b11605367f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=BE=D0=BC=D0=B0=D0=BD?= Date: 2023年4月24日 15:38:48 +0500 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0=20=D0=B2=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=BE=D0=B9=20=D0=BF=D1=80=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B9=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D1=8B=20=D0=B8=20=D0=BD=D0=B0=D0=B4=D0=B5=D1=8E?= =?UTF-8?q?=D1=81=D1=8C=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=D0=B4=D0=BD=D1=8F?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculate.java | 54 ++++++++++++++++++++++++++++++++++++ src/main/java/Main.java | 39 ++++++++++++++++++++++++-- src/main/java/Product.java | 9 ++++++ 3 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 src/main/java/Calculate.java create mode 100644 src/main/java/Product.java diff --git a/src/main/java/Calculate.java b/src/main/java/Calculate.java new file mode 100644 index 000000000..076e9f232 --- /dev/null +++ b/src/main/java/Calculate.java @@ -0,0 +1,54 @@ +import java.util.Scanner; + +public class Calculate { + Scanner scanner = new Scanner(System.in); + String ProductList; + double check = 0.0; + + void addProduct(){ + System.out.println("Введите наименование позиции:"); + String name = scanner.nextLine(); + double price; // Стоимость позиции + while (true) { + Scanner pr = new Scanner(System.in); + System.out.println("Введите цену (Рубли,копейки): "); + if (pr.hasNextDouble()) { + double x = pr.nextDouble(); + if (x> 0){ + price = x; + break; + } else { + System.out.println("Цена должна быть больше 0."); // За подарки от соседнего столика тоже надо платить :c + } + } else { + System.out.println("Некорректное значение! Убедитесь, что вводите в правильном формате (Рубли,копейки)."); + } + } + Product product = new Product(name, price); + ProductList += name + "\n"; + check += price; + } + void print() { + System.out.println("Добавленные позиции:\n" + ProductList); + } + double splitCheck(int howManyPerson) { + double f; + f = check / howManyPerson; + return f; + } + String valuteFormat(double num) { // Честно, взят с интернета. Хотелось бы видеть такие задание в тренажерах ранее ;) + int x = (int) num; + if (x %100 / 10 == 1){ + return "рублей"; + } else { + switch(x %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 db9356a08..e931a5d96 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,41 @@ +import android.content.DialogInterface; + +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + Scanner scanner = new Scanner(System.in); + int howManyPerson = 0; // Итоговое кол-во человек + while (howManyPerson <= 1) { // Запрос на кол-во + while (true) { + Scanner p = new Scanner(System.in); + System.out.println("На сколько человек делить счет?"); + if (p.hasNextInt()) { + howManyPerson = p.nextInt(); + break; + } else { + System.out.println("Некорректное значение! Введите целое число."); + } + } + if (howManyPerson <= 1) { // При введенной 1 + System.out.println("Значение должно быть больше 1."); + } + } + Calculate c = new Calculate(); + while (true) { + c.addProduct(); // Запуск "addProduct" из "Calculate" для добавления позиции из счета + System.out.println("Позиция успешно добавлена! Добавить ещё одну?\nЕсли да, то введите любой символ.\nНапишите \"Завершить\", что бы произвести подсчет."); + String answer = scanner.next(); // Проверка ответа + if (answer.equalsIgnoreCase("завершить")) { + break; + } + } + c.print(); // Отображение всех введеных позиций + String i = String.format("%.2f", c.splitCheck(howManyPerson)); // Округление до сотых. + System.out.println("Каждый должен заплатить:\n"+ i + " " + c.valuteFormat(c.splitCheck(howManyPerson)) ); } -} \ 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..cffd251ab --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,9 @@ +// Класс для калькулятора +public class Product { + String name; + double price; + Product (String name, double price){ + this.name = name; + this.price = price; + } +} From 0505ee685b2217639e9d56a82bd04f2ae8b68ce9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=BE=D0=BC=D0=B0=D0=BD?= Date: 2023年4月24日 21:37:24 +0500 Subject: [PATCH 2/2] re --- src/main/java/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index e931a5d96..8d83d5d9b 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -6,7 +6,7 @@ public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int howManyPerson = 0; // Итоговое кол-во человек - while (howManyPerson <= 1) { // Запрос на кол-во + while (howManyPerson <= 1) { // Запрос на кол-во персон while (true) { Scanner p = new Scanner(System.in); System.out.println("На сколько человек делить счет?");

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