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
40 changes: 40 additions & 0 deletions src/main/java/Calculator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import java.util.Scanner;

public class Calculator {

public void product(int numberOfPersons) { // Метод для добавления товара и цены
double sum = 0;
double productPrice;
String productName;
StringBuilder productsList = new StringBuilder("Список товаров :");
Scanner scanner = new Scanner(System.in);

while (true) {
System.out.println("Чтобы завершить добавление товаров на пишите Завершить\nВведите название товара :");
productName = scanner.next();
if (productName.equalsIgnoreCase("Завершить")) { // Для того, что бы завершить добавление товаров необходимо написать "Завершить"
break;
}
System.out.println("Введите стоимость товара :");
if (!scanner.hasNextDouble()) {
System.out.println("Необходимо ввести стоимость товара");
scanner.next();
} else {
productPrice = scanner.nextDouble();
if (productPrice < 0) {
System.out.println("Введите положительное число");
} else {
productsList.append("\n").append(productName).append(" стоимостью ").append(productPrice).append("р");
System.out.println(productsList);
sum += productPrice;
System.out.println("Товар успешно добавлен");
}
}
}

System.out.println("Общая сумма товаров = " + sum);
sum /= numberOfPersons;
Formatter formatter = new Formatter();
formatter.reform(sum); // Вызываем метод, который склоняет падеж
}
}
25 changes: 25 additions & 0 deletions src/main/java/Formatter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
public class Formatter {
public void reform(double sum) { // Метод для склонения падежа

String caseOfRub = "";
double rem10 = sum % 10;
double rem100 = sum % 100;
int x = 0;

if (Double.compare(rem100, 10) > x && Double.compare(rem100, 19) < x) {
caseOfRub = "рублей";
} else if (Double.compare(rem10, 2) >= x && Double.compare(rem10, 5) < x) {
caseOfRub = "рубля";
} else if (Double.compare(rem10, 1) == x) {
caseOfRub = "рубль";
} else {
caseOfRub = "рублей";
}
result(sum, caseOfRub);
}

public void result(double sum, String caseOfRub) { // Метод для вывода расчета
String result = String.format("%.2f", sum);
System.out.println("Сумма с каждого человека = " + result + " " + caseOfRub);
}
}
28 changes: 24 additions & 4 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
import java.util.Scanner;

// dev branch for Y.Practicum
public class Main {

public static void main(String[] args) {
// ваш код начнется здесь
// вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости
System.out.println("Привет Мир");
Scanner scanner = new Scanner(System.in);
System.out.println("На скольких человек необходимо разделить счет?");
int numberOfPersons = 0;
while (true) { // Цикл для ввода кол-ва человек и вызов метода для расчета суммы на человека
if (!scanner.hasNextInt()) {
System.out.println("Необходимо ввести количество людей");
scanner.next();
} else {
numberOfPersons = scanner.nextInt();
if (numberOfPersons == 1) {
System.out.println("Ты платишь за все. Попробуй ещё раз:");
} else if (numberOfPersons <= 0) {
System.out.println("Число должно быть положительным. Введите, пожалуйста, заново:");
} else {
Calculator calculator = new Calculator();
calculator.product(numberOfPersons);
break;
}
}
}
}
}
}