forked from Yandex-Practicum/Java-Module-Project-YP
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
69 lines (67 loc) · 3.22 KB
/
Main.java
File metadata and controls
69 lines (67 loc) · 3.22 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
import java.util.Locale;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
print("Введие количество человек оплачивающих счет:");
int numberPeople = waitInt(1, 100); // запрашиваем
// и получаем от пользователя количество человек оплачивающих счет
String nameList, message, rub = "";
float priceProd =0.0f, resultRub = 0.0f;
MenuBar list = new MenuBar("",0.0f);
Scanner scan = new Scanner(System.in);
print("Введите наименование товара:");
// далее производим вычисление и выводим результат
while (true) {
nameList = list.writeMenu(); // заполняем строку наименованиями
// введенных пользователем товаров
print("Введите цену товара в формате 00.00:");
priceProd = list.priceSum(); // запрашиваем цену товара и прибавляем ее к
// сумме ранее введенных цен
if (scan.nextLine().equalsIgnoreCase("Завершить")) {
break;
} else {
print("Введите наименование товара:");
}
}
resultRub = priceProd/numberPeople;
rub = list.printResult(resultRub); // определяем окончание слова "рубль"
// в зависимости от полученной суммы товаров
Locale.setDefault(Locale.US);
message = "\n\n\nДобавленные товары: %s \nНаобщую сумму: %.2f\n%.2f %s с каждого из %d человек.";
print(String.format(message, nameList, Math.floor(priceProd*100)/100, Math.floor(resultRub*100)/100, rub, numberPeople));
}
// далее метод запрашивающий целочисленное значение >numPeopleMin и <numPeopleMax
// и игнорирующий введение любых других символов, строк и т.д.
public static int waitInt (int numPeopleMin, int numPeopleMax)
{
int numberPeople;
String message = "Введите целое число больше %d и меньше %d:";
while (true)
{
Scanner scanner = new Scanner(System.in);
if (scanner.hasNextInt())
{
numberPeople = scanner.nextInt();
if(numberPeople>numPeopleMin&&numberPeople<numPeopleMax)
{
return numberPeople;
}
else
{
print(String.format(message, numPeopleMin, numPeopleMax));
}
}
else
{
print(String.format(message, numPeopleMin, numPeopleMax));
}
}
}
// далее метод вывода сообщения в консоль (лень)
public static void print(String massege)
{
System.out.println(massege);
}
}