import java.util.InputMismatchException; import java.util.Scanner; public class Main { public static void main(String[] args) { int persons = 0; boolean exept; String productName; String qa; double price; Scanner scanner = new Scanner(System.in); /////////////////////////////////////// // 1. ÐÑ Ð¾Ð´Ð½Ñе паÑамеÑÑÑ Ð´Ð»Ñ ÑÑÑÑÑика // /////////////////////////////////////// while (true) { // 1.ÐоÑле запÑÑка пÑогÑамма должна ÑпÑаÑиваÑÑ Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, на ÑколÑÐºÐ¸Ñ Ñеловек Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑазделиÑÑ ÑÑÑÑ. System.out.println("Ðа ÑколÑÐºÐ¸Ñ Ñеловек Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑазделиÑÑ ÑÑÑÑ?"); exept = false; try { persons = scanner.nextInt(); } catch (InputMismatchException e) { System.out.println("ÐÑибка. ÐÑжно обÑзаÑелÑно вводиÑÑ Ñелое ÑиÑло"); // ÐбновлÑем scanner в ÑлÑÑае оÑибки, дÑÑгой ÑпоÑоб не наÑÑл. scanner = new Scanner(System.in); exept = true; } if (!exept) { if (persons == 1) { // ÐолиÑеÑÑво Ñеловек, введÑннÑÑ Ð¿Ð¾Ð»ÑзоваÑелем, Ñавно 1. Ð ÑÑом ÑлÑÑае Ð½ÐµÑ ÑмÑÑла ниÑего ÑÑиÑаÑÑ Ð¸ делиÑÑ. System.out.println("ÐÑибка. ÐÐµÑ ÑмÑÑла ниÑего ÑÑиÑаÑÑ Ð¸ делиÑÑ Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ñеловека. ÐовÑоÑиÑе ввод."); } else if (persons < 1) { // ÐолиÑеÑÑво Ñеловек менÑÑе 1. ÐÑо некоÑÑекÑное знаÑение Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑÑÑа. System.out.println("ÐÑибка. ÐекоÑÑекÑное знаÑение Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑÑÑа: " + persons + ". ÐовÑоÑиÑе ввод"); } else break; } } // 3. ÐоÑле Ð²Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ¾ÑÑекÑного знаÑÐµÐ½Ð¸Ñ > 1 ÑоздаÑÑ ÐºÐ°Ð»ÑкÑлÑÑоÑ, коÑоÑÑй бÑÐ´ÐµÑ ÑÑиÑаÑÑ ÑÑÑÑ Ð½Ð° введÑнное полÑзоваÑелем колиÑеÑÑво лÑдей. Calculator calculator = new Calculator(persons); ///////////////////////////////////////// // 2. Ðобавление ÑоваÑов в калÑкÑлÑÑÐ¾Ñ // ///////////////////////////////////////// while (true) { // 1. ÐапÑоÑиÑе Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ ÑоваÑа и его ÑÑоимоÑÑÑ. СÑоимоÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð² ÑоÑмаÑе ÑÑбли.копейки, напÑÐ¸Ð¼ÐµÑ 10.45 или 11.40. System.out.println("ÐведиÑе наименование ÑоваÑа"); // Ðе обÑабаÑÑÐ²Ð°Ñ ÑканнеÑ, Ñ.к. наименование ÑоваÑа в ÑеоÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ð¾Ð¾Ð±Ñе лÑбÑм. productName = scanner.next(); price = 0.0; // СбÑÐ¾Ñ Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° нового знаÑÐµÐ½Ð¸Ñ while (price <= 0.0) { if (!exept) { if (price < 0.0) System.out.println("ÐÑибка. СÑоимоÑÑÑ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼ÐµÐ½ÑÑе нÑлÑ, повÑоÑиÑе ввод"); else System.out.println("ÐведиÑе ÑÑоимоÑÑÑ ÑоваÑа, она должна бÑÑÑ Ð±Ð¾Ð»ÑÑе нÑлÑ"); } exept = false; try { price = scanner.nextDouble(); } catch (InputMismatchException e) { System.out.println("ÐÑибка. ÐÑжно обÑзаÑелÑно вводиÑÑ ÑиÑло"); // ÐбновлÑем scanner в ÑлÑÑае оÑибки, дÑÑгой ÑпоÑоб не наÑÑл. scanner = new Scanner(System.in); exept = true; } } // 2. ÐолÑÑеннÑй ÑÐ¾Ð²Ð°Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½ в калÑкÑлÑÑоÑ. calculator.addProdPrice(productName, price); // 5.ÐоÑле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑа в калÑкÑлÑÑÐ¾Ñ Ð½Ñжно показаÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ ÑообÑение об ÑÑпеÑном добавлении ÑоваÑа. System.out.println("Ð¢Ð¾Ð²Ð°Ñ Ð¸ ÑÑоимоÑÑÑ ÑоваÑа ÑÑпеÑно добавленÑ"); // 6.ÐоÑле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑа нÑжно ÑпÑаÑиваÑÑ Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, Ñ Ð¾ÑÐµÑ Ð»Ð¸ он добавиÑÑ ÐµÑÑ Ð¾Ð´Ð¸Ð½ ÑоваÑ. System.out.println("ХоÑиÑе добавиÑÑ ÐµÑе ÑоваÑ? ÐведиÑе \"ÐавеÑÑиÑÑ\" ÑÑÐ¾Ð±Ñ Ð·Ð°ÐºÐ¾Ð½ÑиÑÑ Ð²Ð²Ð¾Ð´."); qa = scanner.next(); if (qa.equalsIgnoreCase("ÐавеÑÑиÑÑ")) { System.out.println("Ðвод даннÑÑ Ð·Ð°Ð²ÐµÑÑен"); break; } } ////////////////////////// // 3. ÐÑвод ÑезÑлÑÑаÑов // ////////////////////////// // 1.ÐоÑле Ñого как полÑзоваÑÐµÐ»Ñ Ð²Ð²ÐµÐ´ÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ "ÐавеÑÑиÑÑ" поÑле Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑов, нÑжно // показаÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð²Ñе добавленнÑе ÑоваÑÑ Ð¸ поÑÑиÑаÑÑ, ÑколÑко должен заплаÑиÑÑ ÐºÐ°Ð¶Ð´Ñй Ñеловек. // 2.ÐаждÑй новÑй добавленнÑй ÑÐ¾Ð²Ð°Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð²Ñведен Ñ Ð½Ð¾Ð²Ð¾Ð¹ ÑÑÑоки поÑле ÑекÑÑа: "ÐобавленнÑе ÑоваÑÑ:". // ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ñимвол \n в ÑÑÑоке, ÑÑÐ¾Ð±Ñ ÑказаÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑоÑÑ, ÑÑо нÑжно ÑделаÑÑ Ð² ÑÑом меÑÑе пеÑеноÑа ÑÑÑоки. calculator.showAllProducts(); // 3.ÐÑвод ÑÑммÑ, коÑоÑÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ заплаÑиÑÑ ÐºÐ°Ð¶Ð´Ñй Ñеловек, должен бÑÑÑ Ð² ÑоÑмаÑе "10.45". // ÐÑÐ¾Ð±Ð½Ð°Ñ ÑаÑÑÑ Ð½Ðµ должна ÑодеÑжаÑÑ Ð±Ð¾Ð»ÑÑе двÑÑ ÑиÑел поÑле запÑÑой. calculator.splitSumToPerson(); } }