Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions src/main/java/Calculator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
public class Calculator {
private double allProductPrice = 0.00;

public double getAllProductPrice() {
return allProductPrice;
}

int guestNumber;

String guestBill;
public void setAllProductPrice(double productPrice) {
allProductPrice +=productPrice;
}


public String getGuestBill(int enterGuestNumber) {
guestNumber = enterGuestNumber;
guestBill = String.format("%.2f", allProductPrice /guestNumber);
return guestBill;
}

}
72 changes: 71 additions & 1 deletion src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,76 @@
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
ArrayList <Product> productList = new ArrayList<>();

int amount;

System.out.println("На скольких человек необходимо разделить счёт?");

while (true) {
Scanner sc = new Scanner(System.in);

if (sc.hasNextInt()) {

while (true) {
amount = sc.nextInt();

if (amount < 1) {
System.out.println("Это некорректное значение для подсчёта.");
} else if (amount == 1) {
System.out.println("Деление счёта бессмыслено :)");
} else {
System.out.println("Введите наименование товара и стоимость товара в формате рубли.копейки, например 'Цезарь 250.70'. Для окончания подсчета введите 'Завершить'");
Calculator newCalculator = new Calculator();

sc.nextLine();

while (true) {
Product newProduct = new Product();
String userAnswer = sc.nextLine();

if (!userAnswer.equalsIgnoreCase("завершить")) {
try {
String[] userAnswerArr = userAnswer.split(" ");
String price = userAnswerArr[userAnswerArr.length - 1];
String name = userAnswer.replaceAll(price, "");

newProduct.setProductName(name);
newProduct.setProductPrice(price);
newCalculator.setAllProductPrice(newProduct.getProductPrice());
productList.add(newProduct);
System.out.println("Товар успешно добавлен в список");
System.out.println("Хотите добавить еще товар или завершить подсчёт? Для окончания подсчета введите 'Завершить'");
} catch (NumberFormatException e) {
System.out.println("Неверный формат цены. Повторите попытку");
} catch (Exception e) {
System.out.println("Неверный формат ввода");
}
}

else {
break;
}
}

if (newCalculator.getAllProductPrice() != 0.00) {
System.out.println("Добавленные товары:");

for (Product eachProduct: productList) {
System.out.println(eachProduct.getProductInfo());
}

System.out.println("Сумма к оплате каждого гостя: " + newCalculator.getGuestBill(amount));
break;
}
}
}
break;
} else {
System.out.println("Неправильный ввод. Введите корректное цифровое значение");
}
}
}
}
28 changes: 28 additions & 0 deletions src/main/java/Product.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import static java.lang.Math.floor;

public class Product {
private String productName;
private double productPrice;
String rublesName;

public void setProductPrice(String price) throws NumberFormatException {
this.productPrice = Double.parseDouble(price);
}
public void setProductName(String name) {
this.productName = name;
}
public double getProductPrice() {
return productPrice;
}
public String getProductInfo() {
if (floor(productPrice) > 4 && floor(productPrice) < 21 || ((floor(productPrice)/10)%10) > 4 && ((floor(productPrice)/10)%10) < 10 || ((floor(productPrice)/10)%10) == 0 ) {
rublesName = "рублей";
} else if ( ((floor(productPrice)/10)%10) == 1 || floor(productPrice) == 1) {
rublesName = "рубль";
} else if ( ((floor(productPrice)/10)%10) > 1 && ((floor(productPrice)/10)%10) < 5 || floor(productPrice) > 1 && floor(productPrice) < 5) {
rublesName = "рубля";
}

return this.productName + " " + String.format("%.2f", this.productPrice) + " " + rublesName;
}
}