Создайте два калькулятора: для подсчёта денег и калорий. Пользовательскую часть калькуляторов, их «лицо», писать не нужно, напишите только логику — отдельный класс для каждого из калькуляторов.
Калькулятор денег должен уметь:
-
Сохранять новую запись о расходах методом add_record()
-
Считать, сколько денег потрачено сегодня методом get_today_stats()
-
Определять, сколько ещё денег можно потратить сегодня в рублях, долларах или евро — метод get_today_cash_remained(currency)
-
Считать, сколько денег потрачено за последние 7 дней — метод get_week_stats()
Калькулятор калорий должен уметь:
-
Сохранять новую запись о приёме пищи— метод add_record()
-
Считать, сколько калорий уже съедено сегодня — метод get_today_stats()
-
Определять, сколько ещё калорий можно/нужно получить сегодня — метод get_calories_remained()
-
Считать, сколько калорий получено за последние 7 дней — метод get_week_stats()
У калькуляторов много пересекающихся функций: они должны уметь хранить какие-то записи (о еде или деньгах, но по сути - всё числа и даты), знать дневной лимит (сколько в день можно истратить денег или сколько калорий можно получить) и суммировать записи за конкретные даты. Всю эту общую функциональность заложите в родительский класс Calculator, а от него унаследуйте классы CaloriesCalculator и CashCalculator.
Конструктор класса Calculator должен принимать один аргумент — число limit (дневной лимит трат/калорий, который задал пользователь). В конструкторе создайте пустой список, в котором потом будут храниться записи (назовите его records).
Чтобы было удобнее создавать записи, создайте для них отдельный класс Record. В нём сохраните:
· число amount (денежная сумма или количество килокалорий),
· дату создания записи date (передаётся в явном виде в конструктор, либо присваивается значение по умолчанию — текущая дата),
· комментарий comment, поясняющий, на что потрачены деньги или откуда взялись калории.