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
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ repositories {
}

dependencies {
implementation 'org.jetbrains:annotations:15.0'
}
48 changes: 48 additions & 0 deletions src/main/java/Calculate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import java.util.Scanner;

public class Calculate {
String fullNamePosition = " ";
float fullPricePosition = 0;


public String addingPosition () {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("\nВведите название позиции: ");
String namePosition = scanner.nextLine();

if ("Завершить".equalsIgnoreCase(namePosition)) {
return String.format("\nСписок товаров добавленных в корзину: %s", fullNamePosition);
} else {
addingPrice();
fullNamePosition = fullNamePosition + "\n" + namePosition;

System.out.println("\nТовар успешно добавлен в корзину! Добавьте еще одну позицию. " +
"\nЕсли это все, что вы хотели добавить в счет, то ниже напишите \"Завершить\"");
}
}
}
public float addingPrice() {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите цену позиции в формате - рубли.копейки, например 10.45 или 11.40");

while (true) {
if (scanner.hasNextFloat()) {
float pricePosition = scanner.nextFloat();
if (pricePosition > 0) {
fullPricePosition = pricePosition + fullPricePosition;
break;
}
else {
System.out.println("Не корректный ввод! Напишите цену позиции в формате - рубли.копейки, например 10.45.");
scanner.nextLine();
}
}
else {
System.out.println("Не корректный ввод! Напишите цену позиции в формате - рубли.копейки, например 10.45.");
scanner.nextLine();
}
}
return fullPricePosition;
}
}
47 changes: 44 additions & 3 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,49 @@
import java.util.Scanner;

public class Main {

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

Calculate calc = new Calculate();
System.out.println(calc.addingPosition());

float bilPerPerson = calc.fullPricePosition / (float) numberPeople;
System.out.printf("\nКаждый человек должен заплатить: %.2f " + conversationCase(calc.fullPricePosition, numberPeople), bilPerPerson);
}

public static String conversationCase(float pricePosition, int numberPeople) { // в методе реализована логика подстановки окончания слова "рубль"
float splitAccount = pricePosition / numberPeople;
int lastRank = (int) (splitAccount % 10);
String cases = " ";
if (lastRank == 1) {
cases = "рубль";
} else if (lastRank >= 2 && lastRank <= 4) {
cases = "рубля";
} else if (lastRank >= 5 && lastRank <= 9) {
cases = "рублей";
} else {
cases = "рублей";
}
return cases;
}
public static int guestInputCheck() { // в этом методе производится проверка не валидный ввод пользователем
Scanner scanner = new Scanner(System.in);
int numberPeople;
while (true) {
if (scanner.hasNextInt()) {
numberPeople = Integer.parseInt(scanner.nextLine());
if (numberPeople <= 1) {
System.out.println("Ошибка! Значение не корректно для подсчета. Попробуйте снова! \nНа сколько человек нужно разделить счет?");
} else {
break;
}
} else {
System.out.println("Не корректный ввод! Напишите количество человек цифрами.");
scanner.nextLine();
}
}
return numberPeople;
}
}