import java.util.Locale; import java.util.Scanner; public class Main { public static void main(String[] args) { // ÐаÑало пÑогÑÐ°Ð¼Ð¼Ñ int amountMan = inputAmountMan(); // ÐолÑÑение колиÑеÑÑва Ñеловек Ð´Ð»Ñ ÑаÑÑеÑа из меÑода System.out.println("ÐолиÑеÑÑво Ñеловек Ð´Ð»Ñ ÑаÑÑеÑа - " + amountMan + "."); float sumProductPrice = requestProduct(); // ÐолÑÑение обÑей ÑÑÐ¼Ð¼Ñ Ð²ÑÐµÑ ÑоваÑов из меÑода float everyonePays = sumProductPrice / amountMan; // ÐолÑÑение ÑаÑÑеÑа на каждого Ñеловека String rublesEveryonePays = nameRubles(everyonePays); // ÐолÑÑение падежа Ñлова "ÑÑблÑ" из меÑода String messageTemplate = "ÐÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑÑÐµÑ Ð¾Ð±Ð¾Ð¹Ð´ÐµÑÑÑ Ð² %.2f %s."; String finalOutputText = String.format(messageTemplate, everyonePays, rublesEveryonePays); finalOutputText = finalOutputText.replace(',', '.'); // ÐÑвод ÑоÑки вмеÑÑо запÑÑой (как Ñказано в задании) System.out.println(finalOutputText); } private static int inputAmountMan() { // ÐеÑод ввода колиÑеÑÑва Ñеловек Ð´Ð»Ñ ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ ÑÑеÑа // ÐбÑÑвление меÑода, возвÑаÑеÑÑего знаÑение Ñипа int System.out.println("ÐведиÑе колиÑеÑÑво Ñеловек, на коÑоÑое бÑÐ´ÐµÑ Ñазделен ÑÑеÑ"); Scanner scanner = new Scanner(System.in); // Создание обÑекÑа "ÑканеÑ" int inputMan; // ÐбÑÑвление пеÑеменной "колиÑеÑÑво Ñеловек" while (true) { // ÐапÑÑкаем беÑконеÑнÑй Ñикл if (scanner.hasNextInt()) { // УÑловие, еÑли введено знаÑение Ñипа int inputMan = scanner.nextInt(); // Ðвод Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑва Ñеловек Ð´Ð»Ñ ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸Ñ ÑÑеÑа if (inputMan > 1) { // ÐÑли введено коÑÑекÑное знаÑение болÑÑе 1 break; // ÐÑÑ Ð¾Ð´Ð¸Ð¼ из беÑконеÑного Ñикла } else if (inputMan == 1) { // ÐÑли полÑзоваÑÐµÐ»Ñ Ð²Ð²Ð¾Ð´Ð¸Ñ 1 System.out.println("ÐÑогÑамма пÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ ÑаÑÑеÑÑ Ð¿Ñи колиÑеÑÑве Ñеловек Ð¾Ñ 2-Ñ Ð¸ болÑÑе, попÑобÑйÑе еÑе Ñаз."); } else { System.out.println("ÐекоÑÑекÑное знаÑение, попÑобÑйÑе еÑе Ñаз."); } } else { // ÐÑли полÑзоваÑÐµÐ»Ñ Ð²Ð²ÐµÐ» Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ Ñимвол или знаÑение Ñипа оÑлиÑного Ð¾Ñ int System.out.println("Ðе балÑйÑеÑÑ Ñ Ð²Ð²Ð¾Ð´Ð¾Ð¼ знаÑений. ÐводиÑе Ñелое неоÑÑиÑаÑелÑное ÑиÑло, болÑÑое или Ñавное 2"); System.out.println("\nÐведиÑе колиÑеÑÑво Ñеловек, на коÑоÑое бÑÐ´ÐµÑ Ñазделен ÑÑеÑ"); scanner.nextLine(); // пеÑÐµÑ Ð¾Ð´ на ÑледÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ ÑÑиÑÑÐ²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð±ÐµÑконеÑного вÑвода } } return inputMan; } public static float calcPrice () { // ÐеÑод ввода ÑÑоимоÑÑи ÑоваÑа Scanner scanner = new Scanner(System.in).useLocale(Locale.US); // Создание обÑекÑа "ÑканеÑ" float priceProduct; // ÐеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑÑоимоÑÑи пÑодÑкÑа System.out.println("ÐведиÑе ÑÑоимоÑÑÑ Ð¿ÑодÑкÑа в ÑоÑмаÑе 'ÑÑбли.копейки' [10.45, 11.40]:"); while (true) { // ÐапÑÑкаем беÑконеÑнÑй Ñикл if (scanner.hasNextFloat()) { // УÑловие, еÑли введено знаÑение Ñипа float priceProduct = scanner.nextFloat(); // Ðвод Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ ÑÑоимоÑÑи ÑоваÑа if (priceProduct > 0.00) { // ÐÑли введено коÑÑекÑное знаÑение болÑÑе 0.00 break; // ÐÑÑ Ð¾Ð´Ð¸Ð¼ из беÑконеÑного Ñикла } else if (priceProduct <= 0.00) { // ÐÑли полÑзоваÑÐµÐ»Ñ Ð²Ð²Ð¾Ð´Ð¸Ñ 0.00 System.out.println("ÐекоÑÑекÑное знаÑение, ÑÑоимоÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð±Ð¾Ð»ÑÑе 0.00"); } } else { // ÐÑли полÑзоваÑÐµÐ»Ñ Ð²Ð²ÐµÐ» Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ Ð½ÐµÐºÐ¾ÑекÑнÑе знаÑÐµÐ½Ð¸Ñ System.out.println("Ðе балÑйÑеÑÑ Ñ Ð²Ð²Ð¾Ð´Ð¾Ð¼ знаÑений. ÐводиÑе дÑобное неоÑÑиÑаÑелÑное ÑиÑло, болÑÑое или Ñавное 1 копейке (0.01)."); scanner.nextLine(); // пеÑÐµÑ Ð¾Ð´ на ÑледÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ ÑÑиÑÑÐ²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð±ÐµÑконеÑного вÑвода } } return priceProduct; } public static float requestProduct() { // ÐеÑод подÑÑеÑа обÑей ÑÑоимоÑÑи ÑоваÑов Scanner scanner = new Scanner(System.in);// Создание обÑекÑа "ÑканеÑ" String addedProduct = ""; // ÐбÑÑвление пеÑеменной "ÐобавленнÑе ÑоваÑÑ" и пÑиÑваивание "" float priceProductOne; // ÐбÑÑвление пеÑеменной ÑÑоимоÑÑи одного пÑодÑкÑа float sumPrice = 0.00F; // ÐбÑÑвление пеÑеменной "ÐбÑÐ°Ñ ÑÑмма вÑÐµÑ ÑоваÑов" и пÑиÑваивание "0.00" String continueProgram; // ÐбÑÑвление пеÑеменной пÑÐ¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ завеÑÑÐµÐ½Ð¸Ñ ÑаÑÑеÑов while (true) { // ÐеÑконеÑнÑй Ñикл System.out.println("ÐведиÑе название ÑоваÑа"); String nameProduct = scanner.nextLine(); // Ðвод имени ÑоваÑа priceProductOne = calcPrice(); // ÐÑзов ÑÑнкÑии и полÑÑение ÑÑоимоÑÑи ÑоваÑа Product newProduct = new Product(nameProduct, priceProductOne); // Создание ÑкземплÑÑа клаÑÑа product c аÑÑибÑÑами "ÐÐ¼Ñ ÑоваÑа", "СÑоимоÑÑÑ" System.out.println("Ð¢Ð¾Ð²Ð°Ñ " + newProduct.productName + " ÑÑпеÑно добавлен."); addedProduct = addedProduct + "\n" + newProduct.productName + ";"; // ÐеÑеÑÐµÐ½Ñ Ð²ÑÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð½ÑÑ Ð¿ÑодÑкÑов sumPrice = sumPrice + newProduct.productPrice; // ÐбÑÐ°Ñ ÑÑоимоÑÑÑ Ð²ÑÐµÑ Ð¿ÑодÑкÑов System.out.println("ÐобавленнÑе ÑоваÑÑ:" + addedProduct); System.out.println("ÐбÑÐ°Ñ ÑÑмма: " + sumPrice); System.out.println("ХоÑиÑе ли добавиÑÑ ÐµÑе один ÑоваÑ? (введиÑе 'завеÑÑиÑÑ' Ð´Ð»Ñ ÑаÑÑеÑа ÑÑоимоÑÑи или лÑбой дÑÑгой Ñимвол Ð´Ð»Ñ Ð¿ÑодолжениÑ)"); continueProgram = scanner.nextLine(); // СÑиÑÑваем желание полÑзоваÑÐµÐ»Ñ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð¸Ð»Ð¸ не завеÑÑаÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ if (continueProgram.equalsIgnoreCase("ÐавеÑÑиÑÑ")) { // УÑловие вÑÑ Ð¾Ð´Ð° из беÑконеÑного Ñикла break; // ÐÑÑ Ð¾Ð´Ð¸Ð¼ из беÑконеÑного Ñикла } System.out.println("ÐÑодолжаем добавлÑÑÑ ÑоваÑÑ"); } return sumPrice; // ÐозвÑаÑение обÑей ÑÑоимоÑÑи вÑÐµÑ ÑоваÑов } public static String nameRubles (float sum) { // ÐеÑод опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð´ÐµÐ¶Ð° Ð´Ð»Ñ Ñлова "ÑÑблÑ" float finalNumberSum = (float) Math.floor(sum); // ÐкÑÑгление в менÑÑÑÑ ÑÑоÑÐ¾Ð½Ñ String nameRublesOut; // ÐбÑÑвление ÑÑÑоки конеÑного падежа // ÐÑвод полÑÑенного падежа Ñлова "ÑÑблÑ" if (finalNumberSum >= 10.0 && finalNumberSum <= 20.0) { // ÐÑли на каждого Ñеловека Ð¾Ñ Ð¾Ñ 10 до 20 ÑÑблей nameRublesOut = "ÑÑблей"; } else { // ÐнаÑе в завиÑимоÑÑи Ð¾Ñ Ð¿Ð¾Ñледней ÑиÑÑÑ Ð² ÑиÑле finalNumberSum = finalNumberSum % 10; if (finalNumberSum == 1.0) { nameRublesOut = "ÑÑблÑ"; } else if (finalNumberSum >= 2.0 && finalNumberSum <= 4.0) nameRublesOut = "ÑÑблÑ"; else { nameRublesOut = "ÑÑблей"; } } return nameRublesOut; // То возвÑаÑÑем "ÑÑблей" } }