import java.util.Scanner; public class Main { public static int customers = 0; public static String[] strings = { "ÐÑивеÑ. ÐÑо калÑкÑлÑÑÐ¾Ñ ÑÑеÑа.", "ÐведиÑе ÐÐÐ-ÐÐ Ñеловек (или 'завеÑÑиÑÑ' Ð´Ð»Ñ Ð²ÑÑ Ð¾Ð´Ð°):", "ÐевеÑно: Ðолжно бÑÑÑ Ñелое ÑиÑло. 1 < ЧÐСÐÐ < 1000", "Ð¢Ð¾Ð²Ð°Ñ ÑÑпеÑно добавлен в ÑÑеÑ", "ÐведиÑе ÐÐÐÐÐÐÐÐ ÑоваÑа (или 'завеÑÑиÑÑ' Ð´Ð»Ñ Ð²ÑÑ Ð¾Ð´Ð°): ", "ÐевеÑно: Ðазвание должно ÑодеÑжаÑÑ ÑекÑÑ (бÑквÑ, ÑиÑÑÑ, некоÑоÑÑе знаки пÑепинаниÑ, кÑоме запÑÑой)", "ÐведиÑе СТÐÐÐÐСТЬ ÑоваÑа (или 'завеÑÑиÑÑ' Ð´Ð»Ñ Ð²ÑÑ Ð¾Ð´Ð°): ", "ÐевеÑно: 0.00 <= ЦÐÐÐ < 150000000.00,\n Цена, ÑÑо ÑиÑло не более 2Ñ Ð·Ð½Ð°ÐºÐ¾Ð² поÑле запÑÑой."}; static BillCalc calculator; public static void main(String[] args) { printString(0); if (customersCount()) return; calculator = new BillCalc(customers); addItems(); calculator.printTotal(); } public static boolean customersCount() { Scanner scanner = new Scanner(System.in); while (true) { printString(1); String input = scanner.nextLine(); if (input.trim().equalsIgnoreCase("завеÑÑиÑÑ")) return true; try { customers = Integer.parseInt(input); if (customers > 1 && customers < 1000) break; } catch (NumberFormatException ignored) {} printString(2); } return false; } public static void addItems() { Scanner scanner = new Scanner(System.in); boolean flag = true; while (flag) { printString(4); String itemName = scanner.nextLine(); if (itemName.trim().equalsIgnoreCase("завеÑÑиÑÑ")) flag = false; else if (!isText(itemName)) { printString(5); continue; } while(flag) { printString(6); String itemPrice = scanner.nextLine(); if (itemPrice.trim().equalsIgnoreCase("завеÑÑиÑÑ")) flag = false; else if (isPrice(itemPrice)) { calculator.addItem(itemName, itemPrice); printString(3); break; } else printString(7); } } } private static boolean isText(String value) { return value.matches("[a-zA-Zа-ÑÐ-Я\\d\\p{Punct} &&[^,]]+"); } private static boolean isPrice(String value) { try { double number = Double.parseDouble(value); int decimalPlaces = value.indexOf('.') >= 0 ? value.length() - value.indexOf('.') - 1 : 0; return number >= 0 && number < 150000000.00 && decimalPlaces <= 2; } catch (NumberFormatException e) { return false; } } public static void printString(int arg) { System.out.println(strings[arg]); } }