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

public class Calc {
String listOfGoods ="";
double totalCoast = 0.00;

public void askItem() {
double itemCoast;
do {
Scanner sc = new Scanner(System.in);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

здесь у тебя кажется лишний сканер, можно его убрать

Scanner secSc = new Scanner(System.in);
System.out.println("Введите название товара");
String item = sc.nextLine();

System.out.println("Введите стоимость товара руб.коп, например 10,45");
if (sc.hasNextDouble()) {
double checkPositive = sc.nextDouble();

if (checkPositive >= 0) {
itemCoast = checkPositive;
} else {
System.out.println("Извините, но вы ввели отрицательное число, перезапустите программу");
break;
}
} else {
System.out.println("Извините, но вы ввели не число, перезапустите программу");
break;
}
System.out.println("Товар " + item + " успешно добавлен");

totalCoast += itemCoast;
String coastString = String.format("%.2f", itemCoast);
listOfGoods += item + " " + coastString + " руб.коп" + "\n";
System.out.println("Продолжить добавление товаров? Или введите команду \"Завершить\", чтобы прекратить ввод товаров");
String answer = secSc.nextLine();
if (answer.equalsIgnoreCase("Завершить")) {
break;
}
} while (true);
}

public void showTotalList() {
System.out.println(listOfGoods);
}

public void showTotal (int numOfPerson) {
double numPersons = (double) numOfPerson;
double total = totalCoast / numPersons;
double floorTotal = Math.floor(total);
String rub = "";
if (floorTotal % 100 >= 11.00 && floorTotal % 100 <= 14.00) {
rub = " рублей";
} else {
if (floorTotal % 10 == 1.00) {
rub = " рубль";
} else if (floorTotal % 10 >= 2.00 && floorTotal % 10 <= 4.00) {
rub = " рубля";
} else if (floorTotal == 0.00) {
rub = " рубль";
} else {
rub = " рублей";
}
}

System.out.println("Итого: " + String.format("%.2f", total) + rub);
}
}
32 changes: 32 additions & 0 deletions src/main/java/Counter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import java.util.Scanner;

public class Counter {
int persons;
boolean state = false;

public void askNumOfPersons() {
Scanner sc = new Scanner(System.in);

while(true) {
System.out.println("На сколько персон поделить счёт?");
if (sc.hasNextInt()) {
persons = sc.nextInt();
} else {
System.out.println("Извините, но вы ввели не число, перезапустите программу");
break;
}
if (persons == 1) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

эту проверку удобно будет реализовать через оператор switch

System.out.println("Нет смысла делить счёт.");
} else if (persons < 1) {
System.out.println("Количество персон меньше 1, это не корректное значение.");
} else if (persons > 1) {
state = true;
break;
}
}
}

public int getPersons() {
return persons;
}
}
10 changes: 9 additions & 1 deletion src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@

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

counter.askNumOfPersons();
if(counter.state) {
Calc calc = new Calc();
calc.askItem();
calc.showTotalList();
calc.showTotal(counter.getPersons());
}
}
}