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
8 changes: 6 additions & 2 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@

import application.StartApp;

public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
StartApp startApp = new StartApp();
startApp.start();
}
}
}

25 changes: 25 additions & 0 deletions src/main/java/application/InputCountMembers.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package application;


public class InputCountMembers {
private ScannerWrapper scanner;
public InputCountMembers(ScannerWrapper scanner){
this.scanner=scanner;
}
public int countMembers() {
int countMembers;
while (true) {
System.out.println("Введите количество посетителей? (Число больше 1)");
if (scanner.scanner.hasNextInt()) {
countMembers = scanner.scanner.nextInt();
if (countMembers > 1) {
break;
}
}else {
scanner.scanner.next();
}
System.out.println("Введены некорректные данные, необходимо число больше 1");
}
return countMembers;
}
}
69 changes: 69 additions & 0 deletions src/main/java/application/InputProducts.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package application;

import java.util.Locale;
import java.util.Objects;

public class InputProducts {
private ScannerWrapper scanner;

public InputProducts(ScannerWrapper scanner) {
this.scanner = scanner;
}

public String inputProd(int countMembers) {
String products = "";
double totalCost = 0;
String endInput = "Завершить";
String currentInput;
while (true) {
System.out.println("Введите название товара или Завершить для завершения ввода");
currentInput = scanner.scanner.next();
if (Objects.equals(currentInput, endInput)) {
break;
} else {
products = products + currentInput;
while (true) {
System.out.println("Введите стоимость товара в формате рубли.копейки, например 11.22");
if (scanner.scanner.hasNextDouble()) {
String cost = scanner.scanner.next();
double costDouble = Double.parseDouble(cost);
String[] splitter = cost.split("\\.");
if (splitter[1].length() == 2 && costDouble > 0) {
totalCost = totalCost + costDouble;
products = products + " " + cost + "\n";
System.out.println("Товар успешно добавлен");
break;
}
} else {
scanner.scanner.next();
}
System.out.println("Введены некорректные данные");
}

}
}
String totalCostDouble = String.format(Locale.US, "%.2f", totalCost);
products = products + "Итого: " + totalCostDouble + "\n";
double membersCost = totalCost / countMembers;
String membersCostDouble = String.format(Locale.US, "%.2f", membersCost);
String[] splitterRub = membersCostDouble.split("\\.");
String membersCostRub = splitterRub[0];
String rub = VarRubCop(membersCostRub, "рубль", "рубля", "рублей");
String membersCostCop = splitterRub[1];
String cop = VarRubCop(membersCostCop, "копейка", "копейки", "копеек");
products = products + "Cумма, которую должен заплатить каждый человек: " + membersCostRub + " " + rub + " " + membersCostCop + " " + cop + ".";
return products;
}

public String VarRubCop(String checksum, String var1, String var2, String var3) {
if (checksum.length() >= 2 && checksum.charAt(checksum.length() - 2) == '1') {
return var3;
}
return switch (checksum.charAt(checksum.length() - 1)) {
case '1' -> var1;
case '2', '3', '4' -> var2;
default -> var3;
};

}
}
13 changes: 13 additions & 0 deletions src/main/java/application/ScannerWrapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package application;

import java.util.Locale;
import java.util.Scanner;

public class ScannerWrapper {
Scanner scanner;

public ScannerWrapper() {
this.scanner = new Scanner(System.in);
this.scanner.useLocale(Locale.US);
}
}
13 changes: 13 additions & 0 deletions src/main/java/application/StartApp.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package application;

public class StartApp {
public void start() {
ScannerWrapper scanner = new ScannerWrapper();
InputCountMembers inputCountMembers = new InputCountMembers(scanner);
int countMembers = inputCountMembers.countMembers();
System.out.println("количество посетителей: " + countMembers);
InputProducts inputProducts = new InputProducts(scanner);
String prod = inputProducts.inputProd(countMembers);
System.out.println("Добавленные товары: " + "\n" + prod);
}
}