import java.util.Scanner; import java.util.regex.Pattern; public class Main { // колиÑеÑÑво поÑеÑиÑелей static int numberOfVisitors; // обÑÐµÐºÑ Ñипа Calculator static Calculator calculator; public static void main(String[] args) { numberOfVisitors = getNumberOfVisitors(); calculator = new Calculator(numberOfVisitors); requestProductFromUser(); if (calculator.getListOfProducts().isEmpty()) { System.out.println("ÐиÑего не бÑло заказано..."); } else { calculator.printResults(); } } /* ÑпÑаÑÐ¸Ð²Ð°ÐµÑ Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, на ÑколÑÐºÐ¸Ñ Ñеловек Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑазделиÑÑ ÑÑÑÑ Ð¸ возвÑаÑÐ°ÐµÑ ÑÑо знаÑение */ private static int getNumberOfVisitors() { Scanner scanner = new Scanner(System.in); while (true) { System.out.println("Ðа ÑколÑÐºÐ¸Ñ Ñеловек нÑжно ÑазделиÑÑ ÑÑеÑ?"); String response = scanner.next(); if (isNumeric(response)) { int intValue = Integer.parseInt(response); if (intValue <= 1) { System.out.println("ÐнаÑение должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 1..."); } else { return intValue; } } else { System.out.println("ÐведиÑе коÑÑекÑное знаÑение..."); } } } // ÐÑовеÑÑеÑ, ÑвлÑеÑÑÑ Ð»Ð¸ введеное полÑзоваÑелем знаÑение ÑелоÑиÑленнÑм ÑиÑлом - true, инаÑе - false private static boolean isNumeric(String string) { String numericPattern = "\\d+"; return Pattern.matches(numericPattern, string); } // ÐÑовеÑÑеÑ, ÑвлÑеÑÑÑ Ð»Ð¸ введеное полÑзоваÑелем знаÑение ÑиÑлом Ñ Ð´Ñобной ÑаÑÑÑÑ - true, инаÑе - false private static boolean isDoubleNumeric(String string) { String decimalPattern = "([0-9]*)\\.([0-9]*)"; return Pattern.matches(decimalPattern, string); } /* ÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ð½Ð°Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ðµ и ÑÑоимоÑÑÑ Ð¿ÑодÑкÑа Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¸ добавлÑÐµÑ Ð¾Ð±ÑекÑÑ ÐºÐ»Ð°ÑÑа Product в обÑÐµÐºÑ calculator клаÑÑа Calculator, пока полÑзоваÑÐµÐ»Ñ Ð½Ðµ Ð²Ð²ÐµÐ´ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ "ÐавеÑÑиÑÑ" */ private static void requestProductFromUser() { Scanner scanner = new Scanner(System.in); String nameOfProduct; double value; while (true) { System.out.println("ÐведиÑе, пожалÑйÑÑа, название ÑоваÑа. (ЧÑÐ¾Ð±Ñ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð¿ÑоÑеÑÑ, введиÑе \"ÐавеÑÑиÑÑ\")"); String response = scanner.next(); if (response.equalsIgnoreCase("завеÑÑиÑÑ")) { return; } else { nameOfProduct = response; while (true) { System.out.println("ÐведиÑе, пожалÑйÑÑа, ÑÑоимоÑÑÑ ÑоваÑа в ÑоÑмаÑе XX.YY (где ХХ - ÑÑбли, YY - копейки)..."); response = scanner.next(); if (isDoubleNumeric(response)) { value = Double.parseDouble(response); break; } else { System.out.println("ÐведиÑе коÑÑекÑное знаÑение..."); } } calculator.addProductToList(new Product(nameOfProduct, value)); System.out.println("ÐÑодÑÐºÑ ÑÑпеÑно добавлен в калÑкÑлÑÑоÑ"); } } } }