import java.util.Locale; import java.util.Scanner; public class Calculator { //клаÑÑ Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸ подÑÑÑÑа String listOfProducts; //ÑпиÑок ÑоваÑов double productPrice; //обÑÐ°Ñ ÑÑоимоÑÑÑ ÑоваÑов public Calculator() { //конÑÑÑÑкÑÐ¾Ñ listOfProducts = ""; //задаÑм знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÑпиÑка ÑоваÑов productPrice = 0.0; //задаÑм знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±Ñей ÑÑоимоÑÑи ÑоваÑов } public void addProduct() { //меÑод Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑов while (true) { Scanner in = new Scanner(System.in).useLocale(Locale.US); System.out.println("ÐведиÑе название ÑоваÑа: "); String productName = in.nextLine(); //ÑÐ¾Ñ ÑанÑем название ÑоваÑа if (productName.equalsIgnoreCase("ÐавеÑÑиÑÑ")) { //полÑзоваÑÐµÐ»Ñ Ð·Ð°Ð²ÐµÑÑÐ°ÐµÑ Ð²Ð²Ð¾Ð´ ÑпиÑка ÑоваÑов break; } listOfProducts += productName + "\n"; //в ÑпиÑок пÑодÑкÑов добавлÑем название ÑоваÑов System.out.println("ÐведиÑе ÑÑоимоÑÑÑ Ð² ÑоÑмаÑе: 'ÑÑбли.копейки' [10.45, 11.40]"); double price = inputPrice(); //вÑзÑваем меÑод ввода ÑÑоимоÑÑи productPrice += price; //в обÑÑÑ ÑÑоимоÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»Ñем ÑÑоимоÑÑÑ Ð²Ð²ÐµÐ´Ñного ÑоваÑа System.out.println("Ð¢Ð¾Ð²Ð°Ñ ÑÑпеÑно добавлен! ХоÑиÑе добавиÑÑ ÐµÑÑ Ð¾Ð´Ð¸Ð½ ÑоваÑ? ÐÑли да, Ñо пÑодолжайÑе пиÑаÑÑ Ð²Ð°Ñ ÑпиÑок. ÐÑли неÑ, Ñо напиÑиÑе \"ÐавеÑÑиÑÑ\""); } } public double inputPrice() { //меÑод ввода ÑÑоимоÑÑи ÑоваÑа while (true) { Scanner in = new Scanner(System.in).useLocale(Locale.US); if (in.hasNextDouble()) { //пÑовеÑка на ÑиÑло double price = in.nextDouble(); //ÑÑиÑÑваем ÑÑоимоÑÑÑ, коÑоÑÑÑ Ð²Ð²Ñл полÑзоваÑÐµÐ»Ñ if (price > 0) { //пÑовеÑка на Ñо, ÑÑо полÑзоваÑÐµÐ»Ñ Ð²Ð²Ð¾Ð´Ð¸Ñ ÑÑоимоÑÑÑ Ð±Ð¾Ð»ÑÑе 0 return price; } else { System.out.println("СÑоимоÑÑÑ ÑоваÑа должна бÑÑÑ Ð±Ð¾Ð»ÑÑе 0!"); } } else { System.out.println("ÐзвиниÑе, но ÑÑо Ñвно не ÑиÑло!"); } } } public static String getRubleAddition(double price) //меÑод, коÑоÑÑй ÑклонÑÐµÑ ÑÑÐ±Ð»Ñ { int num = (int)Math.floor(price); //окÑÑглÑем ÑÑоимоÑÑÑ ÑоваÑа к наименÑÑÐµÐ¼Ñ ÑÐµÐ»Ð¾Ð¼Ñ ÑиÑÐ»Ñ int preLastDigit = num % 100 / 10; //Ð½Ð°Ñ Ð¾Ð¶Ñ Ð¿ÑедпоÑледнÑÑ ÑиÑÑÑ if (preLastDigit == 1) //пÑедпоÑледнÑÑ ÑиÑÑа Ñавна 1 { return "ÑÑблей"; } switch (num % 10) //ÑмоÑÑим поÑледнÑÑ ÑиÑÑÑ { case 1: return "ÑÑблÑ"; case 2: case 3: case 4: return "ÑÑблÑ"; default: return "ÑÑблей"; } } public void printInfo(int persona) { //меÑод вÑвода инÑоÑмаÑии System.out.println("ÐобавленнÑе ÑоваÑÑ: \n" + listOfProducts); System.out.printf("СÑоимоÑÑÑ ÑоваÑов Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ по оÑделÑноÑÑи: %.2f %s \n", productPrice / persona, getRubleAddition(productPrice / persona)); System.out.printf("ÐбÑÐ°Ñ ÑÑоимоÑÑÑ ÑоваÑов: %.2f %s \n" , productPrice, getRubleAddition(productPrice)); } }