diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..7643783
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..79ee123
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..61a9130
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..6cec569
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..a47d29e
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java
new file mode 100644
index 0000000..bb997d5
--- /dev/null
+++ b/src/main/java/Calculator.java
@@ -0,0 +1,37 @@
+public class Calculator {
+ static float itemsSum;
+ static float costPerPerson;
+
+ public static void sumCostsOfItems(float cost) {
+ itemsSum = itemsSum + cost;
+ }
+
+ public static float calculateCostPerPerson(int personsQuantity) {
+ costPerPerson = itemsSum / (float) personsQuantity;
+ return costPerPerson;
+ }
+
+ public static String findRightRoubleWord(int roubles) {
+ String roubleName;
+ int lastDigit;
+ int lastTwoDigits;
+ lastTwoDigits = roubles % 100;
+ if (lastTwoDigits>= 11 && lastTwoDigits <= 14) { + roubleName = "рублей"; + return roubleName; + } + lastDigit = roubles % 10; + if (lastDigit == 1) { + roubleName = "рубль"; + return roubleName; + } else if (lastDigit>= 2 && lastDigit <= 4) { + roubleName = "рубля"; + return roubleName; + } else { + roubleName = "рублей"; + return roubleName; + } + } + +} + diff --git a/src/main/java/ItemsBasket.java b/src/main/java/ItemsBasket.java new file mode 100644 index 0000000..10fe53c --- /dev/null +++ b/src/main/java/ItemsBasket.java @@ -0,0 +1,16 @@ +public class ItemsBasket { + static String itemsNames = "None"; + + public static void addItemInBasket(String name) { + if (itemsNames.equals("None")) { + itemsNames = name; + } else { + itemsNames = itemsNames + ", " + name; + } + } + + public static void writeItemsFromBasket() { + System.out.println("Добавленные товары:\n" + itemsNames.replaceAll(", ", "\n")); + } +} + diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..728eb0f 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,95 @@ -public class Main { +import java.util.Scanner; +public class Main { public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + int personsQuantity = inputPersonsQuantity(); // получем колчиество персон + String itemName = inputItemName(1); // получаем имя первого товара + float itemCost = inputItemCost(itemName); // получаем стоимость товара + + ItemsBasket.addItemInBasket(itemName); // записали Item в Basket + Calculator.sumCostsOfItems(itemCost); // приплюсовали Cost + int roubles = (int) (itemCost); + String roubleName = Calculator.findRightRoubleWord(roubles); + + System.out.printf("Вы успешно добавили товар %s стоимостью %.2f %s%n", itemName, itemCost, roubleName); + while (true) { + itemName = inputItemName(2); // получаем имя следующего товара + if (itemName.equalsIgnoreCase("ЗАВЕРШИТЬ")) { + break; + } // проверяем команду Завершить + itemCost = -1.1f; // сброс предыдущего значения для вхождения в цикл + while (itemCost < 0) { + itemCost = inputItemCost(itemName); + }// получаем стоимость следующего товара + ItemsBasket.addItemInBasket(itemName); // записали Item в Basket + Calculator.sumCostsOfItems(itemCost); // приплюсовали Cost + roubles = (int) (itemCost); + roubleName = Calculator.findRightRoubleWord(roubles); + System.out.printf("Вы успешно добавили товар %s стоимостью %.2f %s%n", itemName, itemCost, roubleName); + } + + float resultCalculator = Calculator.calculateCostPerPerson(personsQuantity); + ItemsBasket.writeItemsFromBasket(); + roubles = (int) (resultCalculator); + roubleName = Calculator.findRightRoubleWord(roubles); + System.out.printf("Каждому нужно заплатить %.2f %s%n", resultCalculator, roubleName); + } + +//_____________________________________________________________________________________________ + + public static int inputPersonsQuantity() { + Scanner scanner = new Scanner(System.in); + System.out.println("Введите число персон, на которых разделить счет:"); + int personsQuantity; + while (true) { + if (scanner.hasNextInt()) { + personsQuantity = scanner.nextInt(); + break; + } else { + System.out.println("Ошибочный ввод. Попробуйте ещё раз ввести число персон в виде целого положительного числа, например 10,45"); + scanner.next(); + } + } + return personsQuantity; + } + + public static String inputItemName(int type) { + Scanner scanner = new Scanner(System.in); + String itemName; + switch (type) { + case 1: + System.out.println("Введите название товара из чека:"); + itemName = scanner.next(); + itemName = itemName.trim(); + return itemName; + case 2: + System.out.println("Если хотите завершить ввод напишите \"Завершить\" или введите название следующего товара из чека:"); + itemName = scanner.next(); + itemName = itemName.trim(); + return itemName; + } + itemName = "None"; + return itemName; + } + + public static float inputItemCost(String itemName) { + Scanner scanner = new Scanner(System.in); + System.out.println("Введите стоимость товара " + itemName + " в формате 0,00 в рублях с копейками:"); + float itemCost; + while (true) { + if (scanner.hasNextFloat()) { + itemCost = scanner.nextFloat(); + if (itemCost>= 0) {
+ break;
+ } else {
+ System.out.println("Вы ввели стоимость не в правильном фомате. Попробуйте ещё раз, например 10,45");
+ scanner.next();
+ }
+ } else {
+ System.out.println("Вы ввели стоимость не в правильном фомате. Попробуйте ещё раз, например 10,45");
+ scanner.next();
+ }
+ }
+ return itemCost;
}
-}
+}
\ No newline at end of file