Repository navigation
Expand file tree
/
Copy pathMain.java
More file actions
108 lines (89 loc) · 6.54 KB
/
Copy pathMain.java
File metadata and controls
108 lines (89 loc) · 6.54 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
99
100
101
102
103
104
105
106
107
108
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int persons = 0;
boolean exept;
String productName;
String qa;
double price;
Scanner scanner = new Scanner(System.in);
///////////////////////////////////////
// 1. Входные параметры для счётчика //
///////////////////////////////////////
while (true) {
// 1.После запуска программа должна спрашивать у пользователя, на скольких человек необходимо разделить счёт.
System.out.println("На скольких человек необходимо разделить счёт?");
exept = false;
try {
persons = scanner.nextInt();
} catch (InputMismatchException e) {
System.out.println("Ошибка. Нужно обязательно вводить целое число");
// Обновляем scanner в случае ошибки, другой способ не нашёл.
scanner = new Scanner(System.in);
exept = true;
}
if (!exept) {
if (persons == 1) {
// Количество человек, введённых пользователем, равно 1. В этом случае нет смысла ничего считать и делить.
System.out.println("Ошибка. Нет смысла ничего считать и делить для одного человека. Повторите ввод.");
} else if (persons < 1) {
// Количество человек меньше 1. Это некорректное значение для подсчёта.
System.out.println("Ошибка. Некорректное значение для подсчёта: " + persons + ". Повторите ввод");
} else
break;
}
}
// 3. После введения корректного значения > 1 создать калькулятор, который будет считать счёт на введённое пользователем количество людей.
Calculator calculator = new Calculator(persons);
/////////////////////////////////////////
// 2. Добавление товаров в калькулятор //
/////////////////////////////////////////
while (true) {
// 1. Запросите у пользователя название товара и его стоимость. Стоимость должна быть в формате рубли.копейки, например 10.45 или 11.40.
System.out.println("Введите наименование товара");
// Не обрабатываю сканнер, т.к. наименование товара в теории может быть вообще любым.
productName = scanner.next();
price = 0.0; // Сброс для ввода нового значения
while (price <= 0.0) {
if (!exept) {
if (price < 0.0)
System.out.println("Ошибка. Стоимость не может быть меньше нуля, повторите ввод");
else
System.out.println("Введите стоимость товара, она должна быть больше нуля");
}
exept = false;
try {
price = scanner.nextDouble();
} catch (InputMismatchException e) {
System.out.println("Ошибка. Нужно обязательно вводить число");
// Обновляем scanner в случае ошибки, другой способ не нашёл.
scanner = new Scanner(System.in);
exept = true;
}
}
// 2. Полученный товар должен быть добавлен в калькулятор.
calculator.addProdPrice(productName, price);
// 5.После добавления товара в калькулятор нужно показать пользователю сообщение об успешном добавлении товара.
System.out.println("Товар и стоимость товара успешно добавлены");
// 6.После добавления товара нужно спрашивать у пользователя, хочет ли он добавить ещё один товар.
System.out.println("Хотите добавить еще товар? Введите \"Завершить\" чтобы закончить ввод.");
qa = scanner.next();
if (qa.equalsIgnoreCase("Завершить")) {
System.out.println("Ввод данных завершен");
break;
}
}
//////////////////////////
// 3. Вывод результатов //
//////////////////////////
// 1.После того как пользователь введёт команду "Завершить" после добавления товаров, нужно
// показать пользователю все добавленные товары и посчитать, сколько должен заплатить каждый человек.
// 2.Каждый новый добавленный товар должен быть выведен с новой строки после текста: "Добавленные товары:".
// Вы можете использовать символ \n в строке, чтобы указать компилятору, что нужно сделать в этом месте переноса строки.
calculator.showAllProducts();
// 3.Вывод суммы, которую должен заплатить каждый человек, должен быть в формате "10.45".
// Дробная часть не должна содержать больше двух чисел после запятой.
calculator.splitSumToPerson();
}
}