Repository navigation
Expand file tree
/
Copy pathBillCalculator.java
More file actions
98 lines (79 loc) · 3.64 KB
/
Copy pathBillCalculator.java
File metadata and controls
98 lines (79 loc) · 3.64 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import java.util.ArrayList;
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Scanner;
public class BillCalculator {
static Scanner scanner = new Scanner(System.in);
// Запрос и проверка корректности количества человек
public static int amountRequest() {
int amountOfPeople = 0;
System.out.println("Уточните, пожалуйста, на сколько персон необходимо разделить счет?\nКоличество: ");
while (amountOfPeople <= 1) {
try {
amountOfPeople = scanner.nextInt();
if (amountOfPeople == 1) {
System.out.println("Тогда нет смысла делить счет:). Попробуйте снова.");
} else if (amountOfPeople <= 0) {
System.out.println("Введено некорректное значение. Попробуйте снова.");
}
} catch (InputMismatchException e) {
System.out.println("Необходимо ввести число. Попробуйте снова.");
scanner.next();
}
}
return amountOfPeople;
}
// Запрос и проверка правильности стоимости
public static float getCost() {
float getCost = -1.0f;
while (getCost < 0) {
System.out.println("Введите стоимость товара: ");
try {
getCost = scanner.nextFloat();
if (getCost < 0) {
System.out.println("Некорректное значение стоимости.");
}
} catch (InputMismatchException e) {
System.out.println("Необходимо ввести число. Попробуйте снова.");
scanner.next();
}
}
return getCost;
}
//Обработка окончаний для вывода
public static String properTextEnd(float inCost) {
String textEnd = "";
int temp = (int)inCost;
if ((temp % 100) > 10 & (temp % 100) < 20) {
textEnd = "ей";
} else if ((temp % 10) > 1 & (temp % 10) < 5) {
textEnd = "я";
} else if (temp % 10 == 1) {
textEnd = "ь";
} else {
textEnd = "ей";
}
return textEnd;
}
// Калькулятор товаров
public static HashMap<ArrayList<String>, Float> calculator() {
HashMap<ArrayList<String>, Float> productHashMap = new HashMap<>();
String command = "";
ArrayList<String> productList = new ArrayList<>();
float totalCost = 0.0f;
float productCost = 0.0f;
while (!command.equals("завершить")) {
System.out.println("Введите название товара: ");
String productName = scanner.next();
productCost = getCost();
productList.add(productName);
totalCost = totalCost + productCost;
System.out.printf("Товар '%s' стоимостью %.2f рубл%s успешно добавлен.\n", productName,
productCost, properTextEnd(productCost));
System.out.println("Хотите добавить еще товар? (Для завершения введите команду 'Завершить')");
command = scanner.next().toLowerCase();
}
productHashMap.put(productList, totalCost);
return productHashMap;
}
}