diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 000000000..2c8a9a66f --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,22 @@ +public class Calculator { + private double allProductPrice = 0.00; + + public double getAllProductPrice() { + return allProductPrice; + } + + 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; + } + +} \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..1702b224a 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,76 @@ +import java.util.ArrayList; +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + 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) { + System.out.println("Это некорректное значение для подсчёта."); + } else if (amount == 1) { + System.out.println("Деление счёта бессмыслено :)"); + } else { + System.out.println("Введите наименование товара и стоимость товара в формате рубли.копейки, например 'Цезарь 250.70'. Для окончания подсчета введите 'Завершить'"); + Calculator newCalculator = new Calculator(); + + sc.nextLine(); + + while (true) { + Product newProduct = new Product(); + String userAnswer = sc.nextLine(); + + 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("Добавленные товары:"); + + for (Product eachProduct: productList) { + System.out.println(eachProduct.getProductInfo()); + } + + System.out.println("Сумма к оплате каждого гостя: " + newCalculator.getGuestBill(amount)); + break; + } + } + } + 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..bd63aabe5 --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,28 @@ +import static java.lang.Math.floor; + +public class Product { + 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; + } + 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) { + rublesName = "рубль"; + } else if ( ((floor(productPrice)/10)%10)> 1 && ((floor(productPrice)/10)%10) < 5 || floor(productPrice)> 1 && floor(productPrice) < 5) { + rublesName = "рубля"; + } + + return this.productName + " " + String.format("%.2f", this.productPrice) + " " + rublesName; + } +} \ No newline at end of file

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