From cef88512a0929abc16543db55128c176f1899428 Mon Sep 17 00:00:00 2001 From: KirVar Date: Wed, 13 Mar 2024 16:03:26 +0300 Subject: [PATCH 1/3] first commit about calculate console app --- src/main/java/Main.java | 75 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..476be8c2c 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,77 @@ +import java.util.ArrayList; +import java.util.Scanner; public class Main { + private static final Scanner scanner = new Scanner(System.in); + + public static void main(String[] args) { - System.out.println("Hello world!"); + + ArrayList namesList = new ArrayList<>(); //для вывода списка позиций + String name; //переменная для названий товаров + double count; //переменная для цены товара + String outOrNot; //переменная для завершения цикла добавления товаров + double allCount = 0.00; //переменная отвечающая за общий счет + int i; //переменная количества человек + int n; //переменная для счетчика вывода списка товаров + String text; //переменная отвечающая за вывод итоговой суммы на каждого в формате 10.45 + String text2 = null; //переменная отвечающая за вывод рубль/рубля/рублей + double resultCount; //переменная отвечающая за разделение счета на каждого + int l; //переменная которая определяет количество символов в счете на каждого см.text + + System.out.println("На скольких человек необходимо разделить счёт?"); //цикл с проверками на подходящее количество человек + while (true) { + if (scanner.hasNextInt()) { + i = scanner.nextInt(); + if (i > 1) { + break; + } else { + System.out.println("Ошибка! Введите корректное значение на скольких человек необходимо разделить счёт?"); + } + } else { + System.out.println("Ошибка! Введите целочисленное значение"); + scanner.next(); + } + } + + do { + System.out.println("Введите название товара"); //цикл для добавления товаров в ArrayList и сумирования их стоимости + name = scanner.next(); + System.out.println("Введите стоимость этого товара"); + count = scanner.nextDouble(); + System.out.println("Товар успешно добавлен"); + namesList.add(name); + allCount = allCount + count; + System.out.println("Хотите ли добавить еще один товар?"); + outOrNot = scanner.next(); + } while (!"Завершить".equalsIgnoreCase(outOrNot)); + + System.out.println("Добавленные товары:"); //Итоговый вывод товаров через счетчик + for (n = 0; n < namesList.size(); n++) { + System.out.println(namesList.get(n)); + } + resultCount = (allCount / i); + text = String.format("%.2f", resultCount); + l = text.length(); + switch(text.substring(l-4,l-3)) { //свитч для определения правильного окончания + case "1": text2 = "рубль"; + break; + case "2": + case "3": + case "4": text2 = "рубля"; + break; + case "5": + case "6": + case "7": + case "8": + case "9": + case "0": + text2 = "рублей"; + break; + } + System.out.println(text + " " + text2); //итоговый вывод суммы на каждого в нужном формате и с правильным окончанием } -} \ No newline at end of file +} + + + From 5d788a007d4c1c95159690dd77f279d9bfbcb457 Mon Sep 17 00:00:00 2001 From: KirVar Date: Wed, 13 Mar 2024 22:53:34 +0300 Subject: [PATCH 2/3] first commit about calculate console app --- src/main/java/Main.java | 92 +++++++++++++++++++++++++++++++---------- 1 file changed, 70 insertions(+), 22 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 476be8c2c..553fffa39 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -8,16 +8,19 @@ public class Main { public static void main(String[] args) { ArrayList namesList = new ArrayList<>(); //для вывода списка позиций + ArrayList countsList = new ArrayList<>(); //для вывода цены каждого товара String name; //переменная для названий товаров double count; //переменная для цены товара String outOrNot; //переменная для завершения цикла добавления товаров double allCount = 0.00; //переменная отвечающая за общий счет int i; //переменная количества человек - int n; //переменная для счетчика вывода списка товаров + int n; //переменная для счетчика вывода списка товаров и их цен String text; //переменная отвечающая за вывод итоговой суммы на каждого в формате 10.45 String text2 = null; //переменная отвечающая за вывод рубль/рубля/рублей double resultCount; //переменная отвечающая за разделение счета на каждого int l; //переменная которая определяет количество символов в счете на каждого см.text + String text3 = null; //переменная отвечающая за вывод рубль/рубля/рублей в каждом товаре + String text4; //переменная для цикла вывода рубль/рубля/рублей в каждом товаре System.out.println("На скольких человек необходимо разделить счёт?"); //цикл с проверками на подходящее количество человек while (true) { @@ -26,10 +29,10 @@ public static void main(String[] args) { if (i > 1) { break; } else { - System.out.println("Ошибка! Введите корректное значение на скольких человек необходимо разделить счёт?"); + System.out.println("Ошибка! Введите корректное значение на скольких человек необходимо разделить счёт"); } } else { - System.out.println("Ошибка! Введите целочисленное значение"); + System.out.println("Ошибка! Введите целочисленное значение больше 1"); scanner.next(); } } @@ -38,9 +41,22 @@ public static void main(String[] args) { System.out.println("Введите название товара"); //цикл для добавления товаров в ArrayList и сумирования их стоимости name = scanner.next(); System.out.println("Введите стоимость этого товара"); - count = scanner.nextDouble(); + while (true) { + if (scanner.hasNextDouble()) { + count = scanner.nextDouble(); + if (count >= 0.01) { + break; + } else { + System.out.println("Ошибка! Введите цену товара больше 0"); + } + } else { + System.out.println("Ошибка! Введите цену товара числом"); + scanner.next(); + } + } System.out.println("Товар успешно добавлен"); namesList.add(name); + countsList.add(count); allCount = allCount + count; System.out.println("Хотите ли добавить еще один товар?"); outOrNot = scanner.next(); @@ -48,28 +64,60 @@ public static void main(String[] args) { System.out.println("Добавленные товары:"); //Итоговый вывод товаров через счетчик for (n = 0; n < namesList.size(); n++) { - System.out.println(namesList.get(n)); + + if ((countsList.get(n)%100 >= 11.00) && (countsList.get(n)%100 <= 19.99)) { + text3 = "рублей"; + } else { + text4 = String.format("%.2f", countsList.get(n)); + l = text4.length(); + switch (text4.substring(l - 4, l - 3)) { //свитч для определения правильного окончания + case "1": + text3 = "рубль"; + break; + case "2": + case "3": + case "4": + text3 = "рубля"; + break; + case "5": + case "6": + case "7": + case "8": + case "9": + case "0": + text3 = "рублей"; + break; + } + } + System.out.println(namesList.get(n) + " " + countsList.get(n) + " " + text3); + } resultCount = (allCount / i); text = String.format("%.2f", resultCount); - l = text.length(); - switch(text.substring(l-4,l-3)) { //свитч для определения правильного окончания - case "1": text2 = "рубль"; - break; - case "2": - case "3": - case "4": text2 = "рубля"; - break; - case "5": - case "6": - case "7": - case "8": - case "9": - case "0": - text2 = "рублей"; - break; + if ((resultCount%100 >= 11.00) && (resultCount%100 <= 19.99)) { + text2 = "рублей"; + } else { + l = text.length(); + switch (text.substring(l - 4, l - 3)) { //свитч для определения правильного окончания + case "1": + text2 = "рубль"; + break; + case "2": + case "3": + case "4": + text2 = "рубля"; + break; + case "5": + case "6": + case "7": + case "8": + case "9": + case "0": + text2 = "рублей"; + break; + } } - System.out.println(text + " " + text2); //итоговый вывод суммы на каждого в нужном формате и с правильным окончанием + System.out.println("Доля суммы всех товаров на каждого равна: " + text + " " + text2); //итоговый вывод суммы на каждого в нужном формате и с правильным окончанием } } From 87da71191269e38507bb4df4c084d11a651ba0f2 Mon Sep 17 00:00:00 2001 From: KirVar Date: Wed, 13 Mar 2024 23:00:09 +0300 Subject: [PATCH 3/3] Second commit about calculate console app with changes --- src/main/java/Main.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 553fffa39..6d288e7ea 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -89,7 +89,7 @@ public static void main(String[] args) { break; } } - System.out.println(namesList.get(n) + " " + countsList.get(n) + " " + text3); + System.out.println(namesList.get(n) + " " + countsList.get(n) + " " + text3); } resultCount = (allCount / i); @@ -117,7 +117,7 @@ public static void main(String[] args) { break; } } - System.out.println("Доля суммы всех товаров на каждого равна: " + text + " " + text2); //итоговый вывод суммы на каждого в нужном формате и с правильным окончанием + System.out.println("Доля суммы всех товаров на каждого равна: " + text + " " + text2); //итоговый вывод суммы на каждого в нужном формате и с правильным окончанием } }