Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
f4d3a3f
Вывод через Map.Entry
yanocher Apr 7, 2024
5bf4f32
Вывод через Map.Entry
yanocher Apr 7, 2024
aa3a38f
Вывод через Map.Entry
yanocher Apr 7, 2024
5d78c19
Создал класс Formatter отдельным файлом
yanocher Apr 8, 2024
48b1ec3
Вариант с отдельным классом Formatter
yanocher Apr 8, 2024
056b8d6
Удалил класс Formatter
yanocher Apr 8, 2024
df7f586
Перед созданием статического метода в нестатическом
yanocher Apr 8, 2024
72c588a
Все работает кроме rub который не подхватывает значение sum
yanocher Apr 9, 2024
e9c4954
Все работает кроме rub который не подхватывает не тоько значение sum,…
yanocher Apr 9, 2024
57d0889
Revert "Все работает кроме rub который не подхватывает не тоько значе…
yanocher Apr 10, 2024
9029187
Все работает кроме задваивания resultSum
yanocher Apr 12, 2024
39e7638
Все работает кроме рублей resultSeparateBill
yanocher Apr 12, 2024
e331880
Все работает кроме рублей resultSeparateBill
yanocher Apr 12, 2024
808c3ac
Заработал рубль resultSeparateBill
yanocher Apr 12, 2024
4ef6cfe
Все работает, но в одном классе
yanocher Apr 13, 2024
770514f
Все работает в одном классе
yanocher Apr 13, 2024
2342912
Все работает в одном классе
yanocher Apr 13, 2024
3672784
Создал класс Formatter
yanocher Apr 14, 2024
9742787
Создал класс Chekker
yanocher Apr 14, 2024
a652487
Создал класс Chekker
yanocher Apr 14, 2024
1d8ef21
Merge remote-tracking branch 'origin/dev' into dev
yanocher Apr 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions src/main/java/Chekker.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
public class Chekker {
public static void checkNamber() {
//проверяем на число и что число > 0
while (true) {
String product = Main.scanner.nextLine();
System.out.println("Введите стоимость товара:");

if (Main.scanner.hasNextDouble()) {
double price = Main.scanner.nextDouble();
if (price > 0) {
Main.productMap.put(product, price);
Main.scanner.nextLine();
break;
}
} else {
System.out.println("Это не число");
}
}
}
}
27 changes: 27 additions & 0 deletions src/main/java/Formatter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
public class Formatter {
public static String formatCurrency() {
//импортируем число, сумму и чек каждого товара
double number = 0;
if (number == Main.resultPrice || number == Main.resultSum || number == Main.resultBill) {
number = Main.resultPrice;
} else if (number == Main.resultSum) {
number = Main.resultSum;
} else {
number = Main.resultBill;
}
//округляем вниз до цеолого числа
double result = Math.floor(number);
double ln1 = result % 10;
double ln2 = result % 100;
String currency;
//отдаем значения "рубля" своим адресатам
if (ln1 == 1 && ln2 != 11) {
currency = "рубль";
} else if (ln1 == 2 && ln2 != 12 || ln1 == 3 && ln2 != 13 || ln1 == 4 && ln2 != 14) {
currency = "рубля";
} else {
currency = "рублей";
}
return currency;
}
}
77 changes: 76 additions & 1 deletion src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,81 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
static Scanner scanner = new Scanner(System.in);
static HashMap<String, Double> productMap = new HashMap<>();
static double resultPrice;
static double resultSum;
static double resultBill;

public static void main(String[] args) {
System.out.println("Hello world!");
System.out.println("На скольких человек необходимо разделить счёт?");

//проверяем на число
while (true) {
if (!scanner.hasNextInt()) {
System.out.println("Это не число");
System.out.println("Введите число");
scanner.nextLine();
} else {
break;
}
}

//проверяем число чтобы не <= 1
int man;
while (true) {
man = scanner.nextInt();
scanner.nextLine();

if (man < 1) {
System.out.println("Это некорректное значение");
System.out.println("На скольких человек необходимо разделить счёт?");
} else if (man == 1) {
System.out.println("Введите значение больше 1");
System.out.println("На скольких человек необходимо разделить счёт?");
} else {
System.out.println("Введите название товара:");
break;
}
}

//проверяем на число и что число > 0
Chekker.checkNamber();

//спрашиваем добавление товара, завершаем или проверяем на число и что число > 0
while (true) {
System.out.println("Товар успешно добавлен");
System.out.println("Если хотите добавить ещё один товар введите 'Да', если нет, введите 'Завершить':");
String command = scanner.nextLine();

if (!command.equalsIgnoreCase("Завершить")) {
System.out.println("Введите название товара:");
Chekker.checkNamber();
} else {
System.out.println("Добавленные товары:");
break;
}
}

//выводим добавленные товары
for (Map.Entry<String, Double> entry : productMap.entrySet()) {
String product = entry.getKey();
double price = entry.getValue();
resultPrice = price;
System.out.println(String.format("%s %.2f %s ", product, resultPrice, Formatter.formatCurrency()));
}

//выводим сумму добавленных товаров
for (double bill : productMap.values()) {
resultPrice += bill;
resultSum = resultPrice;
System.out.println(String.format("Итого: %.2f %s ", resultPrice, Formatter.formatCurrency()));
//выводим сумму каждого чека добавленных товаров
resultBill = resultSum / man;
System.out.println(String.format("Каждый человек должен заплатить: %.2f %s ", resultBill, Formatter.formatCurrency()));
break;
}
}
}