Repository navigation
Expand file tree
/
Copy pathCalculator.java
More file actions
93 lines (89 loc) · 4.46 KB
/
Copy pathCalculator.java
File metadata and controls
93 lines (89 loc) · 4.46 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
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Scanner;
public class Calculator {
public static HashMap<String, Double> products = new HashMap<>();
public static double sumBill = 0;
public static void addProduct(){
Scanner scanner = new Scanner(System.in);
scanner.useLocale(Locale.ENGLISH);
while (true){
System.out.println("Добавление нового товара.");
System.out.print("Введите название товара: ");
String productName = scanner.nextLine();
productName = productName.trim();
System.out.println("Введите стоимость этого товара. Стоимость должна быть в формате рубли.копейки, например 10.45 или 11.40");
double price = 0.0;
while (true) {
String input = scanner.nextLine();
input = input.trim();
if (input.matches("\\d+\\.\\d+")) { //& (!input.matches("^0\\d+\\.\\d+$")) - можно ещё добавить такое условие, чтобы запретить ввод значений, начинающихся с 0, но незначащие нули удаляются, поэтому это можно и не делать
try {
price = Double.parseDouble(input);
if (price >= 0) {
break;
} else {
System.out.println("Некорректный ввод. Пожалуйста, введите положительное число с дробной частью, используя точку:");
}
} catch (NumberFormatException e) {
System.out.println("Некорректный ввод. Пожалуйста, введите положительное число с дробной частью, используя точку:");
}
} else {
System.out.println("Некорректный ввод. Пожалуйста, введите положительное число с дробной частью, используя точку:");
}
}
products.put(productName, price);
System.out.println("Товар успешно добавлен!");
sumBill = sumBill + price;
System.out.println("Хотите ли вы добавить ещё один товар? Если нет - введите \"Завершить\"");
Scanner sc = new Scanner(System.in);
String wish = sc.nextLine();
wish = wish.trim();
if (wish.equalsIgnoreCase("Завершить"))
break;
}
scanner.close();
}
public static void outputOfResults(){
System.out.println("Добавленные товары: ");
for (Map.Entry<String, Double> entry : products.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
double billForOne = Calculator.sumBill / PeopleNumber.numberOfPeople;
String billForOneStr = String.format("%.2f", billForOne);
int intBillSecond = ((int) Math.floor(billForOne)) % 100;
if ((intBillSecond / 10 == 1)) {
System.out.print("Сумма, которую должен заплатить каждый человек: ");
System.out.println(billForOneStr + " рублей");
}
else {
int intBill = ((int) Math.floor(billForOne)) % 10;
System.out.print("Сумма, которую должен заплатить каждый человек: ");
switch (intBill){
case 1:
{
System.out.println(billForOneStr + " рубль");
break;
}
case 2:
case 3:
case 4:
{
System.out.println(billForOneStr + " рубля");
break;
}
case 5:
case 6:
case 7:
case 8:
case 9:
case 0:
{
System.out.println(billForOneStr + " рублей");
break;
}
}
}
}
}