diff --git a/src/main/java/CalcStringFormater.java b/src/main/java/CalcStringFormater.java new file mode 100644 index 000000000..960fb0195 --- /dev/null +++ b/src/main/java/CalcStringFormater.java @@ -0,0 +1,13 @@ +public class CalcStringFormater { + public static String rubles(double price){ + switch((int)Math.floor(price)){ + case 1: + return "рубль"; + case 2, 3, 4: + return "рубля"; + default: + return "рублей"; + } + } + +} diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 000000000..74c352ba1 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,45 @@ +import java.util.ArrayList; + +public class Calculator { + int guests; + ArrayList products = new ArrayList(); + private class Product{ + String name; + double price; + public Product(String n, double p){name = new String(n); price = p;} + + @Override + public String toString(){ + return name + " - " + price; + } + } + + public Calculator(int g){guests = g;} + + public void addProduct(String name, double price){ + products.add(new Product(name, price)); + System.out.println("Товар " + name + " был успешно добавлен!"); + } + + public void printProducts(){ + for (Product product : products){ + System.out.println(product); + } + double sum = productsSum(); + System.out.println("Общая сумма равна " + String.format("%.2f", sum) + " " + CalcStringFormater.rubles(sum)); + } + + private double productsSum(){ + double sum = 0; + for (Product product : products) sum += product.price; + return sum; + } + + private double countReceipt() {return productsSum()/guests;} + public void printResult(){ + System.out.println("Добавленные товары:"); + printProducts(); + double res = countReceipt(); + System.out.println("Каждый должен заплатить " + String.format("%.2f", res) + " " + CalcStringFormater.rubles(res)); + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..7118719c2 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,50 @@ +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + + // Ввод количества гостей + System.out.println("На скольких гостей требуется разделить счет?"); + Scanner scanner = new Scanner(System.in); + int guests; + while (true){ + String input = scanner.nextLine(); + try{ + guests = Integer.parseInt(input); + if (guests <= 1) System.out.println("Введите корректное число гостей!!!"); + else break; + } + catch (Exception e) {System.out.println("Введите корректное число гостей!!!");} + } + + + // Добавление товаров + Calculator calc = new Calculator(guests); + String input; + do { + // Печать текущих товаров + calc.printProducts(); + System.out.println("-------------------------------"); + + System.out.println("Введите название товара и его стоимость(<Товар> <рубли.копейки>): "); + scanner.nextLine(); + input = scanner.nextLine(); + String[] splitted = input.split(" "); + try { + double price = Double.parseDouble(splitted[1]); + if (price>= 0) calc.addProduct(splitted[0], price); + else System.out.println("Некорректная стоимость товара"); + } + catch (Exception e){ + System.out.println("Некорректная стоимость товара"); + } + finally{ + System.out.println("Для того, чтобы прекратить добавление товаров, введите \"Завершить\".\nИначе введите любой символ."); + input = scanner.next(); + } + }while (!input.equalsIgnoreCase("завершить")); + + System.out.println("-------------------------------"); + calc.printResult(); } } \ No newline at end of file

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