This repository was archived by the owner on Jul 25, 2024. It is now read-only.
Repository navigation
Expand file tree
/
Copy pathprogramActions.java
More file actions
90 lines (73 loc) · 5.1 KB
/
Copy pathprogramActions.java
File metadata and controls
90 lines (73 loc) · 5.1 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
import java.util.Scanner; // импорт сканера
class Bill {
String dishName;
double dishPrice;
}
public class programActions extends helpLibrary
{
public static int peopleQuantity() /* Ввод количества человек, на которое делится счет с проверками корректности ввода
Метод возвращает колиечество человек, на которых делится счет */
{
int peopleQuant = checkIntInput("Введите количество человек, на которых надо поделить счет: ");
boolean rightEntry = false;
while (rightEntry == false)
{
if (peopleQuant < 1) {
System.out.println("Мне кажется, что Вы несколько перебрали со спиртным. Людей не может быть меньше одного!");
peopleQuant = checkIntInput("Введите правильное количество человек: ");
} else if (peopleQuant == 1) {
System.out.println("Рекомендую посмотреть на итоговую сумму счета и полностью ее оплатить, добавиви, по желанию, чаевые. ");
peopleQuant = checkIntInput("Введите правильное количество человек: ");
}
else
{
rightEntry = true;
}
}
return peopleQuant;
}
public static Bill addDish() /* Метод обеспечивает ввод позиций счета, состоящих из названия блюда и его цены, с проверкой корректности ввода.
Завершение ввода осуществляется при вводе пользователем слова "Завершить" в любом регистре любой из букв слова */
{
Scanner scanner = new Scanner(System.in);
Bill currentBill = new Bill();
currentBill.dishName = "";
currentBill.dishPrice = 0;
String currentName = "";
System.out.println("Если есть желание ввести еще одну позицию счета - вводите, если хотите закончить - введите слово \"Завершить\" для выхода: ");
currentName = scanner.nextLine();
do {
double currentPrice = checkDoubleInput("Введите стоимость блюда: ");
if (currentPrice < 0) /* Проверка на цену меньше нуля. Возможен вариант с меньше или равно, но нулевые позиции в ресторанах иногда встречаются,
например - какие-то комплименты от заведения */
{
System.out.println("Стоимость позиции меньше нуля, думаете ресторан собирается Вам доплатить?");
}
else
{
currentBill.dishPrice += currentPrice;
currentBill.dishName += currentName + " - " + String.format("%.2f", currentPrice) + " " + roublesEnd(currentPrice) + "\n";
System.out.println("Вы ввели товар "+ currentName + " стоиомстью " + String.format("%.2f", currentPrice) + " " + roublesEnd(currentPrice) + "\n");
System.out.println("Если есть желание ввести еще одну позицию счета - вводите, если хотите закончить - введите слово \"Завершить\" для выхода: ");
currentName = scanner.nextLine();
}
}
while (checkEndInput(currentName, "завершить") == false);
currentBill.dishName += "завершить" + "\n";
return currentBill;
}
public static void showBill(Bill currentBill, int quantity) /* Метод выводит счет по пощзициям с ценами, общую суммму,
и сумму, которую должен заплатить каждый участник застолья */
{
Scanner scanner = new Scanner(currentBill.dishName);
String billPosition = scanner.nextLine();
System.out.println("\n \n \n Добавленные товары: \n");
while(!billPosition.equals("завершить"))
{
System.out.println(billPosition);
billPosition = scanner.nextLine();
}
System.out.println("\n" + "Счет итого: " + String.format("%.2f", currentBill.dishPrice) + " " + roublesEnd(currentBill.dishPrice));
System.out.println("Количество участников: " + quantity + ". \nНа каждого участника получается: " + String.format("%.2f", (currentBill.dishPrice / quantity)) + " " + roublesEnd(currentBill.dishPrice / quantity));
}
}