From 7f4cfee4925df8bcfeaa9e7d50b27bf28a10af39 Mon Sep 17 00:00:00 2001 From: Ealyk Date: 2024年4月12日 23:21:05 +0300 Subject: [PATCH 1/3] calculator is work --- src/main/java/Main.java | 106 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 104 insertions(+), 2 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index db9356a08..d72fc8c42 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,6 +1,108 @@ +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + Console.console(); } -} \ No newline at end of file + + +} +class Product{ + + private String name; + private double price; + Product(String name, double price){ + this.name = name; + this.price = price; + } + public String getName(){ + return name; + } + public double getPrice() { + return price; + } +} +class Console{ + static int countHuman; + static Scanner scanner = new Scanner(System.in); + static void console() { + System.out.println("Привет! я могу помочь рассчитать ваши расходы"); + System.out.println("Для начала мне нужно знать сколько человек в компании."); + while(true){ + System.out.println("Введи сколько вас собралось: "); + if(!scanner.hasNextInt()){ + System.out.println("Попробуй ввести число"); + } + else { + countHuman = scanner.nextInt(); + if(countHuman<1){ + System.out.println("Попробуй пересчитать"); + } + else if (countHuman>1){ + System.out.println("Итак вас "+countHuman+" Далее тебе нужно ввести название товара и его стоимость\nКогда закончишь вводить товар напиши слово 'Завершить' и я посчитаю сколько необходимо заплатить каждому"); + new Calculator(countHuman); + break; + } + else { + System.out.println("Похоже, что твои друзья не смогли сегодня прийти. Придётся самому за всё платить\n Возможно ты забыл про кого-то попробуй пересчитать"); + } + } + } + + + } + public static void setHumans(){ + System.out.println(getHuman(countHuman)); + } + public static int getHuman(int countHuman){ + return countHuman; + } +} +class Calculator{ + static private int humans; + static List listProduct = new ArrayList(); + static Scanner scanner = new Scanner(System.in); + Calculator(int humans){ + this.humans = humans; + chooseProduct(); + + } + static void chooseProduct() { + String name = "start"; + while (!name.equalsIgnoreCase("Завершить")){ + System.out.println("Введи название товара: "); + name = new String(scanner.next()); + if(name.equalsIgnoreCase("Завершить")){ + break; + } + System.out.println("Введи цену на товар: "); + if(!scanner.hasNextDouble()){ + System.out.println("Попробуй ввести товар заного"); + } + else{ + double price = scanner.nextDouble(); + if (price>0){ + listProduct.add(new Product(name, price)); + System.out.println("Товар добавлен"); + } + else { + System.out.println("Попробуй ввести товар заного"); + } + } + } + scanner.close(); + System.out.println(calculate(humans)); + } + static double calculate(int humans){ + double sum = 0; + for(Product prices:listProduct){ + sum =sum + prices.getPrice(); + } + return sum/humans; + } + +} From c10749864206d5137e18fe4d95a8821f2f2a8a4d Mon Sep 17 00:00:00 2001 From: Ealyk Date: 2024年4月13日 11:12:08 +0300 Subject: [PATCH 2/3] that finished version --- src/main/java/Main.java | 64 ++++++++++++++++++++++++++++++----------- 1 file changed, 47 insertions(+), 17 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index d72fc8c42..d9ded8d28 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,5 +1,6 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.InputMismatchException; import java.util.Iterator; import java.util.List; import java.util.Scanner; @@ -34,11 +35,9 @@ static void console() { System.out.println("Для начала мне нужно знать сколько человек в компании."); while(true){ System.out.println("Введи сколько вас собралось: "); - if(!scanner.hasNextInt()){ - System.out.println("Попробуй ввести число"); - } - else { - countHuman = scanner.nextInt(); + String isCount = scanner.next(); + try { + countHuman = Integer.parseInt(isCount); if(countHuman<1){ System.out.println("Попробуй пересчитать"); } @@ -51,6 +50,9 @@ else if (countHuman>1){ System.out.println("Похоже, что твои друзья не смогли сегодня прийти. Придётся самому за всё платить\n Возможно ты забыл про кого-то попробуй пересчитать"); } } + catch (NumberFormatException ime){ + System.out.println("Попробуй ввести число"); + } } @@ -73,29 +75,41 @@ class Calculator{ } static void chooseProduct() { String name = "start"; + System.out.println("Если у цены товара есть дробная часть отдели её символом '.' Например: '1.45'"); while (!name.equalsIgnoreCase("Завершить")){ System.out.println("Введи название товара: "); name = new String(scanner.next()); if(name.equalsIgnoreCase("Завершить")){ break; } - System.out.println("Введи цену на товар: "); - if(!scanner.hasNextDouble()){ - System.out.println("Попробуй ввести товар заного"); - } - else{ - double price = scanner.nextDouble(); - if (price>0){ - listProduct.add(new Product(name, price)); - System.out.println("Товар добавлен"); + + while(true){ + System.out.println("Введи цену на товар: "); + String isPrice = scanner.next(); + try { + double price = Double.parseDouble(isPrice); + if (price> 0) { + listProduct.add(new Product(name, price)); + System.out.println("Товар добавлен"); + break; + } + else { + System.out.println("Кажется ты что-то перепутал. Цена не может быть отрицательной попробуй ввести её ещё раз"); + } } - else { - System.out.println("Попробуй ввести товар заного"); + catch (NumberFormatException ime){ + System.out.println("Попробуй ввести цену на товар заного, согласно требованиям"); } } } scanner.close(); - System.out.println(calculate(humans)); + String prod; + System.out.println("Добавленные товары: "); + for(Product product: listProduct){ + prod = product.getName()+" - "+String.format("%.2f", product.getPrice())+Formater.formater(product.getPrice()); + System.out.println(prod); + } + System.out.println("Итого с каждого по: "+ String.format("%.2f",calculate(humans))+Formater.formater(calculate(humans))); } static double calculate(int humans){ double sum = 0; @@ -105,4 +119,20 @@ static double calculate(int humans){ return sum/humans; } + } +class Formater{ + + static String formater(double price){ + int priceRound = (int) Math.floor(price); + if(priceRound%10==1 && priceRound/10!=1 || priceRound == 1){ + return " рубль"; + } + else if(priceRound%10>1 && priceRound%10<5 && priceRound/10!=1 || priceRound>1 && priceRound<5){ + return " рубля"; + } + else{ + return "рублей"; + } + } +} \ No newline at end of file From 4504df018759f613cd0880c64e1d8ee94874afda Mon Sep 17 00:00:00 2001 From: Ealyk Date: 2024年4月13日 11:27:52 +0300 Subject: [PATCH 3/3] that finished version of my Calculator --- src/main/java/Main.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index d9ded8d28..98c157cea 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -47,7 +47,8 @@ else if (countHuman>1){ break; } else { - System.out.println("Похоже, что твои друзья не смогли сегодня прийти. Придётся самому за всё платить\n Возможно ты забыл про кого-то попробуй пересчитать"); + System.out.println("Похоже, что твои друзья не смогли сегодня прийти. Придётся самому за всё платить"); + break; } } catch (NumberFormatException ime){ @@ -57,12 +58,7 @@ else if (countHuman>1){ } - public static void setHumans(){ - System.out.println(getHuman(countHuman)); - } - public static int getHuman(int countHuman){ - return countHuman; - } + } class Calculator{ static private int humans;

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