Тест на вакансию Java-разработчик Комментарии к заданиям: В

advertisement
Тест на вакансию Java-разработчик
Комментарии к заданиям:
В качестве языка программирования использовать Java 1.6, в качестве базы данных - Red
Database. В качестве среды разработки рекомендуется использовать IntellijIdea.
Утилита для работы с БД - IB Expert.
Все вышеизложенное можно легко скачать бесплатно.
Тестовое задание первого уровня.
Бизнес-модель:
Есть областной центр, в районы которого ездят автобусы. Автобусы принадлежат районным
автоколоннам. Но автобус может ездить как в свой район, так и в другие, напр. Талдом-МоскваДмитров-Москва-Талдом. Среднюю скорость на маршруте для автобуса берем 50 км/ч (с учетом
пробок, остановок и т.д.) Требуется создать некое расписание автобусов.
В системе будут следующие таблицы:
1. Справочник конечных пунктов маршрутов: код (натуральный первичный ключ), название,
расстояние от областного центра (км). Для самого областного центра расстояние равно
нулю.
2. Справочник автобусов (НЕ МАРШРУТОВ): гос. номер (натуральный первичный ключ),
ссылка на райцентр приписки, марка автобуса (varchar)
3. Справочник рейсов автобусов: номер маршрута, номер рейса в течение
дня (напр. по маршруту №3 есть рейсы в 7.00, 10.30, 12.00, 15.30, соотв. для рейса в 7.00
это будет 1, затем 2 и т.д.), ссылка на автостанции отправления и прибытия, время
отправления и время прибытия. Первичный ключ - составной: номер маршрута + номер
рейса в течение дня
4. Привязка автобусов к рейсам: сурргатный первичный ключ, ссылка на
автобус, ссылка на рейс.
При необходимости можно создать дополнительные служебные таблицы и поля.
Для упрощения полагаем, что все рейсы начинаются и заканчиваются в течение календарных
суток.
Справочники 1 - 3 должны импортироваться из CSV-файла, причем при заполнении справочника 3
должна быть проверка на то, чтобы скорость не превышалась (меньше - допустимо, но не менее
20 км/ч).
Для привязки автобуса к рейсам нужно сделать форму с выбором из списка автобуса и рейса. Эту
форму можно реализовать как с использованием SWING, так и сделать web-приложение.
Необходимо учесть следующие ограничения:
 время оборота на конце маршрута – не менее часа
 в "чужом" конечном пункте автобус не может взяться "ниоткуда"
При невыполнении выдавать соотв. сообщение об ошибке.
Тестовое задание второго уровня
Бизнес-модель: есть однопутная железнодорожная линия, т.е. по одному пути поезда идут в обе
стороны. Встречные поезда разъезжаются на разъездах или станциях, на них же попутные поезда
могут обгонять друг друга, причем обгоняемый поезд должен иметь остановку. Необходимо
создать расписание поездов. Нумерация поездов в одну сторону - четная, в другую - нечетная.
Для упрощения делаем один единственный маршрут.
В системе предлагается создать следующие таблицы:
1. Справочник станций. Поля: название (натуральный ПК), расстояние (напр. от Москвы). Не
должно быть станций с одинаковым расстоянием от начала.
2. Справочник поездов. Поля: номер (натуральный ПК), сообщение (ссылки на станции
отправления и прибытия).
3. Таблица
"Расписание
поездов".
Поля:
ссылка
на
поезд,
ссылка
на станцию, время прибытия, стоянка и отправление. Если поезд не имеет остановки на
станции - время прибытия равно времени отправления, стоянка = 0. Первичный ключ натуральтный, составной: ссылка на станцию + ссылка на поезд.
При необходимости можно создать дополнительные служебные таблицы и поля.
Справочники 1 и 2 должны импортироваться из файла CSV.
Расписание должно вводиться через экранную форму (как и выше - ее можно реализовать на
swing или сделать web-приложение).
В форме должны быть выбраны из списка номер поезда и станция и указаны время прибытия и
отправления. Для начальных и конечных станций время прибытия и отправления соотв. NULL.
Ввод станций для одного поезда - строго последовательный (напр. Мск, Тимирязевская,
Лианозово, Долгопрудная, Лобня, Икша, Дмитров...; Дубна, БВ, Темпы, Соревнование,
Вербилки...).
Ограничения ввода:
1. Поезда могут разъезжаться и обгонять друг друга только на станции, причем при обгоне
обгоняемый
поезд
должен
иметь
на
ней
остановку.
Т.е. должна быть невозможна ситуация, когда п. №2 отправляется с
Большой Волги в 10.00 и прибывает в Дубну в 10.10,
а поезд №1
отправляется из Дубны в 10.05 и прибывает на Большую Волгу в 10.15
2. Скорость движения ПО ПЕРЕГОНУ не может быть более 80 км/ч (меньше допустимо), т.е. при попытке задать строки расписания напр. Дмитров
11.00 2 11.02 Вербилки 11.05 1 11.07 должно быть сообщение об ошибке.
3. При остановке на разгон и торможение в сумме закладывается 2 мин.
При
невозможности
ввода
данных
ключа
или
требований
п.4.*)
система
сообщение.
(нарушение
уникальности
первичного
должна
выдавать
ПОЛЬЗОВАТЕЛЬСКОЕ
Предостерегаем от наиболее распространенных ошибок, таких как SQL Injection, неоткрытый/незакрытый коннект к БД и т.п.
Download