From 83a7216ba0ecbdf537d7137c2708aa3c274811eb Mon Sep 17 00:00:00 2001 From: s-buvaka Date: 2022年7月27日 22:57:22 +0300 Subject: [PATCH 1/2] Init commit --- src/main/java/Calculator.java | 22 ----------------- src/main/java/Formatter.java | 17 ------------- src/main/java/Item.java | 10 -------- src/main/java/Main.java | 45 +---------------------------------- 4 files changed, 1 insertion(+), 93 deletions(-) delete mode 100644 src/main/java/Calculator.java delete mode 100644 src/main/java/Formatter.java delete mode 100644 src/main/java/Item.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java deleted file mode 100644 index 2fbc00d..0000000 --- a/src/main/java/Calculator.java +++ /dev/null @@ -1,22 +0,0 @@ -class Calculator { - - int friendsCount; - - String cart = "Добавленные товары:"; - double totalPrice = 0; - - Calculator(int friendsCount) { - this.friendsCount = friendsCount; - } - - void addItem(Item item) { - totalPrice += item.price; - cart = cart + "\n" + item.name; - - System.out.println(item.name + " в корзине"); - } - - double divideSum() { - return totalPrice / friendsCount; - } -} diff --git a/src/main/java/Formatter.java b/src/main/java/Formatter.java deleted file mode 100644 index 3f915b7..0000000 --- a/src/main/java/Formatter.java +++ /dev/null @@ -1,17 +0,0 @@ -public class Formatter { - - String formatValue(double price) { - double roundedValue = Math.floor(price); - if (roundedValue == 1) { - return "рубль"; - } else if (roundedValue>= 2 && roundedValue <= 4) { - return "рубля"; - } else { - return "рублей"; - } - } - - String roundResult(final double result) { - return String.format("%.2f", result); - } -} diff --git a/src/main/java/Item.java b/src/main/java/Item.java deleted file mode 100644 index fad8a4e..0000000 --- a/src/main/java/Item.java +++ /dev/null @@ -1,10 +0,0 @@ -class Item { - - String name; - double price; - - Item(String name, double price) { - this.name = name; - this.price = price; - } -} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 11ba5d3..964dbb0 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,49 +1,6 @@ -import java.util.Scanner; - public class Main { public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - - int friendCount; - while (true) { - System.out.println("На сколько человек необходимо разделить счет?"); - friendCount = scanner.nextInt(); - - if (friendCount> 1) { - break; - } else if (friendCount == 1) { - System.out.println( - "Нет смысла делить сумму на одного человека. Давайте попробуем ввести другое значение, которое будет больше единицы."); - } else { - System.out.println("Неверное количество друзей. Значение должно быть болье единицы, давайте попробуем еще раз."); - } - } - - Calculator calculator = new Calculator(friendCount); - - while (true) { - System.out.println("Введите название товара"); - String name = scanner.next(); - - System.out.println("Введите стоимость товара в формате: 'рубли.копейки' [10.45, 11.40]"); - double price = scanner.nextDouble(); - - calculator.addItem(new Item(name, price)); - - System.out.println( - "Хотите добавить еще один товар? Введите любой символ для продолжения, либо 'Завершить' если больше нет товаров для добавления"); - String answer = scanner.next(); - - if (answer.equalsIgnoreCase("Завершить")) { - break; - } - } - - double result = calculator.divideSum(); - Formatter formatter = new Formatter(); - - System.out.println(calculator.cart); - System.out.println("Каждому человеку к оплате: " + formatter.roundResult(result) + " " + formatter.formatValue(result)); + // ваш код начнется здесь } } From 0ddde6240f30e9ab14ff26faa541349a1cfab1ec Mon Sep 17 00:00:00 2001 From: zhabkin Date: 2022年9月26日 13:32:19 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9A=D0=B0=D0=BB=D1=8C=D0=BA=D1=83=D0=BB?= =?UTF-8?q?=D1=8F=D1=82=D0=BE=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/Main.java | 127 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 124 insertions(+), 3 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..214f506 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,129 @@ +import java.util.Scanner; public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + int numberOfPeople = Input.inputCheckInt(); //проверка ввода + Calculator.calculate(numberOfPeople); //подсчет и вывод + } } + +class Input { + + public static int inputCheckInt(){ + int result; + System.out.println("Привет. Укажите на какое количество человек поделить счет: "); + while(true) { + Scanner sc = new Scanner(System.in); + if(sc.hasNextInt()) { + result = sc.nextInt(); + if(result%10> 1 && result%10 < 5){ + System.out.println("Сумма будет поделена на " + result +" человека."); + break; + } + else if (result%10>= 5) { + System.out.println("Сумма будет поделена на " + result +" человек."); + break; + } + else{ + System.out.println("Количество человек должно быть больше 1, попробуйте снова: "); + } + } + + + else{ + System.out.println("Пожалуйста, введите ЦЕЛОЕ число: "); + } + } + return result; + } //проверка на целое число для кол-ва людей + public static double inputCheckDouble(){ + double resultDouble; + while(true){ + Scanner priceStuff = new Scanner(System.in); + if(priceStuff.hasNextDouble()){ + resultDouble = priceStuff.nextDouble(); + if(resultDouble> 0) { + break; + } + else { + System.out.println("Пожалуйста, введите корректную сумму: "); + } + } + else{ + System.out.println("Пожалуйста, введите корректную сумму: "); + } + } + return resultDouble; + } //проверка на дробное для стоимости товара + public static boolean answerCheck(){ + String resultString; + while(true){ + Scanner anwserString = new Scanner(System.in); + resultString = anwserString.nextLine(); + if(resultString.equalsIgnoreCase("завершить")){ + return false; + } + else if(resultString.equalsIgnoreCase("да")){ + return true; + } + else{ + System.out.println("Пожалуйста, введите одну из доступных команд: "); + } + } + + } //проверка на ввод доступных команд +} + +class Stuff { + + String label = ""; + double price = 0; + public static double addStuff(){ + Stuff npStuff = new Stuff(); + while(true){ + System.out.println("Укажите наименование товара: "); + Scanner nameStuff = new Scanner(System.in); + npStuff.label = npStuff.label + "\n" + nameStuff.nextLine(); + System.out.println("Укажите стоимость товара: "); + double e = Input.inputCheckDouble(); + npStuff.price = npStuff.price + e; + System.out.println("Товар добавлен. \nХотите добаить еще один товар? \nВведите 'Да', чтобы продолжить и 'Завершить', чтобы закончить"); + if(!Input.answerCheck()){ + break; + } + } + System.out.println("Список товаров: \n" + npStuff.label); + + return npStuff.price; + } //добавить товар +} + +class Calculator { + + public static void calculate(int result){ + double finalPrice = Stuff.addStuff(); + String fullPrice = "\nОбщая стоимость всех товаров: %.2f"; + System.out.println(String.format(fullPrice, finalPrice) + roubles(finalPrice)); + finalPrice = finalPrice/result; + String message = "\nИтоговая сумма на 1 человека: %.2f"; + System.out.println(String.format(message, finalPrice) + roubles(finalPrice)); + } //подсчет и вывод результата + + public static String roubles(double varPrice){ + String rubResult; + if(Math.floor(varPrice)%10 == 1 && Math.floor(varPrice) != 11){ + rubResult= "рубль"; + } + else if(Math.floor(varPrice)%10>= 2 && Math.floor(varPrice)%10 <= 4 ) { + rubResult = " рубля"; + } + else{ + rubResult = " рублей"; + + } + return rubResult; + } //рубль/ля/лей +} + +

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