diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 000000000..542caf6ae --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,69 @@ +import java.util.ArrayList; +import java.util.Scanner; +public class Calculator { + + private int numberOfPeople; + private double totalCost = 0; + private final ArrayList listOfProducts; + private final ArrayList costOfProducts; + + private final Formater format = new Formater(); + + private final Scanner scanner = new Scanner(System.in); + + Calculator(){ + listOfProducts = new ArrayList(); + costOfProducts = new ArrayList(); + } + + public void start(){ + System.out.print("Сколько человек будет делить счет: "); + this.numberOfPeople = format.scanInt(); + addProduct(); + + while(true){ + System.out.print("Желаете добавить ещё один товар? (Да/Завершить): "); + String str = scanner.next(); + if(str.equalsIgnoreCase("Завершить")){ + show(); + break; + } + if(str.equalsIgnoreCase("Да")) { + addProduct(); + } + } + } + + public void addProduct(){ + while(true){ + System.out.print("Введите название продукта: "); + String str = scanner.next(); + if(!str.isEmpty()){ + this.listOfProducts.add(str); + addProductCost(); + System.out.println("Товар успешно добавлен!"); + break; + } + } + } + + public void addProductCost(){ + System.out.print("Введите цену товара: "); + double cost = format.scanDouble(); + this.costOfProducts.add(cost); + this.totalCost += cost; + + } + + public void show(){ + double result = totalCost/numberOfPeople; + String rubl = format.checkRes(result); + System.out.println("Добавленные товары: "); + for(int i = 0; i < listOfProducts.size(); i++){ + System.out.printf("%-10s %20.2f \n", listOfProducts.get(i), costOfProducts.get(i)); + } + System.out.printf("\nИтого с человека:%10.2f %-2s\n(Поделено на %d человек)\n", + result, rubl, numberOfPeople); + } + +} diff --git a/src/main/java/Formater.java b/src/main/java/Formater.java new file mode 100644 index 000000000..f615b35bd --- /dev/null +++ b/src/main/java/Formater.java @@ -0,0 +1,60 @@ +import java.util.Scanner; + +public class Formater { + + private Scanner scanner = new Scanner(System.in); + + + public int scanInt(){ + while(true){ + if(scanner.hasNextInt()){ + int numbForScan = scanner.nextInt(); + if(numbForScan> 1){ + return numbForScan; + } + else{ + System.out.println("Ошибка! Введите корректное число."); + scanner = null; + scanner = new Scanner(System.in); + } + } + else { + System.out.println("Ошибка! Введите корректное число."); + scanner = null; + scanner = new Scanner(System.in); + } + } + } + + public double scanDouble(){ + while(true){ + if(scanner.hasNextDouble()){ + double numbForScan = scanner.nextDouble(); + if(numbForScan> 0){ + return numbForScan; + } + else{ + System.out.println("Ошибка! Введите корректное число."); + scanner = null; + scanner = new Scanner(System.in); + } + } + else { + System.out.println("Ошибка! Введите корректное число."); + scanner = null; + scanner = new Scanner(System.in); + } + } + } + + public String checkRes(double numb){ + int a = (int) Math.floor(numb); + if(a % 10 == 1) { + if(a % 100 == 11) return "рублей"; + else return "рубль"; + } + else if (a % 100>= 12 && a % 100 <= 15) return "рублей"; + else if (a % 10> 1 && a % 10 < 5) return "рубля"; + else return "рублей"; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..50b2894b1 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,6 @@ - public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + Calculator calculator = new Calculator(); + calculator.start(); } } \ No newline at end of file

AltStyle によって変換されたページ (->オリジナル) /