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
116 lines (97 loc) · 4.03 KB
/
Main.java
File metadata and controls
116 lines (97 loc) · 4.03 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
109
110
111
112
113
114
115
116
import java.util.Locale;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//для корректной работы с точкой
Locale.setDefault(Locale.US);
Scanner scanner = new Scanner(System.in);
// Ввод количества людей >1
int PersonsCount = 0;
boolean errorPersonsCount = true;
do {
System.out.println("На скольких человек необходимо разделить счёт?");
try {
PersonsCount = scanner.nextInt();
} catch (Exception e) {
}
/* альтернативная обработки ошибочного ввода
if (scanner.hasNextInt()){
PersonsCount = scanner.nextInt();
} else scanner.nextLine();
*/
if (PersonsCount > 1) {
errorPersonsCount = false;
} else
System.out.println("Ошибка: некорректное значение для подсчёта.");
scanner.nextLine();
}
while (errorPersonsCount);
// Добавление товаров в калькулятор
String tovarName;
float tovarPrice;
boolean notEndTovars = true;
Calc calc1 = new Calc();
do {Tovar tovar1 = new Tovar();
System.out.print("Введите название товара: ");
tovarName = scanner.nextLine();
tovar1.name = tovarName;
boolean errorInPrice = true;
do {
tovarPrice = -1;
//Товар ввели, вводим цену товара
System.out.print("Введите стоимость товара: ");
try {
tovarPrice = scanner.nextFloat();
} catch (Exception e) {
}
scanner.nextLine();
if (tovarPrice >= 0) {
errorInPrice = false;
tovar1.price = tovarPrice;
//Цену товара ввели, добавляем товар в калькулятор
calc1.addTovar(tovar1);
System.out.println("Товар " + tovar1.name + " успешно добавлен");
tovar1 = null;
} else System.out.println("Ошибка: некорректная стоимость.");
} while (errorInPrice);
// Завершить ввод товаров?
System.out.println("Хотите добавить ещё один товар? (введите Завершить если достаточно)");
if (scanner.nextLine().equalsIgnoreCase("завершить")) {
notEndTovars = false;
}
}
while (notEndTovars);
// Вывод результата, Количество людей, Товары
System.out.println("Добавленные товары:");
System.out.println(calc1.allTovars);
System.out.println("Каждый человек должен заплатить: " +
String.format("%.2f", calc1.totalPrice / PersonsCount) +
" " + floatToRubles(calc1.totalPrice / PersonsCount));
scanner.close();
} //конец main
public static String floatToRubles(float r) {
int i = (int) r;
int i10 = i % 10, i100 = i % 100;
if (i100 >= 10 && i100 <= 20) {
return "рублей";
} else if (i10 >= 5) {
return "рублей";
} else if (i10 == 0) {
return "рублей";
} else if (i10 == 1) {
return "рубль";
} else return "рубля";
}
}
class Tovar {
String name = "";
float price = 0.00f;
}
class Calc {
String allTovars = "";
float totalPrice = 0.00f;
void addTovar(Tovar tovar) {
allTovars += tovar.name + "\n";
totalPrice += tovar.price;
}
}