Автор работы: Пользователь скрыл имя, 17 Июня 2013 в 06:49, курсовая работа
Каждый водитель характеризуется паспортными данными, классом, стажем работы и окладом, причем оклад зависит от класса и стажа работы. Маршрут автобуса характеризуется номером маршрута, названием начального и конечного пункта движения, временем начала и конца движения, интервалом движения и протяженностью в минутах (время движения от кольца до кольца). Характеристиками автобуса являются: номер государственной регистрации автобуса, его тип и вместимость, причем вместимость автобуса зависит от его типа. Каждый водитель закреплен за отдельным автобусом и работает на определенном маршруте, но в случае поломки своего автобуса или болезни другого водителя может пересесть на другую машину. В базе должен храниться график работы водителей. Необходимо предусмотреть возможность корректировки БД в случаях поступления на работу нового водителя, списания старого автобуса, введения нового маршрута или изменения старого и т.п.
Связь по ключу Pasp с таблицей “Водители” предусматривает обеспечение ссылочной целостности.
Связь по ключу avtob с таблицей “Автобусы” предусматривает обеспечение ссылочной целостности.
Связь по ключу marshr с таблицей “Маршруты” предусматривает обеспечение ссылочной целостности.
4. Содержание таблиц
Приведено содержание таблиц на момент отладки базы.
Паспорт |
Фамилия И.О. |
стаж |
класс |
оклад |
Дата рождения |
Адрес |
3000 034582 |
Иванов А.В. |
5 |
B |
15000 |
09.04.1979 |
пр. Богатырский дом 100 кв20 |
3000 121034 |
Белов А.С. |
7 |
B |
17000 |
09.04.1983 |
ул. Дыбенко дом 12 кв 12 |
3000 123034 |
Иванов И.И. |
9 |
A |
29000 |
10.02.1970 |
ул. Камышовая дом 35 к 1 кв 292 |
3000 452114 |
Белов С.А. |
10 |
A |
30000 |
29.10.1985 |
пр. Авиаконструкторов дом 15 кв 4 |
3000 542421 |
Старов П.В. |
7 |
B |
17000 |
08.09.1985 |
пр. Богатырский дом 55 к 3 кв 103 |
3000 762234 |
Еремеев О.П. |
5 |
C |
10000 |
30.11.1980 |
ул. Ильюшина дом 22 кв 3 |
3000 906823 |
Титов П.М. |
10 |
B |
20000 |
17.04.1984 |
пр. Испытателей дом 11 кв 45 |
3021 123345 |
Галич Н.О. |
10 |
B |
20000 |
08.08.1983 |
пр. Богатырский дом 67 к 2 кв 333 |
3021 134553 |
Жданов М.Ю. |
10 |
B |
20000 |
09.01.1983 |
ул. Камышовая дом 22 кв 107 |
3021 234945 |
Петров О.Н. |
7 |
B |
17000 |
05.12.1980 |
пр. Авиаконструкторов дом 212 кв 561 |
3021 343421 |
Нестеров П.М. |
4 |
B |
14000 |
15.11.1985 |
пр. Богатырский дом 232 кв 12 |
3021 347520 |
Белов И.С. |
10 |
B |
20000 |
19.11.1985 |
пр. Испытателей дом 5 кв 23 |
3021 438954 |
Егоров Л.Д. |
4 |
B |
14000 |
01.01.1973 |
ул. Гакелевская дом 55 кв 6 |
3021 452213 |
Иванов С.Г. |
4 |
B |
14000 |
05.01.1983 |
пр. Маршала-Новикова 23 |
3021 485621 |
Кузнецов Н.А. |
8 |
C |
13000 |
17.09.1973 |
пр. Сизова дом 44 кв 12 |
3021 509210 |
Кузнецов В.Н. |
10 |
A |
30000 |
30.03.1975 |
пр. Мориса-Тереза дом 115 кв 69 |
4000 421131 |
Петров А.И. |
5 |
C |
10000 |
23.09.1981 |
пр. Сизова дом 59 кв 111 |
4000 455202 |
Зайцев О.С. |
10 |
B |
20000 |
05.03.1981 |
ул. Долгоозерная дом 1 кв 1 |
4000 455220 |
Бабушкин Р.Ю. |
10 |
A |
30000 |
05.03.1978 |
ул. Яхтенная дом 15 кв 2 |
4000 509123 |
Нагорный Д.И. |
7 |
B |
17000 |
09.12.1982 |
ул. Камышовая дом 11 кв 501 |
4000 576933 |
Сидоров С.А. |
3 |
C |
8000 |
06.07.1981 |
ул. Байконурская дом 43 кв 3 |
4000 673921 |
Швондер А.С. |
9 |
A |
29000 |
09.12.1979 |
пр. Яхтенная дом 15 кв 77 |
4000 678423 |
Быков П.А. |
10 |
B |
20000 |
06.09.1982 |
ул. Гакелевская дом 76 кв 55 |
4000 789842 |
Сидоров С.Л. |
4 |
B |
14000 |
09.12.1980 |
ул. Камышовая дом 104 кв 5 |
Таблица “Водители”
Таблица “Автобусы”
Номер автобуса |
Тип |
а004вп |
Лиаз 05гв |
а007пп |
Экарус (гармошка) |
а070пр |
Экарус 95гв |
в007рп |
Экарус (гармошка) |
в909ао |
Лиаз 90гв |
н006оо |
Лиаз 90гв |
о009пр |
Лиаз (гармошка) |
п004пп |
Лиаз 05гв |
п009оо |
Лиаз (гармошка) |
р005рр |
Лиаз (гармошка) |
р007аа |
Экарус (гармошка) |
с050ар |
Лиаз 05гв |
Таблица “Маршруты”
Номер |
Начальный пункт |
Конечный пункт |
Начало движения |
Окончание движения |
Интервал |
Протяженность |
1 |
м. Старая деревня |
ул. Камышовая |
00.01.1900 |
00.01.1900 |
15 |
110 |
2 |
пр. Сизова |
м. Пионерская |
00.01.1900 |
00.01.1900 |
25 |
180 |
3 |
м. Плошадь мужества |
м. Пионерская |
00.01.1900 |
00.01.1900 |
15 |
100 |
4 |
пр. Испытателей |
ул. Камышовая |
00.01.1900 |
00.01.1900 |
20 |
60 |
5 |
пр. Авиаконструкторов |
Ланское шоссе |
00.01.1900 |
00.01.1900 |
20 |
120 |
Таблица “Водят”
Номер паспорта |
Номер автобуса |
маршрут |
дата |
3021 234945 |
а007пп |
1 |
23.05.2006 |
4000 576933 |
в007рп |
1 |
22.05.2006 |
3021 438954 |
в007рп |
1 |
23.05.2006 |
3000 034582 |
н006оо |
2 |
22.05.2006 |
4000 455202 |
н006оо |
2 |
23.05.2006 |
4000 455220 |
а004вп |
2 |
22.05.2006 |
3021 509210 |
а004вп |
2 |
23.05.2006 |
3000 121034 |
п004пп |
2 |
22.05.2006 |
3021 347520 |
п004пп |
2 |
23.05.2006 |
3021 485621 |
р007аа |
3 |
22.05.2006 |
3021 343421 |
р007аа |
3 |
23.05.2006 |
4000 678423 |
п009оо |
3 |
22.05.2006 |
4000 673921 |
п009оо |
3 |
23.05.2006 |
3000 452114 |
в909ао |
4 |
22.05.2006 |
3021 452213 |
в909ао |
4 |
23.05.2006 |
4000 789842 |
а070пр |
4 |
22.05.2006 |
4000 509123 |
а070пр |
4 |
23.05.2006 |
3021 123345 |
р005рр |
5 |
22.05.2006 |
3000 906823 |
р005рр |
5 |
23.05.2006 |
3000 762234 |
о009пр |
5 |
22.05.2006 |
4000 421131 |
о009пр |
5 |
23.05.2006 |
3000 542421 |
с050ар |
5 |
22.05.2006 |
3021 134553 |
с050ар |
5 |
23.05.2006 |
3000 123034 |
а007пп |
1 |
24.05.2006 |
3021 438954 |
в007рп |
1 |
24.05.2006 |
3000 034582 |
н006оо |
2 |
24.05.2006 |
3021 509210 |
а004вп |
2 |
24.05.2006 |
3000 121034 |
п004пп |
2 |
24.05.2006 |
3021 343421 |
р007аа |
3 |
24.05.2006 |
4000 678423 |
п009оо |
3 |
24.05.2006 |
3000 452114 |
в909ао |
4 |
24.05.2006 |
3021 123345 |
р005рр |
5 |
24.05.2006 |
4000 421131 |
о009пр |
5 |
24.05.2006 |
3021 134553 |
с050ар |
5 |
24.05.2006 |
Таблица “Тип_вместимость”
Тип |
Вместимость (чел) |
Лиаз (гармошка) |
250 |
Лиаз 05гв |
150 |
Лиаз 90гв |
130 |
Экарус (гармошка) |
200 |
Экарус 95гв |
150 |
Таблица “Поломки”
id |
Номер автобуса |
дата поломки |
1 |
п009оо |
25.05.2006 |
2 |
а070пр |
25.05.2006 |
Таблица “Оклад”
Класс |
Оклад |
A |
20000 |
B |
10000 |
C |
5000 |
5. Реализация интерфейса
5.1. Иерархия экранных форм:
5.2. Экранные формы
Форма “Главная”
Главный интерфейс базы.
Источник данных: нет
Элементы формы:
Рисунки, событие onClick.
Стрелка1 – открытие формы Маршруты
Стрелка2– открытие формы Автобусы
Стрелка3 – открытие формы Водители
Стрелка4 – открытие формы НеВышли
Стрелка5 – открытие отчета поПарку
Стрелка6 – открытие формы График работы
“Выход” – выход.
При открытии выполняется команда Развернуть.
Форма “Маршруты”
Выводит данные о маршрутах.
Источник данных: таблица Маршруты
Элементы:
Поля, куда выводятся основные характеристики маршрута.
Кнопки листания.
Кнопка поиска.
Кнопка29 – открыть форму “МаршВод”
Кнопка27 – открыть форму “СписокАвтоб” либо “СписокАвтобВсех”
Кнопка40 – открыть форму “МаршПоиск”
Кнопка48 – открыть отчет “Справка”
Кнопка добавления -Кнопка45– открывает форму “МаршВводНов”
Кнопка удаления - Кнопка47 – открывает форму “МаршрутыУдалПодт” на подтверждение удаления. И вызывает запрос МаршУдал.
Форма “МаршВод”
Список водителей на данном маршруте.
Источник записей: запрос МаршВод.
Элементы:
Подчиненная форма МАршВодПод. Источник записей: Запрос МАршВодПод.
Поле связи – pasp
Форма “СписокАвтоб” или “СписокАвтобВсех”
Вывод списка автобусов на данном маршруте.
Источник записей: запрос СписАвтоб для “СписокАвтоб”
Или запрос СписокАвтобВсех для “СписокАвтобВсех”
Форма “МаршПоиск”
Поиск маршрутов по названиям начального и конечного путей.
Источник данных: нет
Элементы:
Поле со списком 1, источник данных
SELECT МаршНачПункт.nach FROM МаршНачПункт;
Поле со списком 2, источник данных
SELECT МаршКонПункт.konech FROM МаршКонПункт;
Кнопка3 – применить фильтр к подчиненной форме.
Форма “МаршВводНов”
Ввод данных о новом маршруте.
Источник записей: нет
Элементы:
Поле со списком 1. Источник записей:
SELECT МаршНачПункт.nach FROM МаршНачПункт;
Поле со списком 2. Источник записей:
SELECT МаршКонПункт.konech FROM МаршКонПункт;
Кнопка Ввести – запрос МаршВводНов
Форма “Автобусы”
Выводит список автобусов, возможность добавления, удаления автобуса.
Источник данных: таблица Автобусы
Элементы:
Подчиненная форма Автобусы1 источник записей – таблица Автобусы
Поле связи: нет
Поле со списком 1 источник данных:
SELECT DISTINCT АвтобТип.type FROM АвтобТип;
Кнопка на запрос ДобавНовАвтоб.
Кнопка на вызов запроса на удаление АвтобУдал
Форма “Водители”
Выводит данные о водителях. Выбор принятия на работу нового или увольнение.
Источник данных: таблица Водители
Элементы:
Кнопка Общий график на открытие запроса ГрафикЛин_перекрестный
Подчиненная форма ПоКлассам
Источник записей: запрос ПоКлассам
Поле связи: нет
Подчиненная форма МахСтаж
Источник записей: запрос МахСтаж
Поле связи: нет
Кнопка Уволит водителя – запрос ВодтелиУволн
Кнопка Принять водителя – открыть форму “АнкетаВод”
Форма “АнкетаВод”
Вводит данные по принятию нового водителя.
Источник данных: нет
Элементы:
Поле со списком. Источник строк: "A";"B";"C"
Кнопка Принять – вызов
Форма “НеВышли”
Выводит данные о не вышедших на маршрут автобусах, и причине.
Источник данных: запрос НеВышли
Форма “График работы”
Выводит графики работ водителей и автобусов, возможность заполнения расписания.
Источник данных: нет
Элементы:
Подчиненный запрос: форма: подчиненная форма ГрафикЛин_перекрестный
запрос: ГрафикЛин_перекрестный
поле связи: нет
Подчиненный запрос: форма: подчиненная форма ГрафикАвтоб_лин_перекрестный
запрос: ГрафикАвтоб_лин_перекрестный
поле связи: нет
Поле со списком “Паспорт”. Источник данных:
SELECT СвободныеВодители.pasp FROM СвободныеВодители;
Поле со списком “Номер автобуса”. Источник данных:
SELECT СвободныеАвтоб.avtob FROM СвободныеАвтоб;
Поле со списком “Номер автобуса”. Источник данных:
SELECT Маршруты.marshr FROM Маршруты;
Кнопка Ввести – на вызов запроса ВводСтрокиГрафика
6. Описание запросов
Запрос “АвтобУдал”
Удаление записи из таблицы Автобусы.
DELETE *
FROM Автобусы
WHERE avtob=Forms!Автобусы!avtobud;
Результат: удалена запись
Forms!Автобусы!avtobud |
type |
Запрос “АнкетаВодЗагр”
Добавляет запись в промежуточную таблицу ВодителиЗагр
INSERT INTO ВодителиЗагр ( Pasp, FIO, staj, klas, data_roj, Adres )
VALUES (Forms!АнкетаВод!pasp, Forms!АнкетаВод!fio, Forms!АнкетаВод!staj, Forms!АнкетаВод!klas, Forms!АнкетаВод!date, Forms!АнкетаВод!Adres);
Результат:
Forms!АнкетаВод!pasp |
Forms!АнкетаВод!fio |
Forms!АнкетаВод!staj |
Forms!АнкетаВод!klas |
Forms!АнкетаВод!date |
Forms!АнкетаВод!Adres |
Запрос “ АнкетаВод”
Добавляет запись в таблицу Водители
INSERT INTO Водители
SELECT ВодителиЗагр.Pasp AS Pasp, ВодителиЗагр.FIO AS FIO, ВодителиЗагр.staj AS staj, ВодителиЗагр.klas AS klas, Оклад.Oklad AS Oklad, ВодителиЗагр.data_roj AS data_roj, ВодителиЗагр.Adres AS Adres
FROM ВодителиЗагр, Оклад
WHERE (ВодителиЗагр.klas=Оклад.
(ВодителиЗагр.Pasp not in (SELECT Pasp FROM Водители));
Результат:
ВодителиЗагр.Pasp |
ВодителиЗагр.FIO |
ВодителиЗагр.staj |
ВодителиЗагр.klas |
Оклад.Oklad |
ВодителиЗагр.data_roj |
ВодителиЗагр.Adres |
Запрос “ВводСтрокиГрафика”
Добавляет запись в таблицу Водят
INSERT INTO Водят ( Pasp, avtob, marshr, [date] )
SELECT Forms![График работы]!pasp, Forms![График работы]!avtob, Forms![График работы]!marshr, Forms![График работы]!date;
Результат:
Forms![График работы]!pasp |
Forms![График работы]!avtob |
Forms![График работы]!marshr |
Forms![График работы]!date |