forked from Yandex-Practicum/Java-Module-Project
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
86 lines (78 loc) · 3.89 KB
/
Main.java
File metadata and controls
86 lines (78 loc) · 3.89 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
import java.util.Scanner;
import java.util.regex.Pattern;
public class Main {
// количество посетителей
static int numberOfVisitors;
// объект типа Calculator
static Calculator calculator;
public static void main(String[] args) {
numberOfVisitors = getNumberOfVisitors();
calculator = new Calculator(numberOfVisitors);
requestProductFromUser();
if (calculator.getListOfProducts().isEmpty()) {
System.out.println("Ничего не было заказано...");
} else {
calculator.printResults();
}
}
/* спрашивает у пользователя, на скольких человек необходимо разделить счёт
и возвращает это значение
*/
private static int getNumberOfVisitors() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("На скольких человек нужно разделить счет?");
String response = scanner.next();
if (isNumeric(response)) {
int intValue = Integer.parseInt(response);
if (intValue <= 1) {
System.out.println("Значение должно быть больше 1...");
} else {
return intValue;
}
} else {
System.out.println("Введите корректное значение...");
}
}
}
// Проверяет, является ли введеное пользователем значение целочисленным числом - true, иначе - false
private static boolean isNumeric(String string) {
String numericPattern = "\\d+";
return Pattern.matches(numericPattern, string);
}
// Проверяет, является ли введеное пользователем значение цислом с дробной частью - true, иначе - false
private static boolean isDoubleNumeric(String string) {
String decimalPattern = "([0-9]*)\\.([0-9]*)";
return Pattern.matches(decimalPattern, string);
}
/* Запрашивает наименование и стоимость продукта у пользователя и добавляет объекты
класса Product в объект calculator класса Calculator, пока пользователь не введет команду
"Завершить"
*/
private static void requestProductFromUser() {
Scanner scanner = new Scanner(System.in);
String nameOfProduct;
double value;
while (true) {
System.out.println("Введите, пожалуйста, название товара. (Чтобы завершить процесс, введите \"Завершить\")");
String response = scanner.next();
if (response.equalsIgnoreCase("завершить")) {
return;
} else {
nameOfProduct = response;
while (true) {
System.out.println("Введите, пожалуйста, стоимость товара в формате XX.YY (где ХХ - рубли, YY - копейки)...");
response = scanner.next();
if (isDoubleNumeric(response)) {
value = Double.parseDouble(response);
break;
} else {
System.out.println("Введите корректное значение...");
}
}
calculator.addProductToList(new Product(nameOfProduct, value));
System.out.println("Продукт успешно добавлен в калькулятор");
}
}
}
}