Repository navigation
Expand file tree
/
Copy pathCalculation.java
More file actions
76 lines (68 loc) · 4.05 KB
/
Copy pathCalculation.java
File metadata and controls
76 lines (68 loc) · 4.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import java.util.Scanner;
public class Calculation {
int numberOfPeople; // количество человек
String listOfProducts; // список товаров
double result; // сумма покупки
public void setNumberOfPeople() {
while (true) {
System.out.println("На скольких человек необходимо разделить счёт?");
while (true) {
Scanner scanner = new Scanner(System.in);
if (!scanner.hasNextInt())
System.out.println("Ошибка ввода. Введите количество человек.");
else {
numberOfPeople = scanner.nextInt();
break;
}
}
if (numberOfPeople == 1) {
System.out.println("В этом случае нет смысла ничего считать и делить.");
} else if (numberOfPeople < 1) {
System.out.println("Это некорректное значение для подсчёта.");
} else
break;
}
}
public void setListOfProducts() { // составляем список приобретенных товаров и сумму покупки
listOfProducts = "Добавленные товары:\n";
while (true) {
Nomenclature item = new Nomenclature();
item.name = "Наименование товара";
System.out.println("Введите название товара.");
item.name = item.checkName();
System.out.println("Введите цену товара в формате \"рубли,копейки\"");
item.price = item.checkPrice(); // ввод цены с защитой от ошибки
result = result + item.price;
listOfProducts = listOfProducts + item.name + " " + item.price + "\n";
System.out.println("Товар успешно добален.");
System.out.println("Если желаете завершить список, введите \"Завершить\", если продолжаем - любой символ.");
Scanner scanner1 = new Scanner(System.in);
String answer = scanner1.nextLine();
if (answer.equalsIgnoreCase("Завершить")) {
break;
}
}
}
public void resultPerPerson() { // рассчитываем сумму расходов на каждого человека и печатаем рассчет
System.out.println(listOfProducts);
double resultPerPerson = result / numberOfPeople;
String rubl = chooseTheCorrectCase(result); // определяем правильные число и падеж для слова "рубль"
String rubl1 = chooseTheCorrectCase(resultPerPerson);
System.out.println("Итого: " + String.format("%.2f", result) + " " + rubl + ";\nС каждого по: " + String.format("%.2f", resultPerPerson) + " " + rubl1 + ".");
}
String chooseTheCorrectCase(double amountOfMoney) { // метод для определения правильного падежа слова "рубль"
String correctCase;
int numberRoundUp = (int) Math.floor(amountOfMoney); // округление суммы до целого в меньшую сторону
if (numberRoundUp % 100 >= 11 && numberRoundUp % 100 <= 14) { //последние 2 цифры (остаток от деления на 100 нацело) от 11 до 14
correctCase = "рублей";
} else {
int lastDigit = numberRoundUp % 10; // определение последней цифры (остаток от деления на 10 нацело)
correctCase = switch (lastDigit) {
case 1 -> "рубль";
case 2, 3, 4 -> "рубля";
default -> "рублей";
};
}
return correctCase;
}
}