diff --git a/src/main/java/Guest.java b/src/main/java/Guest.java new file mode 100644 index 0000000..92aa74c --- /dev/null +++ b/src/main/java/Guest.java @@ -0,0 +1,8 @@ +public class Guest { + + int guests; + + Guest(int guests) { + this.guests = guests; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..0a429dd 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,91 @@ +import java.util.ArrayList; +import java.util.Scanner; + public class Main { + static Scanner scanner = new Scanner(System.in); + static ArrayList products = new ArrayList(); + static Guest guests; + static ProdCalc prodCalc; + public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + prodCalc = new ProdCalc(); + addGuests(); + addProd(); + runSum(); + runDivide(); + printResult(); + } + + public static void addGuests() { + int person; + do { + System.out.println("Сколько вас человек?"); + while (!scanner.hasNextInt()) { + System.out.println("Введите корректное значение: "); + scanner.next(); + } + person = scanner.nextInt(); + } while (person <= 1); + guests = new Guest(person); + } + + public static void addProd() { + String food; + double price; + while (true) { + System.out.println("Ведите название товара или 'Завершить'"); + food = scanner.next(); + if (food.equalsIgnoreCase("завершить")) { + break; + } else { + do { + System.out.println("Стоимость товара в формате 'рубли.копейки' (XX,XX)"); + while (!scanner.hasNextDouble()) { + System.out.println("Введите корректное значение!"); + scanner.next(); + } + price = scanner.nextDouble(); + } + while (price <= 0); + } + products.add(new Product(food, price)); + System.out.println("Добавлено"); + } + } + + + public static double runSum() { + for (int i = 0; i < products.size(); i++) { + prodCalc.sum(products.get(i).coast); + } + return prodCalc.summaryCoast; + } + + public static double runDivide() { + return prodCalc.divide(guests.guests); + } + + public static void printResult() { + String template = "Каждый должен заплатить %.2f %s"; + System.out.println("Добавленные товары: "); + + + for (int i = 0; i < products.size(); i++) { + System.out.println(products.get(i)); + } + System.out.println("Общая сумма: " + prodCalc.summaryCoast); + System.out.println(String.format(template, prodCalc.moneyForPerson, getRightWord(prodCalc.moneyForPerson))); + + } + + private static String getRightWord(double n) { + n = (int) Math.floor(n); + n = Math.abs(n) % 100; + int n1 = (int) (n % 10); + if (n > 10 && n < 20) return "рублей"; + if (n1 > 1 && n1 < 5) return "рубля"; + if (n1 == 1) return "рубль"; + return "рублей"; } } diff --git a/src/main/java/ProdCalc.java b/src/main/java/ProdCalc.java new file mode 100644 index 0000000..9af2319 --- /dev/null +++ b/src/main/java/ProdCalc.java @@ -0,0 +1,17 @@ +public class ProdCalc { + + public double summaryCoast; + public double moneyForPerson; + + public double sum(double coast) { + return summaryCoast += coast; + } + + public double divide(int guests) { + moneyForPerson = summaryCoast / guests; + return moneyForPerson; + } + + +} + diff --git a/src/main/java/Product.java b/src/main/java/Product.java new file mode 100644 index 0000000..a526e3d --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,15 @@ +public class Product { + + public String name; + public double coast; + + Product(String name, double coast) { + this.name = name; + this.coast = coast; + } + + public String toString() { + return String.format("%s:\t%.2f", name, coast); + + } +}