From 01c0a6d66b9537287759e7b7f0dfcca98ea8286c Mon Sep 17 00:00:00 2001 From: JudjinGM Date: 2022年10月25日 17:32:26 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=201.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 3 + src/main/java/Main.java | 143 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 143 insertions(+), 3 deletions(-) create mode 100644 .idea/.gitignore diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..2d138cb 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,145 @@ +import java.util.Scanner; + public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + // Собираю вводные данные + AskPeople askPeople = new AskPeople(); + askPeople.askPeopleAmount(); + askPeople.addProductsNameAndPrice(); + + //Произвожу вычисления + Calculator calculator = new Calculator(askPeople.peopleAmount, askPeople.checkCount); + calculator.countFinalCheck(); + + //Вывожу результаты + ShowProductList showProductList = new ShowProductList(askPeople.productList); + showProductList.printProductList(); + + ShowFinalCheck showFinalCheck = new ShowFinalCheck(calculator.finalCheck); + showFinalCheck.PrintFinalCheck(); + } + + static class AskPeople { + int peopleAmount; + double checkCount; + StringBuilder productList; + + AskPeople() { + productList = new StringBuilder(); + } + + void askPeopleAmount() { + Scanner scanner = new Scanner(System.in); + boolean exceptionHappened; + while (true) { + exceptionHappened = false; + System.out.println("Введите количество гостей"); + try { + peopleAmount = scanner.nextInt(); + } + catch (java.util.InputMismatchException e) { + System.out.println("Ошибка ввода, попробуйте еще раз"); + scanner.nextLine(); + exceptionHappened = true; + } + + if (!exceptionHappened && peopleAmount <= 1) { + System.out.println("Ошибка ввода количества гостей.\nКоличество гостей должно быть больше 1."); + } else if (!exceptionHappened){ + break; + } + } + } + + void addProductsNameAndPrice() { + String productName; + double price = 0; + boolean exceptionHappened; + Scanner scanner = new Scanner(System.in); + + while (true) { + System.out.println("Введите название товара"); + productName = scanner.next(); + + if (!productName.equalsIgnoreCase("Завершить")) { + productList.append(productName).append("\n"); + } + else { + break; + } + + while (true) { + exceptionHappened = false; + System.out.println("Введите цену товара"); + try { + price = scanner.nextDouble(); + } + catch (java.util.InputMismatchException e) { + System.out.println("Ошибка ввода, попробуйте еще раз"); + scanner.nextLine(); + exceptionHappened = true; + } + if (price>= 0 && !exceptionHappened){ + checkCount = checkCount + price; + break; + } + } + } + } + } + + static class Calculator { + int peopleAmount; + double checkCount; + double finalCheck; + + Calculator(int peopleAmount, double checkCount) { + this.peopleAmount = peopleAmount; + this.checkCount = checkCount; + } + + void countFinalCheck() { + finalCheck = checkCount / peopleAmount; + } + } + + static class ShowProductList { + StringBuilder productList; + + ShowProductList(StringBuilder productList) { + this.productList = productList; + } + + void printProductList(){ + System.out.println(productList); + } + + } + + static class ShowFinalCheck { + double finalCheck; + + ShowFinalCheck(double finalCheck) { + this.finalCheck = finalCheck; + } + + void PrintFinalCheck() { + int rubleOrRubles; + + rubleOrRubles = (int) Math.floor(finalCheck); + + if (rubleOrRubles <= 1) { + String priceMessage = "С человека по %.2f рубль"; + System.out.printf((priceMessage) + "%n", finalCheck); + } else if (rubleOrRubles < 9) { + String priceMessage = "С человека по %.2f рубля"; + System.out.printf((priceMessage) + "%n", finalCheck); + } else if (rubleOrRubles>= 10) { + String priceMessage = "С человека по %.2f рублей"; + System.out.printf((priceMessage) + "%n", finalCheck); + } + } + } } From 4e8cdc7790dfc4a540cd3408bef748a24b316eca Mon Sep 17 00:00:00 2001 From: JudjinGM Date: 2022年10月25日 21:31:15 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=201.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/AskPeople.java | 73 +++++++++++++++ src/main/java/Calculator.java | 13 +++ src/main/java/FormatToRubles.java | 25 ++++++ src/main/java/Main.java | 138 ++--------------------------- src/main/java/ShowFinalCheck.java | 14 +++ src/main/java/ShowProductList.java | 11 +++ 6 files changed, 145 insertions(+), 129 deletions(-) create mode 100644 src/main/java/AskPeople.java create mode 100644 src/main/java/Calculator.java create mode 100644 src/main/java/FormatToRubles.java create mode 100644 src/main/java/ShowFinalCheck.java create mode 100644 src/main/java/ShowProductList.java diff --git a/src/main/java/AskPeople.java b/src/main/java/AskPeople.java new file mode 100644 index 0000000..33ed064 --- /dev/null +++ b/src/main/java/AskPeople.java @@ -0,0 +1,73 @@ +import java.util.Scanner; + +public class AskPeople { + int peopleAmount; + double checkCount; + StringBuilder productList; + + AskPeople() { + productList = new StringBuilder(); + } + + void askPeopleAmount() { + Scanner scanner = new Scanner(System.in); + boolean exceptionHappened; + while (true) { + exceptionHappened = false; + System.out.println("Введите количество гостей:"); + try { + peopleAmount = scanner.nextInt(); + } + catch (java.util.InputMismatchException e) { + System.out.println("Ошибка ввода, попробуйте еще раз."); + scanner.nextLine(); + exceptionHappened = true; + } + + if (!exceptionHappened && peopleAmount <= 1) { + System.out.println("Ошибка ввода количества гостей. Количество гостей должно быть больше 1."); + } else if (!exceptionHappened){ + break; + } + } + } + + void addProductsNameAndPrice() { + String productName; + double price = 0; + boolean exceptionHappened; + Scanner scanner = new Scanner(System.in); + + while (true) { + System.out.println("Введите название товара:\nЕсли хотите вывести счет введите: Завершить."); + productName = scanner.next(); + + if (!productName.equalsIgnoreCase("Завершить")) { + productList.append(productName).append("\n"); + } + else { + break; + } + + while (true) { + exceptionHappened = false; + System.out.println("Введите цену товара:"); + try { + price = scanner.nextDouble(); + } + catch (java.util.InputMismatchException e) { + System.out.println("Ошибка ввода. Возможно неверный формат ввода. Повторите ввод."); + scanner.nextLine(); + exceptionHappened = true; + } + if (price>= 0 && !exceptionHappened){ + checkCount = checkCount + price; + break; + } + else if (!exceptionHappened) { + System.out.println("Ошибка ввода. Цена не может быть меньше нуля. Повторите ввод."); + } + } + } + } +} diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 0000000..eb1cba2 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,13 @@ +public class Calculator { + double value; + int divider; + + Calculator(double value, int divider) { + this.value = value; + this.divider = divider; + } + + double calculation() { + return value / divider; + } +} \ No newline at end of file diff --git a/src/main/java/FormatToRubles.java b/src/main/java/FormatToRubles.java new file mode 100644 index 0000000..150e0e3 --- /dev/null +++ b/src/main/java/FormatToRubles.java @@ -0,0 +1,25 @@ +public class FormatToRubles { + double rubbles; + + FormatToRubles(double rubbles) { + this.rubbles = rubbles; + } + + String formatRubbles() { + int rubleOrRubles; + rubleOrRubles = (int) Math.floor(rubbles); + String checkMessage = null; + + if (rubleOrRubles <= 1) { + checkMessage = "С человека по %.2f рубль"; + } else if (rubleOrRubles < 9) { + checkMessage = "С человека по %.2f рубля"; + } else if (rubleOrRubles>= 10) { + checkMessage = "С человека по %.2f рублей"; + } + return checkMessage; + } +} + + + diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 2d138cb..ac90616 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,5 +1,3 @@ -import java.util.Scanner; - public class Main { public static void main(String[] args) { @@ -9,137 +7,19 @@ public static void main(String[] args) { askPeople.addProductsNameAndPrice(); //Произвожу вычисления - Calculator calculator = new Calculator(askPeople.peopleAmount, askPeople.checkCount); - calculator.countFinalCheck(); + Calculator calculator = new Calculator(askPeople.checkCount, askPeople.peopleAmount); + double check = calculator.calculation(); - //Вывожу результаты + //Вывожу список товаров ShowProductList showProductList = new ShowProductList(askPeople.productList); showProductList.printProductList(); - ShowFinalCheck showFinalCheck = new ShowFinalCheck(calculator.finalCheck); - showFinalCheck.PrintFinalCheck(); - } - - static class AskPeople { - int peopleAmount; - double checkCount; - StringBuilder productList; - - AskPeople() { - productList = new StringBuilder(); - } - - void askPeopleAmount() { - Scanner scanner = new Scanner(System.in); - boolean exceptionHappened; - while (true) { - exceptionHappened = false; - System.out.println("Введите количество гостей"); - try { - peopleAmount = scanner.nextInt(); - } - catch (java.util.InputMismatchException e) { - System.out.println("Ошибка ввода, попробуйте еще раз"); - scanner.nextLine(); - exceptionHappened = true; - } - - if (!exceptionHappened && peopleAmount <= 1) { - System.out.println("Ошибка ввода количества гостей.\nКоличество гостей должно быть больше 1."); - } else if (!exceptionHappened){ - break; - } - } - } - - void addProductsNameAndPrice() { - String productName; - double price = 0; - boolean exceptionHappened; - Scanner scanner = new Scanner(System.in); - - while (true) { - System.out.println("Введите название товара"); - productName = scanner.next(); - - if (!productName.equalsIgnoreCase("Завершить")) { - productList.append(productName).append("\n"); - } - else { - break; - } - - while (true) { - exceptionHappened = false; - System.out.println("Введите цену товара"); - try { - price = scanner.nextDouble(); - } - catch (java.util.InputMismatchException e) { - System.out.println("Ошибка ввода, попробуйте еще раз"); - scanner.nextLine(); - exceptionHappened = true; - } - if (price>= 0 && !exceptionHappened){ - checkCount = checkCount + price; - break; - } - } - } - } - } - - static class Calculator { - int peopleAmount; - double checkCount; - double finalCheck; - - Calculator(int peopleAmount, double checkCount) { - this.peopleAmount = peopleAmount; - this.checkCount = checkCount; - } - - void countFinalCheck() { - finalCheck = checkCount / peopleAmount; - } - } - - static class ShowProductList { - StringBuilder productList; - - ShowProductList(StringBuilder productList) { - this.productList = productList; - } - - void printProductList(){ - System.out.println(productList); - } - - } - - static class ShowFinalCheck { - double finalCheck; - - ShowFinalCheck(double finalCheck) { - this.finalCheck = finalCheck; - } - - void PrintFinalCheck() { - int rubleOrRubles; - - rubleOrRubles = (int) Math.floor(finalCheck); - - if (rubleOrRubles <= 1) { - String priceMessage = "С человека по %.2f рубль"; - System.out.printf((priceMessage) + "%n", finalCheck); - } else if (rubleOrRubles < 9) { - String priceMessage = "С человека по %.2f рубля"; - System.out.printf((priceMessage) + "%n", finalCheck); - } else if (rubleOrRubles>= 10) { - String priceMessage = "С человека по %.2f рублей"; - System.out.printf((priceMessage) + "%n", finalCheck); - } - } + //Форматирую окончание слова рубль для сообщения + FormatToRubles formatToRubles = new FormatToRubles(check); + String checkMessage = formatToRubles.formatRubbles(); + //Вывожу сколько должен заплатить каждый гость + ShowFinalCheck showFinalCheck = new ShowFinalCheck(checkMessage, check); + showFinalCheck.PrintFinalCheck(); } } diff --git a/src/main/java/ShowFinalCheck.java b/src/main/java/ShowFinalCheck.java new file mode 100644 index 0000000..c16879d --- /dev/null +++ b/src/main/java/ShowFinalCheck.java @@ -0,0 +1,14 @@ +public class ShowFinalCheck { + String priceMessage; + double finalCheck; + + ShowFinalCheck(String priceMessage, double finalCheck) { + this.priceMessage = priceMessage; + this.finalCheck = finalCheck; + } + + void PrintFinalCheck() { + System.out.printf((priceMessage) + "%n", finalCheck); + } + +} diff --git a/src/main/java/ShowProductList.java b/src/main/java/ShowProductList.java new file mode 100644 index 0000000..1daf3b5 --- /dev/null +++ b/src/main/java/ShowProductList.java @@ -0,0 +1,11 @@ +public class ShowProductList { + StringBuilder productList; + + ShowProductList(StringBuilder productList) { + this.productList = productList; + } + + void printProductList(){ + System.out.println(productList); + } +} From 4d9658f94a9c42f43ec9584b3cc18cf5ef984991 Mon Sep 17 00:00:00 2001 From: JudjinGM Date: 2022年10月26日 11:22:36 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=201.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/{AskPeople.java => AskInfo.java} | 6 +++--- src/main/java/Calculator.java | 2 +- src/main/java/FormatToRubles.java | 3 +++ src/main/java/Main.java | 10 +++++----- src/main/java/ShowFinalCheck.java | 8 +++----- 5 files changed, 15 insertions(+), 14 deletions(-) rename src/main/java/{AskPeople.java => AskInfo.java} (96%) diff --git a/src/main/java/AskPeople.java b/src/main/java/AskInfo.java similarity index 96% rename from src/main/java/AskPeople.java rename to src/main/java/AskInfo.java index 33ed064..73bcdfb 100644 --- a/src/main/java/AskPeople.java +++ b/src/main/java/AskInfo.java @@ -1,11 +1,11 @@ import java.util.Scanner; -public class AskPeople { +public class AskInfo { int peopleAmount; double checkCount; StringBuilder productList; - AskPeople() { + AskInfo() { productList = new StringBuilder(); } @@ -61,7 +61,7 @@ void addProductsNameAndPrice() { exceptionHappened = true; } if (price>= 0 && !exceptionHappened){ - checkCount = checkCount + price; + checkCount += price; break; } else if (!exceptionHappened) { diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index eb1cba2..6515579 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -7,7 +7,7 @@ public class Calculator { this.divider = divider; } - double calculation() { + double division() { return value / divider; } } \ No newline at end of file diff --git a/src/main/java/FormatToRubles.java b/src/main/java/FormatToRubles.java index 150e0e3..874d5cf 100644 --- a/src/main/java/FormatToRubles.java +++ b/src/main/java/FormatToRubles.java @@ -12,10 +12,13 @@ String formatRubbles() { if (rubleOrRubles <= 1) { checkMessage = "С человека по %.2f рубль"; + checkMessage = String.format(checkMessage,rubbles ); } else if (rubleOrRubles < 9) { checkMessage = "С человека по %.2f рубля"; + checkMessage = String.format(checkMessage,rubbles ); } else if (rubleOrRubles>= 10) { checkMessage = "С человека по %.2f рублей"; + checkMessage = String.format(checkMessage,rubbles ); } return checkMessage; } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index ac90616..4ded2fe 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -2,24 +2,24 @@ public class Main { public static void main(String[] args) { // Собираю вводные данные - AskPeople askPeople = new AskPeople(); + AskInfo askPeople = new AskInfo(); askPeople.askPeopleAmount(); askPeople.addProductsNameAndPrice(); //Произвожу вычисления Calculator calculator = new Calculator(askPeople.checkCount, askPeople.peopleAmount); - double check = calculator.calculation(); + double calculatedCheck = calculator.division(); //Вывожу список товаров ShowProductList showProductList = new ShowProductList(askPeople.productList); showProductList.printProductList(); //Форматирую окончание слова рубль для сообщения - FormatToRubles formatToRubles = new FormatToRubles(check); + FormatToRubles formatToRubles = new FormatToRubles(calculatedCheck); String checkMessage = formatToRubles.formatRubbles(); //Вывожу сколько должен заплатить каждый гость - ShowFinalCheck showFinalCheck = new ShowFinalCheck(checkMessage, check); - showFinalCheck.PrintFinalCheck(); + ShowFinalCheck showFinalCheck = new ShowFinalCheck(checkMessage); + showFinalCheck.printFinalCheck(); } } diff --git a/src/main/java/ShowFinalCheck.java b/src/main/java/ShowFinalCheck.java index c16879d..c9323f2 100644 --- a/src/main/java/ShowFinalCheck.java +++ b/src/main/java/ShowFinalCheck.java @@ -1,14 +1,12 @@ public class ShowFinalCheck { String priceMessage; - double finalCheck; - ShowFinalCheck(String priceMessage, double finalCheck) { + ShowFinalCheck(String priceMessage) { this.priceMessage = priceMessage; - this.finalCheck = finalCheck; } - void PrintFinalCheck() { - System.out.printf((priceMessage) + "%n", finalCheck); + void printFinalCheck() { + System.out.println(priceMessage); } }

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