From 63de040a0dff64abe29b69fc30ded177d0d602c4 Mon Sep 17 00:00:00 2001 From: MajoritySky2496 Date: 2022年8月19日 08:33:58 +0500 Subject: [PATCH 1/4] =?UTF-8?q?=D0=9C=D0=BE=D0=B9=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B2=D1=8B=D0=B9=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=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/Main.java | 109 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 104 insertions(+), 5 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..beafc8b 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,107 @@ -public class Main { +import java.util.Locale; +import java.util.Scanner; + +import static java.lang.Math.floor; + + +public class Main { + static Scanner scanner = new Scanner(System.in).useLocale(Locale.ROOT); public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + new Main().result(); + } + public void result(){ + + double people = countPeople(); + double sumProducts = addProduct(); + double result = sumProducts/people; + String currency; + String currency2; + + switch ((int) (floor(sumProducts)%10)) { + + case 1: + currency = "рубль"; + break; + case 2: + case 3: + case 4: + currency = "рубля"; + break; + default: + currency = "рублей"; + break; + } + switch ((int) (floor(result)%10)) { + + case 1: + currency2 = "рубль"; + break; + case 2: + case 3: + case 4: + currency2 = "рубля"; + break; + default: + currency2 = "рублей"; + break; + } + String conclusion = "Cумма товаров %.2f %s\nНа одного человека %.2f %s"; + System.out.printf(conclusion,sumProducts,currency, result, currency2); + } + public int countPeople(){ + System.out.println("На скольких человек разделить счет?"); + int people; + while(true){ + people = scanner.nextInt(); + + if (people==1){ + System.out.println("Это некорректное значение для подсчёта! Нет смысла делить счет, если вы только один. Введите корректное значение =)"); + + } else if(people<1){ + System.out.println("Это некорректное значение для подсчёта! Введите корректное значение =)"); + } + else { + break; + + } + } + System.out.println("Количество человек " + people); + return people; + } + public double addProduct(){ + + String product; + String allProduct = "Добавленные товары:\n"; + double price; + double sumPrice = 0; + + while (true){ + + System.out.println("Введите товар или 'Завершить', чтобы выйти"); + product = scanner.next(); + if (product.equalsIgnoreCase("Завершить")){ + System.out.println(allProduct); + break; + + }else { + System.out.println("Вы успешно добавили товар " + product); + allProduct += product + "\n"; + System.out.println("Введите стоймость товара в формате 'рубли.копейки'[10.45, 11.40]"); + while (true){ + price = scanner.nextDouble(); + if(price < 0){ + System.out.println("Цена не может быть с минусом, введите заново!"); + }else { + break; + } + } + + sumPrice = sumPrice + price; + + } + } + return sumPrice; } -} +} \ No newline at end of file From 8c560c983703c3f3af24f5bbf23c073b5d3752d8 Mon Sep 17 00:00:00 2001 From: MajoritySky2496 Date: 2022年8月19日 15:35:42 +0500 Subject: [PATCH 2/4] =?UTF-8?q?=D0=9C=D0=BE=D0=B9=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B2=D1=8B=D0=B9=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=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"=202.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index beafc8b..110cf3a 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -50,24 +50,23 @@ public void result(){ String conclusion = "Cумма товаров %.2f %s\nНа одного человека %.2f %s"; System.out.printf(conclusion,sumProducts,currency, result, currency2); } - public int countPeople(){ + public int countPeople() { System.out.println("На скольких человек разделить счет?"); int people; - while(true){ - people = scanner.nextInt(); - - if (people==1){ - System.out.println("Это некорректное значение для подсчёта! Нет смысла делить счет, если вы только один. Введите корректное значение =)"); - - } else if(people<1){ - System.out.println("Это некорректное значение для подсчёта! Введите корректное значение =)"); - } - else { - break; - + while (true) { + if (scanner.hasNextInt()) { + people = scanner.nextInt(); + if (people> 1) { + System.out.println("Количество человек " + people); + break; + } else { + System.out.println("Это некорректное значение для подсчёта! Нет смысла делить счет, если вы только один. Введите корректное значение =)"); + } + } else { + System.out.println("У нас ошибка! Попробуй ввести цифру=)"); } + scanner.nextLine(); } - System.out.println("Количество человек " + people); return people; } public double addProduct(){ From f775f9522163ca38b7c9e07ec7f31eda9ead8ec9 Mon Sep 17 00:00:00 2001 From: MajoritySky2496 Date: 2022年8月20日 08:03:51 +0500 Subject: [PATCH 3/4] =?UTF-8?q?=D0=9C=D0=BE=D0=B9=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B2=D1=8B=D0=B9=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=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"=203.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 102 +++++++++++++++++++++++++++++++++ src/main/java/Main.java | 104 ++-------------------------------- 2 files changed, 106 insertions(+), 100 deletions(-) create mode 100644 src/main/java/Calculator.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 0000000..c8fe367 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,102 @@ +import static java.lang.Math.floor; + +import java.util.Locale; +import java.util.Scanner; + +public class Calculator { + static Scanner scanner = new Scanner(System.in).useLocale(Locale.ROOT); + + public void result(){ + + double people = countPeople(); + double sumProducts = addProduct(); + double result = sumProducts/people; + String currency; + String currency2; + + switch ((int) (floor(sumProducts)%10)) { + + case 1: + currency = "рубль"; + break; + case 2: + case 3: + case 4: + currency = "рубля"; + break; + default: + currency = "рублей"; + break; + } + switch ((int) (floor(result)%10)) { + + case 1: + currency2 = "рубль"; + break; + case 2: + case 3: + case 4: + currency2 = "рубля"; + break; + default: + currency2 = "рублей"; + break; + } + String conclusion = "Cумма товаров %.2f %s\nНа одного человека %.2f %s"; + System.out.printf(conclusion,sumProducts,currency, result, currency2); + } + public int countPeople() { + System.out.println("На скольких человек разделить счет?"); + int people; + while (true) { + if (scanner.hasNextInt()) { + people = scanner.nextInt(); + if (people> 1) { + System.out.println("Количество человек " + people); + break; + } else { + System.out.println("Это некорректное значение для подсчёта! Нет смысла делить счет, если вы только один. Введите корректное значение =)"); + } + } else { + System.out.println("У нас ошибка! Попробуй ввести цифру=)"); + } + scanner.nextLine(); + } + return people; + } + public double addProduct(){ + + String product; + String allProduct = "Добавленные товары:\n"; + double price; + double sumPrice = 0; + + while (true){ + + System.out.println("Введите товар или 'Завершить', чтобы выйти"); + product = scanner.next(); + if (product.equalsIgnoreCase("Завершить")){ + System.out.println(allProduct); + break; + + }else { + System.out.println("Вы успешно добавили товар " + product); + allProduct += product + "\n"; + System.out.println("Введите стоймость товара в формате 'рубли.копейки'[10.45, 11.40]"); + while (true){ + price = scanner.nextDouble(); + if(price < 0){ + System.out.println("Цена не может быть с минусом, введите заново!"); + }else { + break; + } + } + + sumPrice = sumPrice + price; + + } + } + return sumPrice; + } +} + diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 110cf3a..0233f3c 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,106 +1,10 @@ -import java.util.Locale; -import java.util.Scanner; - -import static java.lang.Math.floor; - - public class Main { - static Scanner scanner = new Scanner(System.in).useLocale(Locale.ROOT); - public static void main(String[] args) { - - new Main().result(); - } - public void result(){ - - double people = countPeople(); - double sumProducts = addProduct(); - double result = sumProducts/people; - String currency; - String currency2; - - switch ((int) (floor(sumProducts)%10)) { - case 1: - currency = "рубль"; - break; - case 2: - case 3: - case 4: - currency = "рубля"; - break; - default: - currency = "рублей"; - break; - } - switch ((int) (floor(result)%10)) { - case 1: - currency2 = "рубль"; - break; - case 2: - case 3: - case 4: - currency2 = "рубля"; - break; - default: - currency2 = "рублей"; - break; - } - String conclusion = "Cумма товаров %.2f %s\nНа одного человека %.2f %s"; - System.out.printf(conclusion,sumProducts,currency, result, currency2); - } - public int countPeople() { - System.out.println("На скольких человек разделить счет?"); - int people; - while (true) { - if (scanner.hasNextInt()) { - people = scanner.nextInt(); - if (people> 1) { - System.out.println("Количество человек " + people); - break; - } else { - System.out.println("Это некорректное значение для подсчёта! Нет смысла делить счет, если вы только один. Введите корректное значение =)"); - } - } else { - System.out.println("У нас ошибка! Попробуй ввести цифру=)"); - } - scanner.nextLine(); - } - return people; - } - public double addProduct(){ - - String product; - String allProduct = "Добавленные товары:\n"; - double price; - double sumPrice = 0; - - while (true){ - - System.out.println("Введите товар или 'Завершить', чтобы выйти"); - product = scanner.next(); - if (product.equalsIgnoreCase("Завершить")){ - System.out.println(allProduct); - break; - - }else { - System.out.println("Вы успешно добавили товар " + product); - allProduct += product + "\n"; - System.out.println("Введите стоймость товара в формате 'рубли.копейки'[10.45, 11.40]"); - while (true){ - price = scanner.nextDouble(); - if(price < 0){ - System.out.println("Цена не может быть с минусом, введите заново!"); - }else { - break; - } - } - - sumPrice = sumPrice + price; + public static void main(String[] args) { - } - } - return sumPrice; + Calculator calculator = new Calculator(); + calculator.result(); } -} \ No newline at end of file +} From 7aacfbbdcf696f2cfc1c4fb61ae8c95b5c01422a Mon Sep 17 00:00:00 2001 From: MajoritySky2496 Date: 2022年8月21日 10:30:18 +0500 Subject: [PATCH 4/4] =?UTF-8?q?=D0=9C=D0=BE=D0=B9=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B2=D1=8B=D0=B9=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=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"=204.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 77 +++++++++++++++-------------------- src/main/java/Main.java | 12 +++++- 2 files changed, 44 insertions(+), 45 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index c8fe367..eecd526 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -6,45 +6,6 @@ public class Calculator { static Scanner scanner = new Scanner(System.in).useLocale(Locale.ROOT); - public void result(){ - - double people = countPeople(); - double sumProducts = addProduct(); - double result = sumProducts/people; - String currency; - String currency2; - - switch ((int) (floor(sumProducts)%10)) { - - case 1: - currency = "рубль"; - break; - case 2: - case 3: - case 4: - currency = "рубля"; - break; - default: - currency = "рублей"; - break; - } - switch ((int) (floor(result)%10)) { - - case 1: - currency2 = "рубль"; - break; - case 2: - case 3: - case 4: - currency2 = "рубля"; - break; - default: - currency2 = "рублей"; - break; - } - String conclusion = "Cумма товаров %.2f %s\nНа одного человека %.2f %s"; - System.out.printf(conclusion,sumProducts,currency, result, currency2); - } public int countPeople() { System.out.println("На скольких человек разделить счет?"); int people; @@ -84,19 +45,47 @@ public double addProduct(){ allProduct += product + "\n"; System.out.println("Введите стоймость товара в формате 'рубли.копейки'[10.45, 11.40]"); while (true){ - price = scanner.nextDouble(); - if(price < 0){ - System.out.println("Цена не может быть с минусом, введите заново!"); - }else { - break; + if (scanner.hasNextDouble()) {//сделал обработку стоймости, но есть проблема, сообщение об ошибке выводится 2 раза подряд. В обработке количества человек такой проблемы нет. Поскажите, пожалуйста, что с этим можно сделать ? + price = scanner.nextDouble(); + if (price < 0) { + System.out.println("Цена не может быть с минусом, введите заново!"); + } else { + break; + } + }else{ + System.out.println("У нас ошибка! Попробуй ввести цифру=)"); + } + scanner.nextLine(); + } sumPrice = sumPrice + price; } + } return sumPrice; + + } + public String endOfCurrency(double value) { + + String currency; + switch ((int) (floor(value) % 10)) { + + case 1: + currency = "рубль"; + break; + case 2: + case 3: + case 4: + currency = "рубля"; + break; + default: + currency = "рублей"; + break; + } + return currency; } } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 0233f3c..75e191b 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -5,6 +5,16 @@ public class Main { public static void main(String[] args) { Calculator calculator = new Calculator(); - calculator.result(); + + + + double people = calculator.countPeople(); + double sumProducts = calculator.addProduct(); + double result = sumProducts / people; + String currency = calculator.endOfCurrency(sumProducts); + String currency2 = calculator.endOfCurrency(result); + + String conclusion = "Cумма товаров %.2f %s\nНа одного человека %.2f %s"; + System.out.printf(conclusion,sumProducts,currency, result, currency2); } }

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