import java.util.ArrayList;
import java.util.Scanner;
public class Calculator {
ArrayList products = new ArrayList<>();
void start(int numberOfPeople, Scanner scanner) {
do {
String productName = getProductName(scanner);
double productPrice = getProductPrice(scanner);
products.add(new Product(productName, productPrice));
successfullyAddedMessage();
} while (shouldContinueAddingProducts(scanner));
printResults(numberOfPeople);
}
String getProductName(Scanner scanner) {
System.out.println("ÐведиÑе название ÑоваÑа:");
String productName = "";
while (productName.isEmpty()) {
productName = scanner.next();
if (productName.isEmpty()) {
System.out.println("ÐШÐÐÐÐ. Ðведенное знаÑение не должно бÑÑÑ Ð¿ÑÑÑÑм. ÐведиÑе еÑе Ñаз:");
}
}
return productName;
}
double getProductPrice(Scanner scanner) {
double price = -1;
System.out.println("ÐведиÑе ÑÑоимоÑÑÑ ÑоваÑа:");
while (price < 0) {
String priceStr = scanner.next();
try {
price = Double.parseDouble(priceStr);
if (price < 0) {
System.out.println("ÐШÐÐÐÐ. СÑоимоÑÑÑ ÑоваÑа не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼ÐµÐ½ÑÑе 0, введиÑе Ñнова:");
}
} catch (NumberFormatException e) {
System.out.println("ÐШÐÐÐÐ. Ðведеное знаÑение не ÑвлÑеÑÑÑ ÑиÑлом, введиÑе Ñнова:");
}
}
return price;
}
void successfullyAddedMessage() {
System.out.println("Ð¢Ð¾Ð²Ð°Ñ ÑÑпеÑно добавлен.\n");
}
boolean shouldContinueAddingProducts(Scanner scanner) {
System.out.println("ХоÑиÑе добавиÑÑ ÐµÑе один ÑоваÑ?");
System.out.println("ÐведиÑе \"ÐавеÑÑиÑÑ\", ÑÑÐ¾Ð±Ñ Ð¿ÑекÑаÑиÑÑ Ð²Ð²Ð¾Ð´ ÑоваÑов или лÑбой Ñимвол, ÑÑÐ¾Ð±Ñ Ð¿ÑодолжиÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑов.");
String userInput = scanner.next();
return !userInput.equalsIgnoreCase("ÐавеÑÑиÑÑ");
}
void printResults(int numberOfPeople) {
double totalPrice = 0;
System.out.println("ÐобавленнÑе ÑоваÑÑ:");
for (int i = 0; i < products.size(); i++) {
Product product = products.get(i);
System.out.println(product.name);
totalPrice += product.price;
}
String amountPerPerson = PriceFormatter.format(totalPrice / numberOfPeople);
System.out.printf("\nÐаждÑй Ñеловек должен заплаÑиÑÑ - %s", amountPerPerson);
}
}