From dc6c2af6f7c8cf0ab45b330753303e3cdd590e59 Mon Sep 17 00:00:00 2001 From: AlexElcon Date: Wed, 28 Jun 2023 23:39:52 +0300 Subject: [PATCH 1/3] =?UTF-8?q?1=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 65 ++++++++++++++++++++++++++++++++++++++-- src/main/java/Tovar.java | 23 ++++++++++++++ 2 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 src/main/java/Tovar.java diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..5bc3b1e05 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,67 @@ +import static java.lang.Math.floor; + +import java.util.Scanner; public class Main { + + static Scanner scanner = new Scanner(System.in); + static String[] tovar = new String[100]; //массив сохранения наименований товара + + static String buf; //буфер проверки ввода да - нет + static int i,N; //i - счетчик товара, N - кол.человек + static double[] cost = new double[100]; // массив цен + public static void main(String[] args) { - System.out.println("Hello world!"); + + System.out.println("На сколько человек разделить счет?"); + System.out.println("Введите число больше 1"); + N = 0; + while (N <= 1) { + N = scanner.nextInt(); + if (N <= 1) { + System.out.println("Ошибка! Введите число больше 1"); + } + } + + i = 0; + for (; ; ) { + Tovar.inputTovar(); + tovar[i] = Tovar.nameTovar; + Tovar.inputCost(); + cost[i] = Tovar.bufCost; + i++; + System.out.println("Товар успешно введен"); + + System.out.println("Желаете продолжить ввод товара? " + "Завершено - нет " + "любая буква - да "); + buf = scanner.next(); + + if (buf.equalsIgnoreCase("завершено")) { + endProgram(); + break; + } + } } -} \ No newline at end of file + + public static void endProgram(){ + scanner.close(); + for (int j = 0; j < i; j++) { + System.out.println("Добавлен товар: " + tovar[j]); + } + double result = 0; + for (int j = 0; j < i; j++) { + result = result + cost[j]; + } + result = result / N; + String text = "Каждый человек должен заплатить - %.2f"; + System.out.printf(text, result); + if (floor(result) == 1) { + System.out.println(" рубль."); + } + else { + System.out.println(" рублей."); + } + } + } + + + diff --git a/src/main/java/Tovar.java b/src/main/java/Tovar.java new file mode 100644 index 000000000..7a4273344 --- /dev/null +++ b/src/main/java/Tovar.java @@ -0,0 +1,23 @@ +import java.util.Scanner; + +public class Tovar { + + static Scanner sc = new Scanner(System.in); + static String nameTovar; + static double bufCost; + public static void inputTovar() { + + System.out.println("Введите название товара "); + nameTovar = sc.next(); + } + + public static void inputCost() { + System.out.println("Введите стоимость товара "); + if (sc.hasNextDouble()) { + bufCost = sc.nextDouble(); + } else { + System.out.println("Это не число"); + } + } +} + From 77a6ad10ea57f554b7f950f64844c434b8d398a5 Mon Sep 17 00:00:00 2001 From: AlexElcon Date: Thu, 29 Jun 2023 22:05:29 +0300 Subject: [PATCH 2/3] =?UTF-8?q?2=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 69 +++++++++++++++++++++++----------------- src/main/java/Tovar.java | 14 +++++--- 2 files changed, 49 insertions(+), 34 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 5bc3b1e05..6fea8717e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -8,22 +8,22 @@ public class Main { static String[] tovar = new String[100]; //массив сохранения наименований товара static String buf; //буфер проверки ввода да - нет - static int i,N; //i - счетчик товара, N - кол.человек + static int i=0, N=0; //i - счетчик товара, N - кол.человек static double[] cost = new double[100]; // массив цен public static void main(String[] args) { System.out.println("На сколько человек разделить счет?"); - System.out.println("Введите число больше 1"); - N = 0; - while (N <= 1) { - N = scanner.nextInt(); - if (N <= 1) { - System.out.println("Ошибка! Введите число больше 1"); - } - } - i = 0; + do { + System.out.println("Введите число больше 1"); + while (!scanner.hasNextInt()) { + System.out.println("Это не целое число!"); + scanner.next(); + } + N = scanner.nextInt(); + } while (N<=1); + for (; ; ) { Tovar.inputTovar(); tovar[i] = Tovar.nameTovar; @@ -34,7 +34,6 @@ public static void main(String[] args) { System.out.println("Желаете продолжить ввод товара? " + "Завершено - нет " + "любая буква - да "); buf = scanner.next(); - if (buf.equalsIgnoreCase("завершено")) { endProgram(); break; @@ -42,26 +41,36 @@ public static void main(String[] args) { } } - public static void endProgram(){ - scanner.close(); - for (int j = 0; j < i; j++) { - System.out.println("Добавлен товар: " + tovar[j]); - } - double result = 0; - for (int j = 0; j < i; j++) { - result = result + cost[j]; - } - result = result / N; - String text = "Каждый человек должен заплатить - %.2f"; - System.out.printf(text, result); - if (floor(result) == 1) { - System.out.println(" рубль."); - } - else { - System.out.println(" рублей."); - } - } + private static void endProgram() { + scanner.close(); + System.out.println("Добавлены товары:"); + for (int j = 0; j < i; j++) { + System.out.println(tovar[j]); + } + double result = 0; + for (int j = 0; j < i; j++) { + result = result + cost[j]; } + result = result / N; + + System.out.print("Каждый человек должен заплатить - "); + + int x = (int)floor(result); + int lastX=x%10; + double i = result-x; + int cop = (int)floor(i*100); + + if (lastX==1) { + System.out.println(x + " рубль " + cop + " коп."); + } + if(lastX>1 && lastX<5) { + System.out.printf(x + " рубля " + cop + " коп."); + } + if(lastX>4){ + System.out.print(x + " рублей " + cop +" коп."); + } + } +} diff --git a/src/main/java/Tovar.java b/src/main/java/Tovar.java index 7a4273344..9c433e1a8 100644 --- a/src/main/java/Tovar.java +++ b/src/main/java/Tovar.java @@ -13,11 +13,17 @@ public static void inputTovar() { public static void inputCost() { System.out.println("Введите стоимость товара "); - if (sc.hasNextDouble()) { + do { + while (!sc.hasNextDouble()) { + System.out.println("Это не стоимость!"); + sc.next(); + } bufCost = sc.nextDouble(); - } else { - System.out.println("Это не число"); + if(bufCost<0) { + System.out.println("Не может быть отрицательная стоимость!"); + } + } while(bufCost<0); } } -} + From 8063352bb39abc23e9db2f715cfe82b7045a3a83 Mon Sep 17 00:00:00 2001 From: AlexElcon Date: Fri, 30 Jun 2023 16:24:59 +0300 Subject: [PATCH 3/3] =?UTF-8?q?3=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 17 +++++++++++------ src/main/java/Tovar.java | 9 +++++---- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 6fea8717e..485359e4d 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -8,7 +8,7 @@ public class Main { static String[] tovar = new String[100]; //массив сохранения наименований товара static String buf; //буфер проверки ввода да - нет - static int i=0, N=0; //i - счетчик товара, N - кол.человек + static int i=0, N=0; //i - счетчик товара, N - кол.человек static double[] cost = new double[100]; // массив цен public static void main(String[] args) { @@ -30,9 +30,9 @@ public static void main(String[] args) { Tovar.inputCost(); cost[i] = Tovar.bufCost; i++; - System.out.println("Товар успешно введен"); + System.out.println("Товар успешно введен."); - System.out.println("Желаете продолжить ввод товара? " + "Завершено - нет " + "любая буква - да "); + System.out.println("Желаете продолжить ввод товара? " + "Завершено - нет " + "любая буква - да. "); buf = scanner.next(); if (buf.equalsIgnoreCase("завершено")) { endProgram(); @@ -56,10 +56,15 @@ private static void endProgram() { System.out.print("Каждый человек должен заплатить - "); int x = (int)floor(result); - int lastX=x%10; - double i = result-x; - int cop = (int)floor(i*100); + int lastX=x % 100; + while(lastX>20) { + lastX = lastX%10; + } + int cop = (int)floor((result-x)*100); + if(lastX==0) { + System.out.print(x + " рублей " + cop + " коп."); + } if (lastX==1) { System.out.println(x + " рубль " + cop + " коп."); } diff --git a/src/main/java/Tovar.java b/src/main/java/Tovar.java index 9c433e1a8..ccf627b5a 100644 --- a/src/main/java/Tovar.java +++ b/src/main/java/Tovar.java @@ -15,14 +15,15 @@ public static void inputCost() { System.out.println("Введите стоимость товара "); do { while (!sc.hasNextDouble()) { - System.out.println("Это не стоимость!"); + System.out.println("Неправильно!Введите стоимость цифрами, а копейки через запятую!"); sc.next(); } bufCost = sc.nextDouble(); - if(bufCost<0) { - System.out.println("Не может быть отрицательная стоимость!"); + if(bufCost<=0) { + System.out.println("Стоимость не может быть отрицательная стоимость или равняться 0!"); + System.out.println("Повторите ввод стоимости!"); } - } while(bufCost<0); + } while(bufCost<=0); } }