Skip to content

Calculator#1

Open
ivanov-kir-m wants to merge 2 commits intomainfrom
calculator
Open

Calculator#1
ivanov-kir-m wants to merge 2 commits intomainfrom
calculator

Conversation

@ivanov-kir-m
Copy link
Copy Markdown
Owner

Сделан калькулятор для товаров.
Особенности:

  • Могут быть добавлены товары с одинаковым названием, но разной ценой - запоминаются все цены, каждое такое добавление считается самостоятельным

/**
* Exeption: Слишком мало людей
*/
private static class ToFewPeople extends Exception {}
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("На скольких человек необходимо разделить счёт?");
try{
peopleNum = scanner.nextInt();
if (peopleNum < 1) throw new ToFewPeople();
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, то нет смысла ради одного человека гонять программу - для одного и так будет ясно, сколько заплатить.
Можно выдать сообщение, например, что нет смысла делить счет на одного человека

Comment on lines +80 to +81
private void printProducts(){
System.out.println("Добавленные товары:");
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Грамотная и интересная реализация функции. Используется HashMap, что явно к месту. Молодец! 👍

Comment on lines +8 to +24
public static String getRubText(double sum){
int normalized_sum = (int) Math.floor(sum);
if (normalized_sum % 100 / 10 == 1)
{
return "рублей";
}
switch ((int) sum % 10)
{
case 1:
return "рубль";
case 2:
case 3:
case 4:
return "рубля";
default:
return "рублей";
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Работает корректно. Реализация простая и компактная 👍

И круто, что разделил код на отдельные классы, с своей зоной ответственности. На этот счет, если не знаком, есть такой подход в ООП, называется SOLID - это свод принципов. В данном случае у тебя соблюдается S-принцип)

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