Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions src/main/java/Calculater.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import java.util.Scanner;

public class Calculater {
public static float calcPrice(float totalPrice) {
Scanner scanner = new Scanner(System.in);
boolean checkPrice = true;
System.out.print("Введите цену товара: ");
float price = 0;
//цикл для проверки правильности ввода цены
while (checkPrice) {
if (scanner.hasNextFloat()) {
price = scanner.nextFloat();
if (price >= 0) {
checkPrice = false;
} else {
System.out.print("Пожалуйста, введите положительное число: ");
}
} else {
System.out.print("Пожалуйста, введите положительное число: ");
scanner.next();
}
}
totalPrice += price;
return totalPrice;
}

public static String calcName(String totalName) {
Scanner scanner = new Scanner(System.in);
System.out.print("Введите имя товара: ");
String nameProduct = scanner.nextLine();
totalName += nameProduct + " ";
return totalName;
}

public static float countProduct() {
Scanner scanner = new Scanner(System.in);
float totalPrice = 0;
String totalName = "";
//Переменная для цикла
boolean whileCheck = true;
//Текстовые переменные для проверки ответа пользователя
String answer;
String answerTrue = "Завершить";
//Цикл который заполнит список всех товаров и суммирует их цену.
while (whileCheck) {
totalName = calcName(totalName);
totalPrice = calcPrice(totalPrice);
System.out.println("Желайте Завершить? ");
answer = scanner.nextLine();
//Проверка ответа на ригистр
if (answer.equalsIgnoreCase(answerTrue)) {
whileCheck = false;
} else {
whileCheck = true;
}
}
//Вывод списка продуктов
System.out.println("Список продуктов: " + totalName);
//Вывод общей цены
System.out.printf("Цена за все продукты: " + "%.2f %s \n", totalPrice, determiningEnd(totalPrice));

return totalPrice;
}

public static String determiningEnd(float totalPrices) {
float namberLast = totalPrices % 10;
String rub;
//Условие для вывода правильного окончания у цены
if (namberLast == 1) {
rub = "рубль";
} else if (namberLast >= 2 && namberLast <= 4) {
rub = "рубля";
} else {
rub = "рублей";
}
return rub;
}
}
41 changes: 40 additions & 1 deletion src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,45 @@
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
float priceAllPeople;
int human = 0;
boolean limitTime = true;
//Вызовим функцию для коректного ввода данных пользователю
human = checkHuman(human);
//Цикл для проверки на количество людей
while (limitTime) {
if (human > 1) {
limitTime = false;
//Вызываем функцию из класса калькулятор которая считает товары и вернёт их общую цену
// Общую цену мы делим на количество людей и получаем цену для каждого человека
priceAllPeople = Calculater.countProduct() / human;
System.out.printf("Разделённый счёт: " + "%.2f %s \n", priceAllPeople, Calculater.determiningEnd(priceAllPeople));
} else if (human == 1) {
System.out.println("Вам не нужен калькулятор ;)");
break;
} else if (human < 1) {
System.out.println("Пожалуйста, введите положительное число (больше нуля)");
//Вызовим функцию для коректного ввода данных пользователю
human = checkHuman(human);
}
}
}

public static int checkHuman (int humanTime){
Scanner scanner = new Scanner(System.in);
boolean checkWord = true;
System.out.print("Введите количество людей: ");
//Цикл для проверки ввода пользователя
while (checkWord) {
if (scanner.hasNextInt()) {
checkWord = false;
humanTime = scanner.nextInt();
} else {
System.out.println("Пожалуйста, введите положительное число (больше нуля)");;
scanner.next();
}
}
return humanTime;
}
}