import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Calculator {
private int numberOfGuests;
private double totalCost;
private Scanner scanner;
ArrayList itemNames = new ArrayList();
public Calculator() {
scanner = new Scanner(System.in);
}
public void run() {
getNumberOfGuests();
addItemsToCalculator();
showResults();
}
private void getNumberOfGuests() {
System.out.println("ÐведиÑе колиÑеÑÑво гоÑÑей");
while (true) {
try {
numberOfGuests = scanner.nextInt();
if (numberOfGuests <= 1) {
System.out.println("ÐекоÑÑекÑное колиÑеÑÑво гоÑÑей");
} else {
break;
}
} catch (InputMismatchException e) {
System.out.println("ÐекоÑÑекÑнÑй ввод. ÐведиÑе ÑиÑло");
scanner.next();
}
}
}
private void addItemsToCalculator() {
System.out.println("Ðобавление ÑоваÑов Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑеÑа.");
while (true) {
System.out.println("ÐведиÑе название ÑоваÑа или ÐведиÑе 'ÐавеÑÑиÑÑ', ÑÑÐ¾Ð±Ñ Ð·Ð°ÐºÐ¾Ð½ÑиÑÑ Ð²Ð²Ð¾Ð´.");
String itemName = scanner.next();
if (itemName.equalsIgnoreCase("ÐавеÑÑиÑÑ")) {
break;
}
System.out.println("ÐведиÑе ÑÑоимоÑÑÑ ÑоваÑа:");
while (true) {
try {
double itemCost = scanner.nextDouble();
if (itemCost <= 0) {
System.out.println("ÐекоÑÑекÑнÑй ввод.СÑоимоÑÑÑ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾ÑÑиÑаÑелÑной, либо ÑавнÑÑÑÑÑ Ð½ÑлÑ.");
} else {
itemNames.add(itemName);
totalCost += itemCost;
System.out.println("Ð¢Ð¾Ð²Ð°Ñ '" + itemName + "' ÑÑпеÑно добавлен");
break;
}
} catch (InputMismatchException e) {
System.out.println("ÐекоÑÑекÑнÑй ввод.ÐведиÑе ÑиÑло");
scanner.next();
}
}
}
}
private void showResults() {
System.out.println("ÐобавленÑе ÑоваÑÑ:");
for (String name : itemNames) {
System.out.println(name);
}
System.out.println("ÐбÑÐ°Ñ ÑÑоимоÑÑÑ:" + totalCost);
int costPerGuest = (int) (totalCost / numberOfGuests);
String currency = "ÑÑблей";
if (costPerGuest % 10 == 1 && costPerGuest % 100 != 11) {
currency = "ÑÑблÑ";
} else if (costPerGuest % 10 >= 2 && costPerGuest % 10 <= 4 && (costPerGuest % 100 < 10 || costPerGuest % 100 >= 20)) {
currency = "ÑÑблÑ";
}
System.out.println("СÑоимоÑÑÑ Ð½Ð° каждого гоÑÑÑ: " + String.format("%.2f", totalCost / numberOfGuests) + " " + currency);
}
}