import java.util.HashMap;
import java.util.Scanner;
public class LetsCount {
Scanner scanner = new Scanner(System.in);
int guestCount;
LetsCount(int guestCount) {
this.guestCount = guestCount;
}
private final HashMap productList = new HashMap<>();
String productName;
double price;
// ÐеÑод Ð´Ð»Ñ Ð·Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÑоваÑов
public void inputProduct() {
while (true) {
System.out.println("ÐведиÑе название ÑоваÑа:");
productName = scanner.next();
// ТоÑка пÑеÑÑÐ²Ð°Ð½Ð¸Ñ Ð¼ÐµÑода на клÑÑевом Ñлове "завеÑÑиÑÑ"
if (productName.equalsIgnoreCase("завеÑÑиÑÑ")) {
break;
}
System.out.println("ÐведиÑе ÑÐµÐ½Ñ Ð² Ñ.Ñ. Ñ ÐºÐ¾Ð¿ÐµÐ¹ÐºÐ°Ð¼Ð¸, ÑоÑÐ¼Ð°Ñ 'ÑÑбли.копейки' [10.45, 11.40]:");
try {
price = scanner.nextDouble();
if (productList.containsKey(productName) && price > 0) { // Ðа ÑлÑÑай, еÑли Ð¼Ñ Ñже добавили Ñакой пÑодÑкÑ
price = productList.get(productName) + price;
productList.put(productName, price);
System.out.println("ÐÑ ÑÑпеÑно добавили ÑÐ¾Ð²Ð°Ñ \"" + productName + "\"");
} else if (price > 0) {
productList.put(productName, price);
System.out.println("ÐÑ ÑÑпеÑно добавили ÑÐ¾Ð²Ð°Ñ \"" + productName + "\"");
} else if (price <= 0) {
System.out.println("Ð¢Ð¾Ð²Ð°Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñ Ð¾ÑÑиÑаÑелÑной или нÑлевой ÑÑоимоÑÑÑÑ");
}
} catch (Exception nfe) {
System.out.println("УбедиÑеÑÑ, ÑÑо Ð²Ñ Ð²Ð²Ð¾Ð´Ð¸Ñе ÑиÑло в ÑоÑмаÑе 00.00 ÑÑб. ÐопÑобÑйÑе добавиÑÑ ÑÐ¾Ð²Ð°Ñ ÐµÑе Ñаз.");
scanner.next(); //оÑиÑÑка ÑканеÑа
}
System.out.println("ÐÑомежÑÑоÑнÑй иÑог: " + subTotal() +
" ÑÑб. \nÐÐ»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÑÑеÑа пÑоÑÑо напиÑиÑе \"завеÑÑиÑÑ\"");
}
}
// ÐеÑод Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑеÑа пÑомежÑÑоÑного иÑога
public double subTotal() {
double sum = 0;
for (double d : productList.values()) {
sum += d;
}
return sum;
}
// ÐеÑод Ð´Ð»Ñ Ð²Ñвода Ñека в конÑе
public void finalReceipt() {
int i = 1;
for (String key : productList.keySet()) {
System.out.println("â " + i + ". " + key + ", " + productList.get(key) + " ÑÑб.");
i++;
}
}
// ÐеÑод Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑеÑа долга на дÑÑÑ
public double duePerGuest(double guestCount, double subTotal) {
double d;
d = subTotal / guestCount;
return d;
}
// ÐеÑод Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑоÑÐ¼Ñ Ñлова "ÑÑблÑ" в завиÑимоÑÑи Ð¾Ñ ÑиÑла,
// коÑоÑое пеÑедаеÑÑÑ Ð½Ð° вÑ
оде
public String rubCase(double duePerGuest) {
int i = (int) Math.floor(duePerGuest);
if (i >= 100) { // ÐÐ»Ñ Ñеков болÑÑе 100 ÑÑб., Ð´Ð»Ñ Ð¾Ð±ÑабоÑки оÑÑаÑков 11, 12, 13 и 14.
switch (i % 100) {
case 11:
case 12:
case 13:
case 14:
return "ÑÑблей";
default: // на ÑлÑÑай, еÑли оÑÑаÑок Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð±ÑдеÑ, напÑимеÑ, 01, 24 и Ñ.д.
return rubCaseDefault(i);
}
} else if (11 <= i && i <= 14) {
return "ÑÑблей";
} else { // ÐÑли иÑоговÑй Ñек менÑÑе, Ñем на 100 ÑÑб.
return rubCaseDefault(i);
}
}
// РоÑделÑнÑй меÑод вÑнеÑено опÑеделение ÑоÑÐ¼Ñ Ñлова "ÑÑблÑ" Ð´Ð»Ñ ÑлÑÑаев по ÑмолÑаниÑ.
private String rubCaseDefault(int i) {
switch (i % 10) {
case 1:
return "ÑÑблÑ";
case 2:
case 3:
case 4:
return "ÑÑблÑ";
default:
return "ÑÑблей";
}
}
}