Skip to content

Pull request Ладика Олега по проектной работе №1#1

Open
OLEG-LADIK wants to merge 5 commits intomainfrom
dev
Open

Pull request Ладика Олега по проектной работе №1#1
OLEG-LADIK wants to merge 5 commits intomainfrom
dev

Conversation

@OLEG-LADIK
Copy link
Copy Markdown
Owner

  1. Использовал классы определения числа гостей (на которых делить счет), для расчета общей суммы чека и вывода списка по чеку, а также форматированного вывода расчета на одного гостя.

calc.calculation(total,numberOfGuests);
}
}
class Guests {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 Классы можно раскидать по отдельным файлам


int numberOfGuests() {
System.out.println("Введите кол-во гостей, на которых необходимо поделить счет");
int numberOfGuests = scan.nextInt();
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 scan = new Scanner(System.in);
boolean ifWantFinish = true;
String[] dish = new String[100];
int i =0;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 Лучше давать именования более осмысленные. Например, можно назвать step, т.е. "шаг"

dish[i] = scan.next();

System.out.println("Введите цену товара в формате рубли,копейки");
expense[i] = scan.nextDouble();
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠ Также нужно добавить проверку на ввод некорректных данных. Плюс к этому, надо учесть, что стоимость не может быть отрицательной

}
System.out.println("Добавленные товары:");
for (int l = 0; l < i; l++) {
System.out.println((l + 1) + ". " + dish[l] + " Цена " + expense[l] + " рублей");
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 Жестко задано слово "рублей", независимо от цены. Т.е. если цена будет 24, то получится 24.0 рублей
Это не критично конечно, можно просто удалить или подкорректировать сообщение, но все же)

Comment on lines +62 to +72
double checkPerGuest = total / numberOfGuests;
double roundingCheck = Math.floor(checkPerGuest);
double roundingCheck2 = roundingCheck - Math.floor(roundingCheck / 100) * 100;
double roundingCheck3 = roundingCheck - Math.floor(roundingCheck / 10) * 10;
if(roundingCheck3 ==1&&roundingCheck2 !=11) {
System.out.println(String.format("Каждый гость должен заплатить %.2f рубль", checkPerGuest));
} else if(roundingCheck3 >1&&roundingCheck3<5&roundingCheck2 !=12&roundingCheck2 !=13&roundingCheck2 !=14) {
System.out.println(String.format("Каждый гость должен заплатить %.2f рубля", checkPerGuest));
} else {
System.out.println(String.format("Каждый гость должен заплатить %.2f рублей", checkPerGuest));
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🍏 Расчет выполняется правильно 👍.
Можно было вместо if-then-else использовать switch. Также ты работаешь здесь с double - лучше приводить к типу int, как целочисленному типу

Comment on lines +10 to +11
if (number.hasNextInt()) {
break;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠ Была же у тебя изначально проверка, что введенное число не должно быть меньше 1. Лучше проверять так, чтобы было введено числовое значение и, хотя бы, не равное 0

Comment on lines +34 to +35
if (scan.hasNextDouble()) {
break;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠ Также лучше добавить проверку, что стоимость товара не может быть отрицательной - в прошлой итерации я об этом упомянул в PR. Если ввести -1, то программа продолжит работу и выведет в консоль добавленный товар с стоимостью -1.0 руб, что лучше поправить

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants