Repository navigation
Expand file tree
/
Copy pathMain.java
More file actions
106 lines (96 loc) · 5.51 KB
/
Copy pathMain.java
File metadata and controls
106 lines (96 loc) · 5.51 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
import java.util.Locale;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numberOfPerson;
int countWhile = 0;
int countProduct = 0;
System.out.println("Вас приветствует консольное приложение \"Побратски попилим счет, а?\".\n" +
"На скольких братюнь необходимо попилить ваш счёт?\nВведите числовое значение >1 ...");
numberOfPerson = checkingUserInputString();
checkingUserInputOfTaskCondition(numberOfPerson);
Calculate calculate = new Calculate();
Formatter formatter = new Formatter();
while (true) {
System.out.println("Вы хотите добавить позицию из счета? \n" +
"(Введите: \"да\" - если хотите ее добавить; \"завершить\" - если не хотите добавлять)...");
String userInput = scanner.next().toLowerCase(Locale.ROOT);
switch (userInput) {
case "да": {
System.out.println("Введите наименование позиции из счета...");
String nameProduct = scanner.next();
System.out.println("Введите стоимость позиции из счета...");
double costProduct = checkingUserInputDouble();
checkingValueProduct(costProduct);
Product product = new Product(nameProduct, costProduct);
calculate.addingProductsToCalculate(product);
calculate.sum(costProduct);
countProduct++;
break;
}
case "завершить": {
countWhile++;
System.out.println("Ввод позиций по счету успешно завершен.\n" +
"Количество добавленных позиций = " + countProduct +".\n\nДобавленные позиции:");
calculate.addingProductsToConsole();
break;
}
default:
System.out.println("Вы ввели некорректное значение, повторите попытку...");
}if (countWhile == 1){
break;
}
}
double division = calculate.division(calculate.sum, numberOfPerson);
if (calculate.sum == 0){
System.out.println("\nПозицици счета не были добавлены, нечего пилить. Завершение программы, братиш ;)");
}else {
String outputText = String.format("\nОбщая стоимость всех позиций братского счета = %.2f %s\n" +
"Количество братюнь, на которых необходимо попилить счет = %d\n" +
"Каждый братюня должен скинуть по - %.2f %s", calculate.sum, formatter.formatter(calculate.sum),
numberOfPerson, division, formatter.formatter(division));
System.out.println(outputText);
}
}
static int checkingUserInputString (){
Scanner scanner = new Scanner(System.in);
while (!scanner.hasNextInt()) {
System.out.println("Введите корректное значение, целое число больше 1-ого ...");
scanner.nextLine();
}return scanner.nextInt();
}
static int checkingUserInputOfTaskCondition(int number){
Scanner scanner = new Scanner(System.in);
while (true) {
if (number == 1) {
System.out.println("Введите значение >1...");
number = checkingUserInputString();
} else if (number > 1) {
System.out.println("Введено корректное значение количества братюнь, молодец братиш ;)");
break;
} else if (number <= 0) {
System.out.println("Введено значение ноль или меньше нуля, повторите попытку...");
number = checkingUserInputString();
}
}return number;
}
static double checkingUserInputDouble(){
Scanner scanner = new Scanner(System.in);
while(!scanner.hasNextDouble()) {
System.out.println("Необходимо ввести ЧИСЛОВОЕ значение стоимости позиции из счета, повторите попытку...");
scanner.nextLine();
}return scanner.nextDouble();
}
static double checkingValueProduct(double costProduct){
while (true) {
if (costProduct <= 0) {
System.out.println("Введено значение ноль или меньше нуля, повторите попытку...");
costProduct = checkingUserInputDouble();
}else if (costProduct > 0){
System.out.println( "Введено корректное значение стоимости позиции из счета, молодец братиш ;)");
break;
}
}return costProduct;
}
}