diff --git a/README.md b/README.md index 63be1bfe0..2702ded2b 100644 --- a/README.md +++ b/README.md @@ -1 +1,5 @@ # Пустой репозиторий для работы с Java кодом в Android Studio +IOException - что это и с чем его едят ? + +try catch - мы это проходили ? + diff --git a/src/main/java/Calculator.java b/src/main/java/Calculator.java new file mode 100644 index 000000000..ccb3bd314 --- /dev/null +++ b/src/main/java/Calculator.java @@ -0,0 +1,11 @@ +public class Calculator { + double account = 0; + int people; + + double personalAccount(){ + return account / people; + } + Calculator(int people){ + this.people = people; + } +} diff --git a/src/main/java/Formater.java b/src/main/java/Formater.java new file mode 100644 index 000000000..359ef85db --- /dev/null +++ b/src/main/java/Formater.java @@ -0,0 +1,33 @@ +import java.util.Scanner; +public class Formater { + + public static int peopleCorrectly (){ + Scanner scanner = new Scanner(System.in); + boolean numberOfPeopleCorrectly = false; + String people = ""; + while (!numberOfPeopleCorrectly) { // пока не корректное колво людей + System.out.println("на скольких человек необходимо разделить счёт?"); + // принимаем не известный тип данных + people = scanner.nextLine(); + if (Main.isInt(people)) { // Проверяем на интовость кол-во чел и более 1 + numberOfPeopleCorrectly = true; // Корректное колво людей + } + } + return Integer.parseInt (people); + } + + public static String rub (double priceDouble){ + int price = (int) priceDouble; + int units = price%10; + int dozens = price%100/10; + if (dozens == 1){ + return "рублей"; + } else if (units> 4 || units == 0){ + return "рублей"; + } else if (units == 1) { + return "рубль"; + } else { + return "рубля"; + } + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..46b9d44fe 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,91 @@ - -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file +import java.util.ArrayList; +import java.util.Scanner; + +public class Main { + public static boolean isInt(String people){ + try { + int peopleInt = Integer.parseInt (people); + if (peopleInt <= 1){ + System.out.println("Введено не корректное кол-во человек"); + return false; + } else { + return true; + } + } catch (NumberFormatException e) { + System.out.println("Введено не корректное значение, используйте целые числа"); + return false; + } + } + + public static boolean isPriceDouble(String strPrice){ + try { + double price = Double.parseDouble(strPrice); + if (price>= 0.01) { + return true; + } else { + System.out.println("Введено не корректное значение, стоимость должна быть больше 0"); + } + } catch (NumberFormatException e) { + System.out.println("Введено не корректное значение, стоимость должна быть в формате {рубли.копейки}"); + System.out.println("Пример:\n Помидор 10.45"); + return false; + } + return false; + } + + public static void main(String[] args) { + + ArrayList products = new ArrayList(); // создаем список товаров + Scanner scanner = new Scanner(System.in); + int people = Formater.peopleCorrectly(); // получаем интовое колво людей + + Calculator calculator = new Calculator(people); + System.out.println("Добавление товаров в калькулятор"); + System.out.println("Пример:\n Помидор 10.45"); + + boolean isAddProduct = true; + while (isAddProduct) { // собираем товары + + String product = scanner.next(); + if (product.equalsIgnoreCase("завершить")) { + break; + } + // принимаем не известный тип данных + String strPrice = scanner.next(); + if (strPrice.equalsIgnoreCase("завершить")) { + break; + } + + if (isPriceDouble(strPrice)){ + //товар корректный + double price = Double.parseDouble(strPrice); + products.add(new Product(product, price)); //добавление товара в товары + System.out.println(product + " " + Math.floor(price*100)/100 + ". Данный товар был успешно добавлен"); + calculator.account += Math.floor(price*100)/100; + System.out.println("Общий чек составляет:" + calculator.account); + isAddProduct = false; + } + System.out.println("Хотите ли Вы добавить ещё один товар?"); + while (!isAddProduct){ // проверяем хочет ли пользователь добавить еще товар и переспрашиваем при не понятном ответе + String ans = scanner.nextLine().trim(); + if (ans.equalsIgnoreCase("нет") || ans.equalsIgnoreCase("завершить")){ + break; + } else if (ans.equalsIgnoreCase("да")) { + System.out.println("Введите название и цену"); + isAddProduct = true; + } else { + System.out.println("Введите да или нет"); + } + } + } + // вывод всех товаров + System.out.println("Добавленные товары:\n"); + for (Product product : products){ + String output = product.title + " " + product.price + " " + Formater.rub(product.price); + System.out.println(output); + } + // вывод сколько должен заплатить каждый + System.out.print("Каждый должен заплатить: "); + System.out.println(Math.floor(calculator.personalAccount()*100)/100 + " " + Formater.rub(Math.floor(calculator.personalAccount()*100)/100)); + } +} diff --git a/src/main/java/Product.java b/src/main/java/Product.java new file mode 100644 index 000000000..395aeb3d3 --- /dev/null +++ b/src/main/java/Product.java @@ -0,0 +1,9 @@ +public class Product { + String title; // название товара + double price; // цена товара + + Product(String title, double price){ + this.title = title; + this.price = Math.floor(price*100)/100; // Округляем число в меньшую сторону до двух знаков после запятой + } +}

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