From e6fb7daceadc7370de98eb7fa7a7a3c5e7552c3c Mon Sep 17 00:00:00 2001 From: s-buvaka Date: Wed, 30 Nov 2022 22:20:36 +0300 Subject: [PATCH 1/4] Add dev branch --- src/main/java/Main.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c435..955424e69 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,3 +1,4 @@ +// dev branch for Y.Practicum public class Main { public static void main(String[] args) { From 17c0cbca7abd7bc8bbcefe19e914345b8dc0c5c3 Mon Sep 17 00:00:00 2001 From: vochikk Date: Fri, 10 Mar 2023 01:07:55 +0300 Subject: [PATCH 2/4] =?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=20=E2=84=96?= =?UTF-8?q?1=20=D0=A1=D0=BF=D1=80=D0=B8=D0=BD=D1=82=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 11 +++++++ src/main/java/Formater.java | 32 ++++++++++++++++++ src/main/java/ListOfProduct.java | 13 ++++++++ src/main/java/Main.java | 56 +++++++++++++++++++++++++++++--- 4 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 src/main/java/Calculator.java create mode 100644 src/main/java/Formater.java create mode 100644 src/main/java/ListOfProduct.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 000000000..878b625d6 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,11 @@ +public class Calculator { + double totalPrice; + int numberOfPerson; + double priceToPayment; + + public void calculate(double totalPrice, int numberOfPerson){ + this.numberOfPerson = numberOfPerson; + this.totalPrice = totalPrice; + priceToPayment = totalPrice / numberOfPerson; + } +} diff --git a/src/main/java/Formater.java b/src/main/java/Formater.java new file mode 100644 index 000000000..45eabe207 --- /dev/null +++ b/src/main/java/Formater.java @@ -0,0 +1,32 @@ +public class Formater { + String rubl; + + public String declination(double num){ + double numToFormat = Math.floor(num); + double lastDigit = numToFormat % 10; //отделяем последнюю цифру + numToFormat /= 10; //готовим число для отделения еще одной цифры + double secondToLastDigit = numToFormat % 10; //отделяем предпоследнюю цифру + + if (secondToLastDigit == 1){ + return rubl = "рублей"; + } else { + switch (String.valueOf(lastDigit)) { + case "1": + return rubl = "рубль"; + case "2": + return rubl = "рубля"; + case "3": + return rubl = "рубля"; + case "4": + return rubl = "рубля"; + default: + return rubl = "рублей"; + } + } + } + + public String rounding(double price){ + return String.format("%.2f", price); + } +} + \ No newline at end of file diff --git a/src/main/java/ListOfProduct.java b/src/main/java/ListOfProduct.java new file mode 100644 index 000000000..2abd42b7a --- /dev/null +++ b/src/main/java/ListOfProduct.java @@ -0,0 +1,13 @@ +public class ListOfProduct { + String listToByu = ""; + String nameOfProduct; + double price; + + public String addToProductList(String nameOfProduct, double price){ + this.nameOfProduct = nameOfProduct; + this.price = price; + Formater formater = new Formater(); + return listToByu = listToByu + (nameOfProduct + " - " + formater.rounding(price) + " " + + formater.declination(price) + "\n"); + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 955424e69..cae3d76b8 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,9 +1,57 @@ +import java.util.Scanner; + // dev branch for Y.Practicum public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + Scanner scanner = new Scanner(System.in); + Formater formater = new Formater(); //объект для форматирования скланения во всей программе + + + System.out.println("На сколько человек необходимо разделить счет"); + int numberOfPerson = scanner.nextInt(); + + while (true){ + if (numberOfPerson <= 1){ + System.out.println("Некорректный ввод,повторите попытку"); + numberOfPerson = scanner.nextInt(); + } else { + break; + } + } + System.out.println("Счет необходимо разделить на " + numberOfPerson); + + Calculator calculator = new Calculator(); //объект для проведения расчетов + calculator.numberOfPerson = numberOfPerson; + + ListOfProduct listOfProducts = new ListOfProduct(); //объект для хранения списка покупок + while (true){ + System.out.println("Введите название товара или команду завершить"); + listOfProducts.nameOfProduct = scanner.next(); + + String conditionToExit = "завершить"; + if (conditionToExit.equalsIgnoreCase(listOfProducts.nameOfProduct)){ + break; + } + + System.out.println("Введите цену на товар"); + listOfProducts.price = scanner.nextDouble(); + listOfProducts.listToByu = listOfProducts.addToProductList(listOfProducts.nameOfProduct, listOfProducts.price); + + System.out.println("Товар успешно добавлен"); + calculator.totalPrice = calculator.totalPrice + listOfProducts.price; + } + + if (calculator.totalPrice == 0){ + System.out.println("У Вас нет покупок"); + } else { + String rubl = formater.declination(calculator.totalPrice); + System.out.println("Вы купили:" + "\n" + listOfProducts.listToByu + "На сумму: " + + formater.rounding(calculator.totalPrice) + " " + rubl); + + calculator.calculate(calculator.totalPrice, numberOfPerson); + System.out.println("Каждому необходимо заплатить по: " + calculator.priceToPayment + " " + + formater.declination(calculator.priceToPayment)); + } } -} +} \ No newline at end of file From 09cda1c1912137a7d26477495607696b7b036104 Mon Sep 17 00:00:00 2001 From: vochikk Date: Fri, 10 Mar 2023 20:23:43 +0300 Subject: [PATCH 3/4] =?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=20=E2=84=96?= =?UTF-8?q?1=20=D0=A1=D0=BF=D1=80=D0=B8=D0=BD=D1=82=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index cae3d76b8..b5c7a3474 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -9,12 +9,22 @@ public static void main(String[] args) { System.out.println("На сколько человек необходимо разделить счет"); - int numberOfPerson = scanner.nextInt(); + int numberOfPerson; + while (!scanner.hasNextInt()){ + System.out.println("Некорректный ввод,повторите попытку"); + scanner.next(); + } + numberOfPerson = scanner.nextInt(); while (true){ if (numberOfPerson <= 1){ System.out.println("Некорректный ввод,повторите попытку"); + while (!scanner.hasNextInt()){ + System.out.println("Некорректный ввод,повторите попытку"); + scanner.next(); + } numberOfPerson = scanner.nextInt(); + } else { break; } @@ -35,6 +45,10 @@ public static void main(String[] args) { } System.out.println("Введите цену на товар"); + while (!scanner.hasNextDouble()){ + System.out.println("Некорректный ввод,повторите попытку"); + scanner.next(); + } listOfProducts.price = scanner.nextDouble(); listOfProducts.listToByu = listOfProducts.addToProductList(listOfProducts.nameOfProduct, listOfProducts.price); From 4c0afecc455ac682d8aa2b79d8da4ed7ff562c20 Mon Sep 17 00:00:00 2001 From: vochikk Date: Sat, 11 Mar 2023 17:11:36 +0300 Subject: [PATCH 4/4] =?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=20=E2=84=96?= =?UTF-8?q?1=20=D0=A1=D0=BF=D1=80=D0=B8=D0=BD=D1=82=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index b5c7a3474..ed1d6b5d6 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -50,6 +50,15 @@ public static void main(String[] args) { scanner.next(); } listOfProducts.price = scanner.nextDouble(); + while (listOfProducts.price < 0){ + System.out.println("Некорректный ввод, повторите попытку"); + while (!scanner.hasNextDouble()){ + System.out.println("Некорректный ввод,повторите попытку"); + scanner.next(); + } + listOfProducts.price = scanner.nextDouble(); + } + listOfProducts.listToByu = listOfProducts.addToProductList(listOfProducts.nameOfProduct, listOfProducts.price); System.out.println("Товар успешно добавлен"); @@ -64,7 +73,7 @@ public static void main(String[] args) { + formater.rounding(calculator.totalPrice) + " " + rubl); calculator.calculate(calculator.totalPrice, numberOfPerson); - System.out.println("Каждому необходимо заплатить по: " + calculator.priceToPayment + " " + System.out.println("Каждому необходимо заплатить по: " + formater.rounding(calculator.priceToPayment) + " " + formater.declination(calculator.priceToPayment)); } }