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
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/codeStyles/codeStyleConfig.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ dependencyResolutionManagement {
mavenCentral()
}
}
rootProject.name = "BillCalculator"
rootProject.name = "Java-Module-Project"
64 changes: 64 additions & 0 deletions src/main/java/Calc.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import java.util.Locale;
import java.util.Scanner;
public class Calc {

public static void Calculator() {
Scanner scanner = new Scanner(System.in);
String result = "";
double count = 0;
boolean cont = true;
//создаем бесконечный цикл вызова товара
while (cont) {
System.out.println("Введите название товара");
String res = scanner.next();
// устанавливаем слово для остановки цикла
if (res.toUpperCase(Locale.ROOT).equals("ЗАВЕРШИТЬ")) {
cont = false;
} else {
result += res + "\n";
System.out.println("Введите стоимость в формате: \'рубли.копейки' ");
String temp = scanner.next();
// проверка на то чтобы пользователь вводил только int стоимость
if (!checkPrice(temp)) {
System.out.println("Некорректные данные");
} else {
System.out.println("Товар " + res + " успешно добавлен");
count += Double.parseDouble(temp);
}
}
}
//Вывод будет одинаковый вне зависимости от того, какие данные укажет пользователь

double bill = count / Users.users;

String resultMessage = ("Общая стоимость: %.2f RUB");
System.out.println(String.format(resultMessage, count));

System.out.println("Сумма на одного человека: " + String.format("%.2f", bill) + " " + rubles(bill));
}
//реализация проверки
public static boolean checkPrice(String next) {
boolean isDigit = true;
for (int i = 0; i < next.length(); i++) {
if (!Character.isDigit(next.charAt(i)) && next.charAt(i) != '.') {
isDigit = false;
break;
}
}
return isDigit;

}
public static String rubles(double a) {
int rub = (int) Math.floor(a);
if (rub % 100 > 5 && rub <= 20) {
return "рублей";
} else if (rub % 10 == 1) {
return "рубль";
} else if (rub % 10 > 1 && rub % 10 < 5) {
return "рубля";
}
return "рублей";
}

}

22 changes: 0 additions & 22 deletions src/main/java/Calculator.java

This file was deleted.

17 changes: 0 additions & 17 deletions src/main/java/Formatter.java

This file was deleted.

10 changes: 0 additions & 10 deletions src/main/java/Item.java

This file was deleted.

50 changes: 5 additions & 45 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,49 +1,9 @@
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

int friendCount;
while (true) {
System.out.println("На сколько человек необходимо разделить счет?");
friendCount = scanner.nextInt();

if (friendCount > 1) {
break;
} else if (friendCount == 1) {
System.out.println(
"Нет смысла делить сумму на одного человека. Давайте попробуем ввести другое значение, которое будет больше единицы.");
} else {
System.out.println("Неверное количество друзей. Значение должно быть болье единицы, давайте попробуем еще раз.");
}
}

Calculator calculator = new Calculator(friendCount);

while (true) {
System.out.println("Введите название товара");
String name = scanner.next();

System.out.println("Введите стоимость товара в формате: 'рубли.копейки' [10.45, 11.40]");
double price = scanner.nextDouble();

calculator.addItem(new Item(name, price));

System.out.println(
"Хотите добавить еще один товар? Введите любой символ для продолжения, либо 'Завершить' если больше нет товаров для добавления");
String answer = scanner.next();

if (answer.equalsIgnoreCase("Завершить")) {
break;
}
}

double result = calculator.divideSum();
Formatter formatter = new Formatter();

System.out.println(calculator.cart);
System.out.println("Каждому человеку к оплате: " + formatter.roundResult(result) + " " + formatter.formatValue(result));
//main используем только для обращения к методам
Users.persons();
Calc.Calculator();
System.out.println("Спасибо за пользование нашим приложением!");
}
}
}
30 changes: 30 additions & 0 deletions src/main/java/Users.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import java.util.Scanner;

public class Users {
public static int users;

public static void persons() {
Scanner scanner = new Scanner(System.in);
//вводим бесконечный цикл, чтобы пользователь мог ввести правильное значение

while (true) {
System.out.println("Выберите количество человек");

if (scanner.hasNextInt()) {
users = scanner.nextInt();
if (users>1) {
System.out.println("Колличество пользователей = " + users);
break;
}
if(users<=1){
System.out.println("Введите корректные данные. Значение должно быть больше 1");
}
} else {
System.out.println("Введите корректные данные");
scanner.nextLine();
}
}

}

}