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/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/EndofRUB.java b/src/main/java/EndofRUB.java
new file mode 100644
index 0000000..036f6f5
--- /dev/null
+++ b/src/main/java/EndofRUB.java
@@ -0,0 +1,50 @@
+public class EndofRUB {
+
+// Метод проверки падежа и окончания в слове руб.
+// Для определения нужного падежа достаточно проверять последние 1-2 цифры числа
+//Для этого выделяем их из числа с помощью Math.floor()-возвращает число ближайшее
+// к аргументу слева. Если остаток будет равен 1 -окончание "рубль", если 11 - "рублей"
+// аналогично с 2;3 и 4.Поэтому необходимое условие для этих цифр result % 100>= 11 && result % 100 <= 14 + + + public static void endOfWord(double single) { + if ((int) Math.floor(single) % 100>= 11 && (int) Math.floor(single) % 100 <= 14) { + System.out.printf("%.2f рублей%n",single); + } else { + switch ((int)Math.floor(single)%10) { + case 1: + System.out.printf("%.2f рубль%n",single); + break; + case 2: + case 3: + case 4: + System.out.printf("%.2f рубля%n",single); + break; + default: + System.out.printf("%.2f рублей%n",single); + break; + } + } + } + +} +//1- рубль +//2- рубля +//3- рубля +//4- рубля +//5- рублей +//6- рублей +//7- рублей +//8- рублей +//9- рублей +//10- рублей +//11- рублей +//12- рублей +//13- рублей +//14- рублей +//15- рублей +//16- рублей +//17- рублей +//18- рублей +//19- рублей +//20- рублей \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..c42d388 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,37 @@ +import java.util.Scanner; + public class Main { public static void main(String[] args) { + // ваш код начнется здесь // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + //System.out.println("Привет Мир"); + + // static short numberOfPeople; + String list=""; + Double result=0.00; + + //вводим количество участников и сохраняем в переменной people + + People.countPeople(); + while(Products.finishOfList) { + list = list + Products.inputOfProducts()+"\n"; + Products.exitOfList(); + } + + + //вывод данных + System.out.print("Всего добавлено в список: "+(Products.count-1)+" поз."+"\n"); + System.out.println(list); + //System.out.println(String.format("Итого: "+"%.2f"+" руб.",Products.total)); + System.out.printf("Итого: "+"%.2f"+ "руб.%n",Products.total); + System.out.println("Делим на: "+People.numberOfPeople+" участников"); + result=Products.total/People.numberOfPeople; + System.out.println("Каждый участник должен заплатить: "); + //вызываем метод правильного окончания слова 'рубли' + EndofRUB.endOfWord(result); + + } } diff --git a/src/main/java/People.java b/src/main/java/People.java new file mode 100644 index 0000000..d227798 --- /dev/null +++ b/src/main/java/People.java @@ -0,0 +1,37 @@ + +import java.util.Scanner; + +public class People { + + static Short numberOfPeople;// объявляем статическую переменную число участников для передачи в класс Main + + public static void countPeople() { + Scanner scanner=new Scanner(System.in); + System.out.println("Добрый день"); + + + while (true) { + System.out.println("На сколько человек разделить счёт?"); + + if (scanner.hasNextInt()){ + numberOfPeople = scanner.nextShort(); + if (numberOfPeople> 1) {
+ System.out.println("Делим счёт на "+ numberOfPeople+ " гостей");//получили число участников
+ break;
+ }else{
+ if (numberOfPeople <= 1) {
+ System.out.println("Неправильный ввод. Попробуйте ввести число участников ещё раз.");
+ }
+ }
+
+ }else{
+ System.out.println("Неправильный ввод. Попробуйте ввести число участников в числовом формате.");
+ scanner.nextLine();
+
+ }
+
+
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/Products.java b/src/main/java/Products.java
new file mode 100644
index 0000000..0916b95
--- /dev/null
+++ b/src/main/java/Products.java
@@ -0,0 +1,61 @@
+import java.util.Scanner;
+
+public class Products {
+
+
+ String name;// объявляем статическую переменную списка позиций для передачи в класс Main
+ Double price;
+ static int count = 1;
+ static String nameOfgoods;
+ static Double total=00.00;
+ static Boolean finishOfList=true;
+
+ //конструктор
+ public Products(String name, double price) {
+ this.name = name;
+ this.price = price;
+
+ }
+ // метод составления списка товаров
+ public static String inputOfProducts() {
+
+ Scanner scanner = new Scanner(System.in);
+ System.out.println("Укажите наименование Товара:");
+ String nameOfgoods = scanner.next();
+ System.out.println("Укажите стоимость Товара в формате 'рубли.копейки' (пример:10.45 или 11.40):");
+
+ Double j;
+ while (true) {
+ try {
+ String priceOfgood = scanner.next();
+ j = Double.parseDouble(priceOfgood);
+ if(j<0){
+ System.out.println("Неправильный ввод. Попробуйте ещё раз.");
+ }else {
+ break;
+ }
+ } catch (Exception e) {
+ System.out.println("Неправильный ввод. Попробуйте ещё раз.");
+ scanner.nextLine();
+ }
+ }
+
+ //записываем в nameOfgoods наименование и цену товара
+ nameOfgoods = String.format("Поз." + count + ": " + nameOfgoods + " " + "%.2f" + " руб.", j);
+ System.out.println("Товар добавлен в список " + nameOfgoods);
+ count++;//количество позиций в списке
+ total += j;//вычисляем общую стоимость всех введенных товаров
+ return nameOfgoods;//на выходе в name добавленный товар и его цена
+ }
+
+ //метод проверки выхода из процесса составления списка товаров
+
+ public static void exitOfList() {
+ Scanner scanner = new Scanner(System.in);
+ System.out.println("Хотите добавить что нибудь ещё?"+" Если да, введите любой символ или слово :");
+ System.out.println("Если добавить нечего введите 'завершить':");
+ String add = scanner.next();
+ finishOfList= !add.equalsIgnoreCase("завершить");
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/Test.java b/src/main/java/Test.java
new file mode 100644
index 0000000..91dd25a
--- /dev/null
+++ b/src/main/java/Test.java
@@ -0,0 +1,18 @@
+import java.util.Scanner;
+
+
+public class Test {
+
+ static String name;
+ static int age;
+
+ //для домашних котов
+ public void Test (String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ //для уличных котов
+ public void Test() {
+ }
+}