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

public class Calculator {
public static float calculate() {
Scanner console = new Scanner(System.in);
float sum=0.00f;

System.out.println("Введите товар");
String product = console.nextLine();
float price = priceChecking();
sum=sum+price;
String cheque = String.format("*********************************************\nДобавленные товары:\n" + product + " %.2f", price) + " " + FormOfCurrency.defineTheForm((int)Math.floor(price));
System.out.println("Товар успешно добавлен. Завершить? (Введите Завершить либо любой другой символ для продолжения)");

while(true) {
if (console.next().equalsIgnoreCase("Завершить")) {
System.out.println(cheque);
break;
}
else {
System.out.println("Введите товар");
console.nextLine();
product = console.nextLine();
price = priceChecking();
sum=sum+price;
cheque = String.format(cheque + "\n" + product + " %.2f", price) + " " + FormOfCurrency.defineTheForm((int)Math.floor(price));
System.out.println("Товар успешно добавлен. Завершить? (Введите Завершить либо любой другой символ для продолжения)");
}
}
return sum;
}

public static float priceChecking () {
System.out.println("Введите цену товара в формате 00,00 (рубли,копейки)");
float price;
Scanner console = new Scanner(System.in);

while (!(console.hasNextFloat())) {
System.out.println("Требуется именно число в формате 00,00 (рубли,копейки) или 00 (рубли)");
console.next();
}
price=console.nextFloat();

while (!(price > 0)) {
System.out.println("Стоимость товара должна быть больше нуля");
price=console.nextFloat();
}

return price;
}
}
18 changes: 18 additions & 0 deletions src/main/java/FormOfCurrency.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import java.util.*;

public class FormOfCurrency {
public static String defineTheForm(int count) {
String form;
if (count%100>4 && count%100<21) {
form = "рублей";
}
else if (count%10==1) {
form = "рубль";
}
else if (count%10>1 && count%10<5) {
form = "рубля";
}
else form = "рублей";
return form;
}
}
20 changes: 16 additions & 4 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
import java.util.*;
public class Main {

public static void main(String[] args) {
// ваш код начнется здесь
// вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости
System.out.println("Привет Мир");

System.out.println("Привет! Это программа Калькулятор счёта");
int guestCount = Request.askGuestCount(); // Метод запроса и проверки корректности количества гостей
System.out.println("Итак, количество гостей - " + guestCount+ " чел.");

float sum = Calculator.calculate(); // Сбор позиций и цен чека, возврат суммы
String newline = "*********************************************";

System.out.println(newline);
System.out.println(String.format("Общая сумма товаров - " + "%.2f", sum)+" " +FormOfCurrency.defineTheForm((int)Math.floor(sum)));
System.out.println(String.format("Сумма покупок на одного человека - " + "%.2f", (sum/guestCount))+ " " +FormOfCurrency.defineTheForm((int)Math.floor(sum/guestCount)));
System.out.println(newline);
}
}


}
27 changes: 27 additions & 0 deletions src/main/java/Request.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import java.util.*;

public class Request {
public static int askGuestCount() {
System.out.println("Введите число гостей: ");
int count;
Scanner console = new Scanner(System.in);
while (true) {
if (!console.hasNextInt()) { // Проверем, что это целое число
System.out.println("Должно быть введено именно ЧИСЛО. Попробуем еще раз? )");
console.next();

} else {
count = console.nextInt();
if (count < 1)
System.out.println("Количество гостей должно быть больше 1 человека. Попробуем еще раз? )");
else {
if (count == 1) {
System.out.println("Количество гостей должно быть больше 1 человека. Попробуем еще раз? )");
} else
break;
}
}
}
return count;
}
}