From e6fb7daceadc7370de98eb7fa7a7a3c5e7552c3c Mon Sep 17 00:00:00 2001 From: s-buvaka Date: 2022年11月30日 22:20:36 +0300 Subject: [PATCH 1/2] 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 9fba71bb4b77ec3db449274b944103b3520a5eaa Mon Sep 17 00:00:00 2001 From: ValentinPside <91324342+valentinpside@users.noreply.github.com> Date: 2022年12月28日 17:30:10 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=201=D0=B9=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 53 ++++++++++++++++++++++++++++++++ src/main/java/Dish.java | 57 +++++++++++++++++++++++++++++++++++ src/main/java/Main.java | 48 ++++++++++++++++++++++++++--- 3 files changed, 154 insertions(+), 4 deletions(-) create mode 100644 src/main/java/Calculator.java create mode 100644 src/main/java/Dish.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 000000000..677c039fe --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,53 @@ +import java.util.ArrayList; + +public class Calculator { + public Calculator(int personCount, ArrayList dishesList) { + calculate(personCount, dishesList); + } + + private void calculate(int personCount, ArrayList dishesList){ + showDishList(dishesList); + totalPriceForPerson(personCount, dishesList); + } + + private String getRightEnding(double price){ + String ending = ""; + String x = "рубль"; + String y = "рубля"; + String z = "рублей"; + if(price%100>= 11 && price%100 <= 14){ + ending = z; + return ending; + } + if(price%10 == 1){ + ending = x; + return ending; + } + if(price%10 == 2 || price%10 == 3 || price%10 == 4){ + ending = y; + return ending; + } + return z; + } + + private void showDishList(ArrayList dishesList){ + System.out.println("Добавленные товары:"); + double price; + for(int i = 0; i < dishesList.size(); i++){ + price = dishesList.get(i).getPrice(); + String ending = getRightEnding(price); + System.out.println("Позиция: " + dishesList.get(i).getName() + " Цена: " + String.format("%.2f", dishesList.get(i).getPrice()) + " " + ending); + } + } + + private void totalPriceForPerson(int personCount, ArrayList dishesList){ + Double totalPrice = 0.0; + for(int i = 0; i < dishesList.size(); i++){ + totalPrice = totalPrice + dishesList.get(i).getPrice(); + } + totalPrice = totalPrice / personCount; + double price = totalPrice; + String ending = getRightEnding(price); + System.out.println("Итоговая цена для каждой персоны: " + String.format("%.2f", totalPrice) + " " + ending); + } +} diff --git a/src/main/java/Dish.java b/src/main/java/Dish.java new file mode 100644 index 000000000..42d06164b --- /dev/null +++ b/src/main/java/Dish.java @@ -0,0 +1,57 @@ +import java.util.Scanner; + +public class Dish { + + private Double price; + private String name; + + public Dish() { + setName(); + setPrice(); + System.out.println("Позиция успешно добавлена!"); + } + + public Double getPrice() { + return price; + } + + public String getName() { + return name; + } + + public void setName() { + Scanner scanner = new Scanner(System.in); + while(true){ + System.out.println("Введите название блюда."); + String line = scanner.nextLine(); + if(line.trim().isEmpty()){ + System.out.println("Ничего не введено. Попробуйте снова"); + continue; + } + else{ + name = line; + break; + } + } + } + + public void setPrice() { + Scanner scanner; + while(true){ + System.out.println("Укажите стоимость " + name); + scanner = new Scanner(System.in);; + if(!scanner.hasNextDouble()){ + System.out.println("Нужно число без букв. Попробуйте снова"); + continue; + } + price = scanner.nextDouble(); + if(price <= 0.0){ + System.out.println("Цена должна быть положительной. Попробуйте снова"); + continue; + } + else{ + break; + } + } + } +} \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 955424e69..97142c752 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,9 +1,49 @@ +import java.util.ArrayList; +import java.util.Scanner; + // dev branch for Y.Practicum public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + Double price; + String name; + + ArrayList dishesList = new ArrayList(); + + int personCount = getPersonCount(); + + Scanner scanner = new Scanner(System.in); + String line = ""; + while(true){ + dishesList.add(new Dish()); + System.out.println("Для добавления нового товара введите что угодно. Для завершения введите 'завершить'"); + line = scanner.nextLine(); + if(line.equalsIgnoreCase("завершить")){ + System.out.println("Составление списка успешно завершино"); + break; + } + } + Calculator calculator = new Calculator(personCount, dishesList); + + } + private static int getPersonCount(){ + Scanner scanner; + while(true){ + System.out.println("На скольких человек необходимо разделить счёт?"); + scanner = new Scanner(System.in); + if(!scanner.hasNextInt()){ + System.out.println("Нужно целое число без букв. Попробуйте снова"); + continue; + } + int personCount = scanner.nextInt(); + if(personCount < 2){ + System.out.println("Число персон должно быть не меньше двух. Попробуйте снова"); + continue; + } + else{ + System.out.println("Счёт будет разделён на " + personCount + " персоны"); + return personCount; + } + } } -} +} \ No newline at end of file

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