From 768ff85503095c0ef45398be2ecfd896afd29b70 Mon Sep 17 00:00:00 2001 From: Nikitin Dmitry S Date: Sat, 2 Mar 2024 18:22:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B8=D0=B5=20Fix-=D1=81=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Calculator.java | 11 ++++-- src/main/java/Main.java | 64 ++++++++++++++++------------------- src/main/java/Product.java | 36 ++++++++------------ 3 files changed, 52 insertions(+), 59 deletions(-) diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index 7afa7a02c..7f15567ea 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -1,16 +1,21 @@ 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; } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 29bcc059c..f20853f44 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -3,10 +3,9 @@ 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); @@ -14,7 +13,6 @@ public static void main(String[] args) { if (sc.hasNextInt()) { while (true) { - amount = sc.nextInt(); if (amount < 1) { @@ -23,55 +21,53 @@ 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 { break; } } + if (newCalculator.getAllProductPrice() != 0.00) { + System.out.println("Добавленные товары:"); - 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..a0c067563 100644 --- a/src/main/java/Product.java +++ b/src/main/java/Product.java @@ -3,36 +3,28 @@ 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); + return this.productName + " " + String.format("%.2f", this.productPrice) + " " + rublesName; } - - public ArrayList getProductArray() { - return productList; - } - }

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