// dev branch for Y.Practicum import java.util.Scanner; import java.lang.Math; // Создаем клаÑÑ Ð·Ð°ÐºÐ°Ð·Ð° Ñ Ð¿Ð¾Ð»Ñми (блÑдо, Ñена блÑда) class Order { public String dishInOrder; public double costOfTheDish; //Ñоздаем в клаÑÑе конÑÑÑÑкÑоÑ, ÑÑÐ¾Ð±Ñ Ð¼Ð¾Ð³ веÑнÑÑÑ Ð½ÐµÑколÑко знаÑений блÑда (order.название, order.Ñена) public Order(String dishInOrder, double costOfTheDish) { this.dishInOrder = dishInOrder; this.costOfTheDish = costOfTheDish; } } public class Main { // Создаем ÑкземплÑÑ ÐºÐ»Ð°ÑÑа Scanner. static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { // 1. ÐапÑаÑиваем колиÑеÑÑво лÑдей (Ñ Ð¿ÑовеÑкой пÑавилÑноÑÑи ввода). ÐолÑÑаем Ñелое ÑиÑло N int countOfFriends = amountFriends(); // 2. ÐапÑаÑиваем наименование заказа и его ÑÑоимоÑÑÑ Ð´Ð¾ Ñлова завеÑÑиÑÑ. ÐолÑÑаем ÑÑÑÐ¾ÐºÑ Ð·Ð°ÐºÐ°Ð·Ð¾Ð² и обÑÑÑ ÑÑоимоÑÑÑ Order order = getOrder(); // 3. ÐолÑÑаем ÑезÑлÑÑÐ°Ñ Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±Ñей ÑÑоимоÑÑи заказа на колиÑеÑÑво лÑдей в ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ double partPayment = order.costOfTheDish / countOfFriends; // 4. ФоÑмаÑиÑÑем ÑезÑлÑÑÐ°Ñ Ð² ÑÑблÑÑ Ð¸ Ñ Ð´Ð²ÑÐ¼Ñ Ð·Ð½Ð°ÐºÐ°Ð¼Ð¸ поÑле запÑÑой String printLineCost = payRubles(partPayment); // 5. ÐÑводим ÑезÑлÑÑÐ°Ñ System.out.println("_______________________________________"); System.out.println("УважаемÑе поÑеÑиÑели наÑего заведениÑ!"); System.out.println("ÐÐ°Ñ Ð·Ð°ÐºÐ°Ð· ÑегоднÑ: \n" + order.dishInOrder); System.out.println("на обÑÑÑ ÑÑммÑ: " + payRubles(order.costOfTheDish)); System.out.println("ÐаждÑй из ÐÐ°Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ заплаÑиÑÑ Ð¿Ð¾: " + printLineCost); } //ÐеÑод вÑзÑваеÑÑÑ Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° колиÑеÑÑва заÑÑолÑнÑÑ Ñеловек,Ñ ÐºÐµÐ¼ делиÑÑ ÑÑÐµÑ public static int amountFriends() { int N; while (true) { System.out.println("ÐведиÑе колиÑеÑÑво Ñеловек на ÑколÑко делиÑÑ Ð·Ð°ÐºÐ°Ð·"); if(scanner.hasNextInt()) { // еÑли введено Ñелое ÑиÑло - ÑабоÑаем Ñ Ð½Ð¸Ð¼ N = scanner.nextInt(); if (N > 1) { break; } //ÐÑли введенное знаÑение ÑиÑло и оно болÑÑе 1 - пÑеÑÑваем. РпÑоÑивном ÑлÑÑаем Ñикл повÑоÑÑеÑÑÑ Ð´Ð¾ беÑконеÑноÑÑи } else { scanner.next();; } // ÐÑовеÑка введенного знаÑÐµÐ½Ð¸Ñ } return N; } // ÐеÑод ÑаÑÑеÑа и возвÑаÑа ÑпиÑка блÑд и обÑей ÑÑоимоÑÑи заказа (Order.название, Order.Ñена) public static Order getOrder() { // Ðадаем наÑалÑнÑе знаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ð¾Ð·Ð²ÑаÑа пÑи обÑÑвлении пеÑеменнÑÑ String dishInOrder = ""; double costOfTheDish = 0.0; String dish = ""; double cost ; Scanner scanner = new Scanner(System.in); System.out.println("*************************************************************"); System.out.println("ÐведиÑе поÑледоваÑелÑно название и ÑÑоимоÑÑÑ Ð·Ð°ÐºÐ°Ð·Ð°Ð½Ð½ÑÑ Ð±Ð»Ñд."); System.out.println("СпÑавоÑно: Ð´Ð»Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÑÑеÑа введиÑе Ñлово ЧÐÐÐЫРи Ð¸Ñ ÑÑоимоÑÑÑ, или ÐÐÐÐРШÐТЬ"); System.out.println(" "); while (!(dish.equalsIgnoreCase("ЧаевÑе"))) // Ñикл ÑабоÑÐ°ÐµÑ Ð¿Ð¾ÐºÐ° вмеÑÑо Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð±Ð»Ñда не бÑÐ´ÐµÑ Ð²Ð²ÐµÐ´ÐµÐ½Ð¾ "ÐавеÑÑение" - без ÑÑеÑа ÑегиÑÑÑа. ÐÑи вводе "ЧаевÑе" - !true - пÑеÑÐ²ÐµÑ Ñикл { System.out.println("ÐведиÑе название блÑда (или кодовое Ñлово 'ÐавеÑÑиÑÑ'): "); dish = scanner.next(); // СÑиÑÑваем название if (dish.equalsIgnoreCase("ÐавеÑÑиÑÑ")) { break; } dishInOrder = (dishInOrder + dish + "\n"); // ФоÑмиÑÑем ÑпиÑок блÑд System.out.println("ÐведиÑе ÑÑоимоÑÑÑ Ð±Ð»Ñда (или ÑÐ°Ð·Ð¼ÐµÑ ÑаевÑÑ ): "); while (true) { if (scanner.hasNextDouble() || scanner.hasNextInt() ) { // еÑли введено ÑиÑло - ÑабоÑаем Ñ Ð½Ð¸Ð¼ cost = scanner.nextDouble(); // СÑиÑÑваем ÑÐµÐ½Ñ if (cost > 0) // ÐÑовеÑÑем ввод полÑзоваÑелÑ. ÐÑли не ÑиÑло - не ÑÑммиÑÑем. Ðожно и пеÑеÑпÑоÑиÑÑ { costOfTheDish = costOfTheDish + cost; // СÑммиÑÑем break; } } else { System.out.println("ÐведиÑе, пожалÑйÑÑа, пÑавилÑно ÑÑоимоÑÑÑ Ñказанного блÑда, а не ÑÑо " + scanner.next()); //вÑводим в конÑÐ¾Ð»Ñ ÑообÑение } } } return new Order(dishInOrder, costOfTheDish); } // ФÑнкÑÐ¸Ñ (меÑод) опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ ÑÑÐ±Ð»Ñ - ÑÑÐ±Ð»Ñ - ÑÑблей и ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾ 2 знаков поÑле запÑÑой public static String payRubles(double partPayment) { double PayInt; PayInt = Math.floor(partPayment); String endRub = "ÑÑблÑ"; //ÐбÑÑвлÑем пеÑеменнÑÑ Ð´Ð»Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ Ð¸ задем знаÑение по ÑмолÑÐ°Ð½Ð¸Ñ if (PayInt % 10 == 0 || PayInt % 10 > 4 || (PayInt % 100 > 10 && PayInt % 100 < 20)) { endRub = "ÑÑблей"; } else if (PayInt % 10 > 1 && PayInt % 10 < 5) { endRub = "ÑÑблÑ"; } return String.format("%.2f", partPayment) + " " + endRub; //ФоÑмаÑиÑÑем и возвÑаÑаем ÑÑÑÐ¾ÐºÑ Ñ Ð¾ÐºÐ¾Ð½Ñанием ÑÑÐ±Ð»Ñ - ÑÑÐ±Ð»Ñ - ÑÑблей } }