import java.util.Scanner; public class Main { public static void main(String[] args) { Calculator calculator = new Calculator(); Scanner sc = new Scanner(System.in); //ÐапÑаÑиваем колиÑеÑÑво лÑдей и помеÑаем в calculator.numberOfPeople. System.out.print("Ðа ÑколÑко Ñеловек ÑазделиÑÑ ÑÑеÑ? "); getNumberOfPeople(calculator, sc); //ÐÑполнÑем оÑновной Ñикл пока isExit() == false do { System.out.println("ÐведиÑе название нового ÑоваÑа:"); addNewProductName(calculator, sc); System.out.println("ÐведиÑе ÑÐµÐ½Ñ ÑоваÑа в ÑоÑмаÑе \"ÑÑбли,копейки\""); addNewProductPrice(calculator, sc); System.out.printf("ÐÑ Ð´Ð¾Ð±Ð°Ð²Ð¸Ð»Ð¸ ÑоваÑ: %s Ñ Ñеной %.2f %s\n", calculator.currentProduct, calculator.currentPrice, wordRoubleEnding(calculator.currentPrice)); } while (!isExit(sc)); //ÐÑводим ÑезÑлÑÑÐ°Ñ printResult(calculator); } //ÐеÑод getNumberOfPeople() запÑаÑÐ¸Ð²Ð°ÐµÑ Ð²Ð²Ð¾Ð´ Ñ ÐºÐ¾Ð½Ñоли знаÑÐµÐ½Ð¸Ñ Ð¸ помеÑÐ°ÐµÑ ÐµÐ³Ð¾ в calculator.numberOfPeople, // еÑли знаÑение менÑÑе 1 или не ÑвлÑеÑÑÑ ÑелÑм ÑиÑлом, Ñо запÑаÑÐ¸Ð²Ð°ÐµÑ Ð¿Ð¾Ð²ÑоÑно. public static void getNumberOfPeople(Calculator calculator, Scanner sc) { do { System.out.println("ÐведиÑе Ñелое ÑиÑло болÑÑе 1."); while (!sc.hasNextInt()) { System.out.println("ÐведиÑе Ñелое ÑиÑло!"); sc.next(); } calculator.numberOfPeople = sc.nextInt(); } while (calculator.numberOfPeople <= 1); } // ÐеÑод addNewProductName() запÑаÑÐ¸Ð²Ð°ÐµÑ Ð²Ð²Ð¾Ð´ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑоваÑа и добавлÑÐµÑ ÐµÐ³Ð¾ в калÑкÑлÑÑÐ¾Ñ public static void addNewProductName(Calculator calculator, Scanner sc) { //ÐапÑаÑиваем название ÑоваÑа " calculator.currentProduct = sc.next(); //ÐобавлÑем название ÑоваÑа в калÑкÑлÑÑÐ¾Ñ calculator.addProductName(calculator.currentProduct + "\n"); } //ÐеÑод addNewProductPrice() запÑаÑÐ¸Ð²Ð°ÐµÑ ÑÐµÐ½Ñ ÑоваÑа и добавлÑÐµÑ ÐµÐµ в калÑкÑлÑÑоÑ. public static void addNewProductPrice(Calculator calculator, Scanner sc) { //ÐапÑаÑиваем ÑÐµÐ½Ñ ÑоваÑа в нÑжном ÑоÑмаÑе, еÑли ÑоÑÐ¼Ð°Ñ Ð½ÐµÐ²ÐµÑнÑй - вÑводим оÑÐ¸Ð±ÐºÑ Ð¸ запÑаÑиваем повÑоÑно. while (!sc.hasNextDouble()) { System.out.println("ÐевеÑнÑй ÑоÑÐ¼Ð°Ñ ÑенÑ!\nÐведиÑе ÑÐµÐ½Ñ ÑоваÑа в ÑоÑмаÑе \"ÑÑбли,копейки\""); sc.next(); } //ÐÑли ÑоÑÐ¼Ð°Ñ ÑÐµÐ½Ñ Ð²ÐµÑнÑй, Ñо пÑиÑваиваем ÑÐµÐ½Ñ calculator.currentPrice и ÑÑммиÑÑем в калÑкÑлÑÑоÑе. calculator.currentPrice = sc.nextDouble(); calculator.priceSum(calculator.currentPrice); } //ÐеÑод isExit() возвÑаÑÐ°ÐµÑ true, еÑли ввели "завеÑÑиÑÑ" инаÑе возвÑÐ°Ð¶Ð°ÐµÑ false public static boolean isExit(Scanner sc) { //ÐапÑаÑиваем надо ли добавиÑÑ Ð½Ð¾Ð²Ñй ÑÐ¾Ð²Ð°Ñ Ð¸Ð»Ð¸ завеÑÑиÑÑ. System.out.println("ÐÐ»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ÑоваÑа введиÑе лÑбой Ñимвол, Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð²Ð²ÐµÐ´Ð¸Ñе \"завеÑÑиÑÑ\"."); //ÐÑли ввели "завеÑÑиÑÑ", Ñо возвÑаÑаем true инаÑе возвÑаÑаем false return sc.next().equalsIgnoreCase("завеÑÑиÑÑ"); } //ÐеÑод printResult() вÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑоваÑов, ÑÐµÐ½Ñ Ð½Ð° каждого Ñеловека, и Ñлово "ÑÑблÑ" Ñ Ð½ÑжнÑм оконÑанием public static void printResult(Calculator calculator) { double pricePerPerson = calculator.allProductPrice / calculator.numberOfPeople; System.out.print("ÐобавленнÑе ÑоваÑÑ:\n" + calculator.productList); System.out.printf("ÐаждÑй должен заплаÑиÑÑ: %.2f %s.\n", pricePerPerson, wordRoubleEnding(pricePerPerson)); } //ÐеÑод wordEnding() возвÑаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ Ñ Ð½ÑжнÑм напиÑанием Ñлова "ÑÑблÑ" в завиÑимоÑÑи Ð¾Ñ Ð¿Ð¾ÑÐ»ÐµÐ´Ð½Ð¸Ñ ÑиÑÑ Ñелой ÑаÑÑи ÑенÑ. public static String wordRoubleEnding(double price) { int roundedPrice = (int) Math.floor(price); String roubleEnding; if (roundedPrice % 100 >= 11 && roundedPrice % 100 <= 14) { roubleEnding = "ÑÑблей"; } else { switch (roundedPrice % 10) { case 1: roubleEnding = "ÑÑблÑ"; break; case 2: case 3: case 4: roubleEnding = "ÑÑблÑ"; break; default: roubleEnding = "ÑÑблей"; } } return roubleEnding; } }