Java 11 (Core)
В этом проекте отрабатывалось практическое применение:
- условных операторов
- циклов
- массивов
- классов и методов
- Консольный интерфейс для управления программой
- Ввод и хранение данных о количестве пройденных шагов за несколько месяцев;
- Ввод и хранение цели по количеству шагов в день;
- Ввод пройденного количества шагов за день;
- Вывод статистики за определённый месяц:
- Количество пройденных шагов по дням:
- Общее количество шагов за месяц;
- Максимальное дневное количество пройденных шагов в месяце;
- Среднее количество шагов за месяц;
- Общая пройденная дистанция за месяц (в км);
- Количество сожжённых килокалорий за месяц;
- Лучшая серия: максимальное количество подряд идущих дней, в течение которых количество шагов за день было равно или выше целевого.
- Завершение работы приложения по выбору пользователя.
Сохранение количества шагов за день
Пользователь должен указать номер месяца, номер дня и количество шагов, пройденных в этот день. Вводимые значения должны быть неотрицательными. Учтено количество дней в месяце и является ли год високосным. Если за какой-то день статистика не сохранялась, то считаем количество шагов в этот день равным 0.
Подсчёт и вывод статистики за указанный пользователем месяц
Данные статистики:
- Количество пройденных шагов по дням в следующем формате: 1 день: 3000, 2 день: 2000...
- Общее количество шагов за месяц;
- Максимальное пройденное количество шагов в месяце;
- Среднее количество шагов;
- Пройденная дистанция (в км);
- Количество сожжённых килокалорий;
- Лучшая серия: максимальное количество подряд идущих дней, в течение которых количество шагов за день было равно или выше целевого.
Изменение целевого количества шагов
Данные вводятся пользователем. Допускается только целое положительное значение.
Реализован основной цикл приложения: считывание и обработка пользовательских команд и вызов соответствующих методов класса StepTracker.
Пользователь взаимодействует с приложением через консольный интерфейс, который позволяет произвести одно из действий по выбору:
- Ввести количество шагов за определённый день;
- Напечатать статистику за определённый месяц;
- Изменить цель по количеству шагов в день;
- Выйти из приложения.
После выбора и исполнения действия, приложение позволяет пользователю ввести следующее действие. Приложение завершается только при вводе пользователем команды выхода. При вводе несуществующей команды выводится сообщение о том, что такой команды нет, после чего приложение возвращается в основное меню и позволяет снова выбрать действие.
Это класс с основной логикой приложения — в нём хранится информация о пройденных шагах, реализована логика по сохранению и изменению количества шагов, а так же рассчитывается статистика. В памяти приложения хранится следующая информация:
- Данные о шагах, пройденных в каждый день любого из 12 месяцев. В году 12 месяцев.
- Целевое количество шагов при старте приложения устанавливается равным 10 000 в день.
Это класс, где происходит основная валидация. Пользователь вводит команду и при неуспешном или ошибочном вводе, высвечивается сообщение об ошибке
В этом классе осуществляется преобразование шагов в километры и калории.
- Для подсчёта дистанции считаем, что один шаг равен 75 см.
- Для подсчёта количества сожжённых килокалорий считаем, что 1 шаг = 50 калорий, 1 кк = 1 000 калорий.