import java.util.InputMismatchException; import java.util.Scanner; public class Main { public static double getDouble (Scanner scanner) { try { return scanner.nextDouble(); } catch (InputMismatchException e) { scanner.next(); return 0; } } public static int getInt (Scanner scanner) { try { return scanner.nextInt(); } catch (InputMismatchException e) { scanner.next(); return 0; } } public static class Formatter { void printWithRubles (double x) { int cutPoint = (int) Math.floor(x); int rest = cutPoint % 10; int rest1 = cutPoint % 100; if (rest1 >= 10 && rest1 <= 19) { System.out.printf("%.2f Ð Ñблей", x); } else if (rest == 0 || rest >= 5) { System.out.printf("%.2f Ð Ñблей", x); } else if (rest == 1) { System.out.printf("%.2f Ð ÑблÑ", x); } else if (rest >= 2) { System.out.printf("%.2f Ð ÑблÑ", x); } } } public static class Product { String name; double price; Product(String productName, double productPrice) { name = productName; price = productPrice; } } public static class Calculator { String productNames = ""; double productPrices = 0; void addProduct(Product p) { productPrices = productPrices + p.price; productNames = productNames.concat(p.name).concat("\n"); System.out.println("Ð¢Ð¾Ð²Ð°Ñ ÑÑпеÑно добавлен!"); } double divideByAll (int guests) { return productPrices / guests; } } public static int getGuests(Scanner scanner) { int guests; while (true) { System.out.println("Ðа ÑколÑко Ñеловек Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑазделиÑÑ ÑÑÑÑ?"); guests = getInt(scanner); if (guests > 1) { break; } else if (guests == 1) { System.out.println("Ð½ÐµÑ ÑмÑÑла ниÑего ÑÑиÑаÑÑ Ð¸ делиÑÑ"); } else { System.out.println("ÐÑо некоÑÑекÑное знаÑение Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑÑÑа"); } } return guests; } public static void getProducts(Scanner scanner, Calculator calc) { while (true) { System.out.println("ÐведиÑе наименование ÑоваÑа или 'ÐавеÑÑиÑÑ'"); String productName = scanner.next(); if (productName.equalsIgnoreCase("завеÑÑиÑÑ")) { break; } else { while (true) { System.out.println("ÐведиÑе ÑÑоимоÑÑÑ ÑоваÑа"); double productPrice = getDouble(scanner); if (productPrice > 0) { Product newProduct = new Product(productName, productPrice); calc.addProduct(newProduct); break; } else { System.out.println("ÐÑо некоÑÑекÑное знаÑение Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑÑÑа"); } } } } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int guests = getGuests(scanner); Calculator calc = new Calculator(); getProducts(scanner, calc); System.out.println("ÐобавленнÑе ÑоваÑÑ:"); System.out.println(calc.productNames); double result = calc.divideByAll(guests); System.out.print("ÐаждÑй должен заплаÑиÑÑ Ð¿Ð¾: "); Formatter f = new Formatter(); f.printWithRubles(result); scanner.close(); } }