diff --git a/src/main/java/Calculater.java b/src/main/java/Calculater.java new file mode 100644 index 000000000..5b5b229e7 --- /dev/null +++ b/src/main/java/Calculater.java @@ -0,0 +1,78 @@ +import java.util.Scanner; + +public class Calculater { + public static float calcPrice(float totalPrice) { + Scanner scanner = new Scanner(System.in); + boolean checkPrice = true; + System.out.print("Введите цену товара: "); + float price = 0; + //цикл для проверки правильности ввода цены + while (checkPrice) { + if (scanner.hasNextFloat()) { + price = scanner.nextFloat(); + if (price >= 0) { + checkPrice = false; + } else { + System.out.print("Пожалуйста, введите положительное число: "); + } + } else { + System.out.print("Пожалуйста, введите положительное число: "); + scanner.next(); + } + } + totalPrice += price; + return totalPrice; + } + + public static String calcName(String totalName) { + Scanner scanner = new Scanner(System.in); + System.out.print("Введите имя товара: "); + String nameProduct = scanner.nextLine(); + totalName += nameProduct + " "; + return totalName; + } + + public static float countProduct() { + Scanner scanner = new Scanner(System.in); + float totalPrice = 0; + String totalName = ""; + //Переменная для цикла + boolean whileCheck = true; + //Текстовые переменные для проверки ответа пользователя + String answer; + String answerTrue = "Завершить"; + //Цикл который заполнит список всех товаров и суммирует их цену. + while (whileCheck) { + totalName = calcName(totalName); + totalPrice = calcPrice(totalPrice); + System.out.println("Желайте Завершить? "); + answer = scanner.nextLine(); + //Проверка ответа на ригистр + if (answer.equalsIgnoreCase(answerTrue)) { + whileCheck = false; + } else { + whileCheck = true; + } + } + //Вывод списка продуктов + System.out.println("Список продуктов: " + totalName); + //Вывод общей цены + System.out.printf("Цена за все продукты: " + "%.2f %s \n", totalPrice, determiningEnd(totalPrice)); + + return totalPrice; + } + + public static String determiningEnd(float totalPrices) { + float namberLast = totalPrices % 10; + String rub; + //Условие для вывода правильного окончания у цены + if (namberLast == 1) { + rub = "рубль"; + } else if (namberLast >= 2 && namberLast <= 4) { + rub = "рубля"; + } else { + rub = "рублей"; + } + return rub; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..9f76c2946 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,45 @@ +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + float priceAllPeople; + int human = 0; + boolean limitTime = true; + //Вызовим функцию для коректного ввода данных пользователю + human = checkHuman(human); + //Цикл для проверки на количество людей + while (limitTime) { + if (human > 1) { + limitTime = false; + //Вызываем функцию из класса калькулятор которая считает товары и вернёт их общую цену + // Общую цену мы делим на количество людей и получаем цену для каждого человека + priceAllPeople = Calculater.countProduct() / human; + System.out.printf("Разделённый счёт: " + "%.2f %s \n", priceAllPeople, Calculater.determiningEnd(priceAllPeople)); + } else if (human == 1) { + System.out.println("Вам не нужен калькулятор ;)"); + break; + } else if (human < 1) { + System.out.println("Пожалуйста, введите положительное число (больше нуля)"); + //Вызовим функцию для коректного ввода данных пользователю + human = checkHuman(human); + } + } + } + + public static int checkHuman (int humanTime){ + Scanner scanner = new Scanner(System.in); + boolean checkWord = true; + System.out.print("Введите количество людей: "); + //Цикл для проверки ввода пользователя + while (checkWord) { + if (scanner.hasNextInt()) { + checkWord = false; + humanTime = scanner.nextInt(); + } else { + System.out.println("Пожалуйста, введите положительное число (больше нуля)");; + scanner.next(); + } + } + return humanTime; } } \ No newline at end of file