diff --git a/settings.gradle b/settings.gradle index 716abf2..be110bf 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,4 +12,4 @@ dependencyResolutionManagement { mavenCentral() } } -rootProject.name = "BillCalculator" +rootProject.name = "Java-Module-Project" diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java index 2fbc00d..8c0b51f 100644 --- a/src/main/java/Calculator.java +++ b/src/main/java/Calculator.java @@ -1,22 +1,21 @@ -class Calculator { +public class Calculator { - int friendsCount; - String cart = "Добавленные товары:"; - double totalPrice = 0; + public void cheque(int number, double totalPrice){ + //Вычисляем, сколько должен заплать каждый человек + double result = (float) totalPrice / (float) number; + int money = (int) Math.floor(result); - Calculator(int friendsCount) { - this.friendsCount = friendsCount; + String str = String.format("%.2f", result); + //Вывод суммы, которую должен заплатить каждый поровну + if ((money % 100) / 10 == 1){ + System.out.println("Сумма, которую должен заплатить каждый человек составляет: " + str + " рублей"); + }else if (money % 100 == 1){ + System.out.println("Сумма, которую должен заплатить каждый человек составляет: " + str + " рубль"); + }else if (money % 10 >= 2 && money % 10 <= 4){ + System.out.println("Сумма, которую должен заплатить каждый человек составляет: " + str + " рубля"); + }else { + System.out.println("Сумма, которую должен заплатить каждый человек составляет: " + str + " рублей"); + } } - - void addItem(Item item) { - totalPrice += item.price; - cart = cart + "\n" + item.name; - - System.out.println(item.name + " в корзине"); - } - - double divideSum() { - return totalPrice / friendsCount; - } -} +} \ No newline at end of file diff --git a/src/main/java/Formatter.java b/src/main/java/Formatter.java deleted file mode 100644 index 3f915b7..0000000 --- a/src/main/java/Formatter.java +++ /dev/null @@ -1,17 +0,0 @@ -public class Formatter { - - String formatValue(double price) { - double roundedValue = Math.floor(price); - if (roundedValue == 1) { - return "рубль"; - } else if (roundedValue >= 2 && roundedValue <= 4) { - return "рубля"; - } else { - return "рублей"; - } - } - - String roundResult(final double result) { - return String.format("%.2f", result); - } -} diff --git a/src/main/java/Item.java b/src/main/java/Item.java deleted file mode 100644 index fad8a4e..0000000 --- a/src/main/java/Item.java +++ /dev/null @@ -1,10 +0,0 @@ -class Item { - - String name; - double price; - - Item(String name, double price) { - this.name = name; - this.price = price; - } -} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 11ba5d3..1454c31 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,49 +1,21 @@ -import java.util.Scanner; - public class Main { public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - - int friendCount; - while (true) { - System.out.println("На сколько человек необходимо разделить счет?"); - friendCount = scanner.nextInt(); - - if (friendCount > 1) { - break; - } else if (friendCount == 1) { - System.out.println( - "Нет смысла делить сумму на одного человека. Давайте попробуем ввести другое значение, которое будет больше единицы."); - } else { - System.out.println("Неверное количество друзей. Значение должно быть болье единицы, давайте попробуем еще раз."); - } - } - - Calculator calculator = new Calculator(friendCount); - - while (true) { - System.out.println("Введите название товара"); - String name = scanner.next(); - System.out.println("Введите стоимость товара в формате: 'рубли.копейки' [10.45, 11.40]"); - double price = scanner.nextDouble(); + People people = new People(); + //Ввод количества человек, на которых требуется разделить счет + System.out.println("На скольких человек необходимо разделить счёт?"); + people.numberOfPeople(); - calculator.addItem(new Item(name, price)); + //Добавление продуктов + Product product = new Product(); + product.addProduct(); - System.out.println( - "Хотите добавить еще один товар? Введите любой символ для продолжения, либо 'Завершить' если больше нет товаров для добавления"); - String answer = scanner.next(); + //Вывод суммы, которую должен заплатить каждый человек + Calculator calculator = new Calculator(); + calculator.cheque(people.number, product.totalPrice); - if (answer.equalsIgnoreCase("Завершить")) { - break; - } - } - double result = calculator.divideSum(); - Formatter formatter = new Formatter(); - System.out.println(calculator.cart); - System.out.println("Каждому человеку к оплате: " + formatter.roundResult(result) + " " + formatter.formatValue(result)); } } diff --git a/src/main/java/People.java b/src/main/java/People.java new file mode 100644 index 0000000..2bab41e --- /dev/null +++ b/src/main/java/People.java @@ -0,0 +1,30 @@ +import java.util.Scanner; +public class People { + int number = 0; + + // Добавление количества человек, на которых необходимо разделить всю сумму + public void numberOfPeople(){ + + while (true){ + Scanner scanner = new Scanner(System.in); + if (scanner.hasNextInt()){ + int count = scanner.nextInt(); + if (count > 1){ + number = count; + break; + }else if (count == 1){ + System.out.println("Количество человек, введенное вами, равно 1. Пожалуйста, введите значение больше 1."); + }else{ + System.out.println("Вы ввели некорректное значение. Пожалуйста, введите значение больше 1."); + } + + }else{ + System.out.println("Вы ввели некорректное значение. Пожалуйста, введите значение больше 1."); + + + } + + + } + } +} \ No newline at end of file diff --git a/src/main/java/Product.java b/src/main/java/Product.java new file mode 100644 index 0000000..07933cc --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,56 @@ +import java.util.Scanner; + +public class Product { + + String productList = ""; + String spacing = "\n"; + String str = "Добавленные товары: "; + double totalPrice; + + //Добавление товаров и их стоимости + public void addProduct(){ + Scanner scanner = new Scanner(System.in); + System.out.println("Введите название товара"); + String name = scanner.nextLine(); + productList += str + name + spacing; + System.out.println("Введите стоимость товара"); + while (true){ + if (scanner.hasNextDouble()){ + double price = scanner.nextDouble(); + totalPrice+=price; + System.out.println("Товар успешно добавлен"); + anotherProduct(); + break; + }else { + System.out.println("Вы ввели некорректное значение. Пожалуйста, введите корректное значение стоимости"); + scanner.nextLine(); + } + } + } + + + + //Спрашиваем у пользователя - хочет ли он добавить еще один товар? + public void anotherProduct(){ + Scanner scanner = new Scanner(System.in); + System.out.println("Хотите добавить ещё один товар?"); + String fork = scanner.nextLine(); + + /*Если пользователь вводит "Да", то повторно вызываем метод addProduct + Иначе завершаем добавление продуктов и выводим список добавленных продуктов*/ + if (fork.equalsIgnoreCase("Да")){ + addProduct(); + + }else { + addedProducts(productList); + } + + } + + //Вывод добавленных продуктов + public void addedProducts (String lists){ + + System.out.println(lists); + } + +} \ No newline at end of file