Возможно, вы приехали сюда на автобусе, которые регулярно ходит от метро до бизнес-центра и обратно. Периодичность рейсов разная в разное время дня - утром в самое активное время автобус ходит каждые 8 минут, днем каждые 20 минут, вечером в активное время опять каждые 8 минут, а совсем поздно каждые 40 минут. В других бизнес центрах, у которых есть своя развозка, частота автобусов и промежутки могут отличаться.
Ваша задача - написать программу, которая позволяет редактировать и отображать расписание автобусов, задаваемое промежутками времени и частотой рейсов в этих промежутках.
В полной версии задания должны отдельно редактироваться расписания "От метро до бизнес-цента" и "От бизнес-центра до метро". В неполной версии задания можно сделать только одно расписание.
Программа должны состоять из следующих частей:
- Список промежутков. Для каждого элемента списка отображаются время начала и конца промежутка и частота рейсов. На этом окне должна присутствовать кнопка для добавления нового промежутка. В контекстном меню должна быть опция удаления промежутка.
- Окно добавления промежутка. Для каждого промежутка должны задаваться следующие параметры: время начала, время конца, частота рейсов в этом промежутке. В полном версии задания задаются отдельные несвязанные друг с другом промежутки от метро до бизнес-цента и обратно, и у каждого промежутка должна быть дополнительная опция, соответствует он расписанию "От метро" или "От бизнес-центра".
- Окно с расписанием. В этом окне показываться список всех рейсов, упорядоченных по времени. Для каждого рейса показывается время отхода. В полной версии задания в заголовке списка должен быть переключатель между расписанием от метро до бизнес-центра и расписанием от бизнес-центра до метро. В полной версии задания должны отдельно задаваться промежутки метро->бц и бц->метро.
Обратите внимание:
- Список промежутков должен храниться в базе данных
- Вы можете считать, что в программу не будут вводиться пересекающиеся промежутки
- Первый рейс в каждый промежуток времени отходит в первую минуту промежутка
Система оценок:
- Программа, показывающая список промежутков с возможностью добавлять и удалять промежутки. Данные хранятся в базе данных: 5 баллов (обязательный минимум)
- Окно с расписанием: +5 баллов
- Окно редактирования промежутков (из контекстного меню): +5 баллов
- Два расписания "От метро" и "От бизнес цента", как следствие в окне расписания в заголовке должен быть переключатель, в списке промежутков должна указываться эта опция а в окне добавления и редактирования промежутков должна быть возможность задавать эту опция (От метро или от бизнес-центра) для промежутка: +5 баллов
Дополнительные баллы могут быть поставлены за хороший код и красивый дизайн.
Итоговая оценка может быть снижена за плохой код/дизайн (например, список, элементы которого не кликаются по всей ширине и многострочный EditText).
Суммарный балл может быть снижен за плохой код, так то русский в коде/комментариях, незакрытые ресурсы, строчки в коде вместо strings.xml, wrap_content для ListView итд, равно как и плохой кастомный дизайн.
Ничего из указанного выше не отменяет здравый смысл.
Задание необходимо сдавать в виде пулл-реквеста (код+apk) к https://github.com/IFMO-MobDev-2013/extraexam1 до 17:40 31.01.14.