Repository navigation
Expand file tree
/
Copy pathMain.java
More file actions
128 lines (99 loc) · 5.01 KB
/
Copy pathMain.java
File metadata and controls
128 lines (99 loc) · 5.01 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
117
118
119
120
121
122
123
124
125
126
127
128
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// ваш код начнется здесь
// вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости
int numberOfFriends;//количество друзей
String stopInput;//завершение ввода
String foodName;//название товара
float foodPrice;//цена товара
Scanner scanner = new Scanner(System.in);
Calculator calculator = new Calculator();
System.out.println("на скольких человек необходимо разделить счёт?");
while (true) {
if (scanner.hasNextInt()) {
numberOfFriends = scanner.nextInt();
if (numberOfFriends > 1) {
break;
} else {
System.out.println("Друзей должно быть больше 1! Введите количество друзей!");
}
} else {
System.out.println("Друзей должно быть больше 1!Введите количество друзей!");
scanner.next();
}
}
while (true) {
System.out.println( "Введите название товара!"); //название может быть любым в том числе и числовым
foodName = scanner.next();
calculator.AddTovarName(foodName);
while (true) {
System.out.println(" Введите цену за " + foodName + ". Стоимость должна быть в формате рубли.копейки, например 10.45 или 11.40.");//цена может быть только числом больше 0
if (scanner.hasNextFloat())//это число
{
foodPrice = scanner.nextFloat();
if (foodPrice > 0) //это число больше нуля
{
break;
}
else {
System.out.println("Цена должна быть любым числом больше 0!");
}
} else {
System.out.println("Цена должна быть любым числом больше 0!");
scanner.next();
}
}
calculator.AddTovarPrice(foodPrice);
System.out.println("Товар добавлен!");
System.out.println( " Введите что угодно если хотите продолжить или \"завершить\" если вы добавили все товары!");
stopInput = scanner.next();
if (stopInput.equalsIgnoreCase("завершить")) {
break;
}
}
calculator.totalOutput(numberOfFriends);
}
}
class Calculator //получает на вход название и цену товара, сохраняет названия и общую сумму товаров, выводит в нужном формате
{
private String tovarName = "Добавленные товары:";
private float totalPrice = 0f;
public void AddTovarName(String foodName)//добавить товар
{
tovarName = "\n" + tovarName + "\n" + foodName;
}
public void AddTovarPrice(float foodPrice)//добавить цену на товар
{
totalPrice = totalPrice + foodPrice;
}
public void totalOutput(int numberOfFriends)//вывод результата
{
System.out.println(tovarName + "\n"); //выводим список всех товаров
System.out.println("Общая сумма к оплате: " + String.format("%.2f", totalPrice) + rubFormat(Math.floor(totalPrice)));
System.out.println("Каждый друг должен " + String.format("%.2f", (totalPrice / numberOfFriends)) + rubFormat(Math.floor(totalPrice / numberOfFriends)));
}
private String rubFormat(double totalSum) {
String rubleView;
int totalIntBaseSum = (int) totalSum;//базовое число, не меняется
int totalIntSum = totalIntBaseSum;
if (totalIntBaseSum >= 100) {
totalIntSum = totalIntBaseSum % 100;
if (totalIntSum > 20) {
totalIntSum = totalIntSum % 10;
}
} else if (totalIntBaseSum > 20) {
totalIntSum = totalIntBaseSum % 10;
}
if (totalIntSum < 1) {
rubleView = " рублей!";
} else if (totalIntSum == 1) {
rubleView = " рубль!";
} else if (totalIntSum < 5) {
rubleView = " рубля!";
} else {
rubleView = " рублей!";
}
return (rubleView);
}
}