From 2427e2aaaf056a67cf2d9baf4a56d467f0315733 Mon Sep 17 00:00:00 2001 From: Annet-Lovett Date: 2024年2月27日 22:43:46 +0400 Subject: [PATCH 1/2] MyProject --- src/main/java/Calculator.java | 17 ++++++++ src/main/java/Main.java | 73 ++++++++++++++++++++++++++++++++++- src/main/java/Product.java | 38 ++++++++++++++++++ 3 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 src/main/java/Calculator.java create mode 100644 src/main/java/Product.java diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 000000000..7afa7a02c --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,17 @@ +public class Calculator { + double AllProductPrice = 0.00; + int guestNumber; + + String guestBill; + public void setAllProductPrice(double productPrice) { + AllProductPrice+=productPrice; + } + + + public String getGuestBill(int enterGuestNumber) { + guestNumber = enterGuestNumber; + guestBill = String.format("%.2f", AllProductPrice/guestNumber); + return guestBill; + } + +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..29bcc059c 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,77 @@ +import java.util.ArrayList; +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + + System.out.println("На скольких человек необходимо разделить счёт?"); + + int amount; + + while (true) { + Scanner sc = new Scanner(System.in); + + if (sc.hasNextInt()) { + + while (true) { + + amount = sc.nextInt(); + + if (amount < 1) { + System.out.println("Это некорректное значение для подсчёта."); + } else if (amount == 1) { + System.out.println("Деление счёта бессмыслено :)"); + } else { + System.out.println("Введите наименование товара и стоимость товара в формате рубли.копейки, например 'Цезарь 250.70'. Для окончания подсчета введите 'Завершить'"); + + Product newProduct = new Product(); + Calculator newCalculator = new Calculator(); + + sc.nextLine(); + + while (true) { + + String userAnswer = sc.nextLine(); + + if (userAnswer.equalsIgnoreCase("завершить") != true) { + + newProduct.addProductArray(userAnswer); + String[] productName = userAnswer.split(" "); + newCalculator.setAllProductPrice(newProduct.getProductPrice(productName)); + + System.out.println("Товар успешно добавлен в список"); + System.out.println("Хотите добавить еще товар или завершить подсчёт? Для окончания подсчета введите 'Завершить'"); + } + + else { + break; + } + } + + System.out.println("Добавленные товары:"); + + ArrayList newProductList = new ArrayList(newProduct.getProductArray()); + + for (String eachProduct: newProductList) { + System.out.println(eachProduct); + } + + System.out.println("Сумма к оплате каждого гостя: " + newCalculator.getGuestBill(amount)); + break; + } + } + + + } + + else { + System.out.println("Неправильный ввод. Введите корректное цифровое значение"); + + } + } + + + } + } \ No newline at end of file diff --git a/src/main/java/Product.java b/src/main/java/Product.java new file mode 100644 index 000000000..cd409f626 --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,38 @@ +import static java.lang.Math.floor; + +import java.util.ArrayList; + +public class Product { + double productPrice; + + public double getProductPrice(String [] stringArray) { + + productPrice = Double.parseDouble(stringArray[stringArray.length - 1]); + + return productPrice; + } + + ArrayList productList = new ArrayList(); + String rublesName; + public void addProductArray(String product) { + + if (floor(productPrice)> 4 && floor(productPrice) < 21 || ((floor(productPrice)/10)%10)> 4 && ((floor(productPrice)/10)%10) < 10 || ((floor(productPrice)/10)%10) == 0 ) { + rublesName = "рублей"; + + } + else if ( ((floor(productPrice)/10)%10) == 1 || floor(productPrice) == 1) { + rublesName = "рубль"; + } + + else if ( ((floor(productPrice)/10)%10)> 1 && ((floor(productPrice)/10)%10) < 5 || floor(productPrice)> 1 && floor(productPrice) < 5) { + rublesName = "рубля"; + } + + productList.add(product + rublesName); + } + + public ArrayList getProductArray() { + return productList; + } + +} From c82401d4e1b9a5398dfaca1844dd04d59bc78d20 Mon Sep 17 00:00:00 2001 From: Annet-Lovett Date: Sat, 2 Mar 2024 20:25:05 +0400 Subject: [PATCH 2/2] MyProject --- src/main/java/Calculator.java | 13 +++++--- src/main/java/Main.java | 61 +++++++++++++++++------------------ src/main/java/Product.java | 40 +++++++++-------------- 3 files changed, 54 insertions(+), 60 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index 7afa7a02c..2c8a9a66f 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -1,17 +1,22 @@ public class Calculator { - double AllProductPrice = 0.00; + private double allProductPrice = 0.00; + + public double getAllProductPrice() { + return allProductPrice; + } + int guestNumber; String guestBill; public void setAllProductPrice(double productPrice) { - AllProductPrice+=productPrice; + allProductPrice +=productPrice; } public String getGuestBill(int enterGuestNumber) { guestNumber = enterGuestNumber; - guestBill = String.format("%.2f", AllProductPrice/guestNumber); + guestBill = String.format("%.2f", allProductPrice /guestNumber); return guestBill; } -} +} \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 29bcc059c..1702b224a 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -3,18 +3,18 @@ public class Main { public static void main(String[] args) { - - System.out.println("На скольких человек необходимо разделить счёт?"); + ArrayList productList = new ArrayList(); int amount; + System.out.println("На скольких человек необходимо разделить счёт?"); + while (true) { Scanner sc = new Scanner(System.in); if (sc.hasNextInt()) { while (true) { - amount = sc.nextInt(); if (amount < 1) { @@ -23,24 +23,31 @@ public static void main(String[] args) { System.out.println("Деление счёта бессмыслено :)"); } else { System.out.println("Введите наименование товара и стоимость товара в формате рубли.копейки, например 'Цезарь 250.70'. Для окончания подсчета введите 'Завершить'"); - - Product newProduct = new Product(); Calculator newCalculator = new Calculator(); sc.nextLine(); while (true) { - + Product newProduct = new Product(); String userAnswer = sc.nextLine(); - if (userAnswer.equalsIgnoreCase("завершить") != true) { - - newProduct.addProductArray(userAnswer); - String[] productName = userAnswer.split(" "); - newCalculator.setAllProductPrice(newProduct.getProductPrice(productName)); - - System.out.println("Товар успешно добавлен в список"); - System.out.println("Хотите добавить еще товар или завершить подсчёт? Для окончания подсчета введите 'Завершить'"); + if (!userAnswer.equalsIgnoreCase("завершить")) { + try { + String[] userAnswerArr = userAnswer.split(" "); + String price = userAnswerArr[userAnswerArr.length - 1]; + String name = userAnswer.replaceAll(price, ""); + + newProduct.setProductName(name); + newProduct.setProductPrice(price); + newCalculator.setAllProductPrice(newProduct.getProductPrice()); + productList.add(newProduct); + System.out.println("Товар успешно добавлен в список"); + System.out.println("Хотите добавить еще товар или завершить подсчёт? Для окончания подсчета введите 'Завершить'"); + } catch (NumberFormatException e) { + System.out.println("Неверный формат цены. Повторите попытку"); + } catch (Exception e) { + System.out.println("Неверный формат ввода"); + } } else { @@ -48,30 +55,22 @@ public static void main(String[] args) { } } - System.out.println("Добавленные товары:"); + if (newCalculator.getAllProductPrice() != 0.00) { + System.out.println("Добавленные товары:"); - ArrayList newProductList = new ArrayList(newProduct.getProductArray()); + for (Product eachProduct: productList) { + System.out.println(eachProduct.getProductInfo()); + } - for (String eachProduct: newProductList) { - System.out.println(eachProduct); + System.out.println("Сумма к оплате каждого гостя: " + newCalculator.getGuestBill(amount)); + break; } - - System.out.println("Сумма к оплате каждого гостя: " + newCalculator.getGuestBill(amount)); - break; } } - - - } - - else { + break; + } else { System.out.println("Неправильный ввод. Введите корректное цифровое значение"); - } } - - - } - } \ No newline at end of file diff --git a/src/main/java/Product.java b/src/main/java/Product.java index cd409f626..bd63aabe5 100644 --- a/src/main/java/Product.java +++ b/src/main/java/Product.java @@ -1,38 +1,28 @@ import static java.lang.Math.floor; -import java.util.ArrayList; - public class Product { - double productPrice; - - public double getProductPrice(String [] stringArray) { - - productPrice = Double.parseDouble(stringArray[stringArray.length - 1]); + private String productName; + private double productPrice; + String rublesName; + public void setProductPrice(String price) throws NumberFormatException { + this.productPrice = Double.parseDouble(price); + } + public void setProductName(String name) { + this.productName = name; + } + public double getProductPrice() { return productPrice; } - - ArrayList productList = new ArrayList(); - String rublesName; - public void addProductArray(String product) { - + public String getProductInfo() { if (floor(productPrice)> 4 && floor(productPrice) < 21 || ((floor(productPrice)/10)%10)> 4 && ((floor(productPrice)/10)%10) < 10 || ((floor(productPrice)/10)%10) == 0 ) { rublesName = "рублей"; - - } - else if ( ((floor(productPrice)/10)%10) == 1 || floor(productPrice) == 1) { + } else if ( ((floor(productPrice)/10)%10) == 1 || floor(productPrice) == 1) { rublesName = "рубль"; - } - - else if ( ((floor(productPrice)/10)%10)> 1 && ((floor(productPrice)/10)%10) < 5 || floor(productPrice)> 1 && floor(productPrice) < 5) { + } else if ( ((floor(productPrice)/10)%10)> 1 && ((floor(productPrice)/10)%10) < 5 || floor(productPrice)> 1 && floor(productPrice) < 5) { rublesName = "рубля"; } - productList.add(product + rublesName); - } - - public ArrayList getProductArray() { - return productList; + return this.productName + " " + String.format("%.2f", this.productPrice) + " " + rublesName; } - -} +} \ No newline at end of file

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