Тест на вакансию 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, неоткрытый/незакрытый коннект к БД и т.п.