Смекни!
smekni.com

Методические указания к курсовому проектированию по курсу базы данных для студентов дневной и заочной форм обучения специальностей (стр. 11 из 14)

Вспомогательная таблица «Т1» состоит из одного поля «Мест» числового типа. В это поле поочередно записывается общее количество мест на данный поезд в данный тип вагона в данную дату отправления поезда и количество уже проданных билетов на место с такими параметрами. Если ни одной записи не будет внесено в таблицу, то по умолчанию будет принято значение ноль.

Все связи реализуют: обеспечение целостности данных, каскадное обновление связанных полей, каскадное удаление связанных полей.

3 Разработка интерфейса пользователя

При загрузке программного приложения «Касса железнодорожных билетов» автоматически выполняется макрос «autoexec», который в свою очередь открывает главную форму «Главная» (Приложение 1).

Форма «Главная» является основным меню выбора дальнейших действий. В верхней части формы расположены две кнопки для работы по учету билетов.

При нажатии на кнопку «Билеты» выполняется макрос «КнБилеты_Главная», который закрывает форму «Главная» и открывает форму «Билеты».

При нажатии на кнопку «Сервис» выполняется макрос «КнСервис_Главная», который закрывает форму «Главная» и открывает форму «Сервис». В нижней части формы расположена группа кнопок, которые вызывают соответствующий справочник.

При нажатии на кнопку «Тип вагона» выполняется макрос «КнТип вагона_Главная», который закрывает форму «Главная» и открывает форму «Типы вагонов».

При нажатии на кнопку «Тип поезда» выполняется макрос «КнТип поезда_Главная», который закрывает форму «Главная» и открывает форму «Типы поездов».

При нажатии на кнопку «Пассажир» выполняется макрос «КнПассажир_Главная», который закрывает форму «Главная» и открывает форму «Пассажиры».

При нажатии на кнопку «Скидка» выполняется макрос «КнСкидка_Главная», который закрывает форму «Главная» и открывает форму «Скидки».

При нажатии на кнопку «Станция» выполняется макрос «КнСтанция_Главная», который закрывает форму «Главная» и открывает форму «Станции».

При нажатии на кнопку «Дата отправления» выполняется макрос «КнДата отправления_Главная», который закрывает форму «Главная» и открывает форму «Даты отправления».

При нажатии на кнопку «Номер поезда» выполняется макрос «КнНомер поезда_Главная», который закрывает форму «Главная» и открывает форму «Номера поездов». В нижнем правом углу формы расположена кнопка «Выход», при нажатии на которую выполняется макрос «КнВыход_Главная», который осуществляет выход из программного приложения.

Форма «Типы вагонов» (Приложение 2) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Типы вагонов», который закрывает форму «Типы вагонов» и открывает форму «Главная». Также на форме расположены три поля: тип вагона, количество мест, коэффициент класса. Список типов вагонов отсортирован в алфавитном порядке по полю «Тип вагона». Источником формы является таблица «Тип вагона».

В форму при желании можно добавить новый тип вагона со своими характеристиками или удалить уже существующий тип вагона, при этом удаляться все записи, которые связаны с этим типом вагона.

Форма «Типы поездов» (Приложение 3) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Типы поездов», который закрывает форму «Типы поездов» и открывает форму «Главная». Также на форме расположены два поля: тип поезда, стоимость одного километра пути. Список типов поездов отсортирован в алфавитном порядке по полю «Тип поезда». Источником формы является таблица «Вид поезда». В форму при желании можно добавить новый тип поезда со своими характеристиками или удалить уже существующий тип поезда, при этом удаляться все записи, которые связаны с этим типом поезда.

Форма «Пассажиры» (Приложение 4) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Пассажиры», который закрывает форму «Пассажиры» и открывает форму «Главная». Также на форме расположены два поля: ФИО, скидка. Список пассажиров отсортирован в алфавитном порядке по полю «ФИО». Источником формы является запрос «ЗПассажир».

SELECT Пассажир.Код, Пассажир.ФИО, Скидка.Льгота

FROM Скидка INNER JOIN Пассажир ON Скидка.Код = Пассажир.Скидка

ORDER BY Пассажир.ФИО;

Запрос позволяет отобрать из таблиц «Скидка» и «Пассажир» ФИО пассажира и процент скидки для него. В форму нельзя добавить нового пассажира со своим процентом скидки, но можно удалить уже существующего пассажира, при этом удаляться все записи билетов, которые оформлены на этого пассажира.

Форма «Скидки» (Приложение 5) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Скидки», который закрывает форму «Скидки» и открывает форму «Главная». Также на форме расположено одно поле «Скидка». Список скидок отсортирован по возрастанию процента скидки. Источником формы является таблица «Скидка». В форму при желании можно добавить новый процент скидки или удалить уже существующий процент, при этом удаляться все записи пассажиров, которые имеют этот процент скидки.

Форма «Станции» (Приложение 6) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Станции», который закрывает форму «Станции» и открывает форму «Главная». Также на форме расположены два поля: станция, расстояние до станции. Список станций отсортирован в алфавитном порядке по полю «Станция». Источником формы является таблица «Станция». В форму при желании можно добавить новую станцию со своим расстоянием или удалить уже существующую станцию, при этом удаляться все записи, которые связаны с этой станцией.

Форма «Даты отправления» (Приложение 7) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Даты отправления», который закрывает форму «Даты отправления» и открывает форму «Главная». Также на форме расположено одно поле «Дата отправления». Список дат отсортирован по убыванию даты отправления. Источником формы является таблица «Дата отправления». В форму при желании можно добавить новую дату отправления или удалить уже существующую дату, при этом удаляться все записи билетов, которые были проданы на эту дату отправления.

Форма «Номера поездов» (Приложение 8) содержит три кнопки. При нажатии на кнопку «Назад» выполняется макрос «КнНазад_Номера поездов», который закрывает формы «Номера поездов», «Маршрут» и «Состав». После этого макрос открывает форму «Главная». При нажатии на кнопку «Состав» выполняется макрос «КнСостав_Номера поездов», который открывает форму «Состав», при этом выводится в форму состав выбранного поезда. При нажатии на кнопку «Маршрут» выполняется макрос «КнМаршрут_Номера поездов», который открывает форму «Маршрут», при этом выводится в форму маршрут выбранного поезда. Также на форме расположены два поля: простое поле «Номер поезда» и поле со списком «Тип поезда». В качестве источника строк для поля со списком «Тип поезда» используется запрос «ЗВид поезда».

SELECT [Вид поезда].Код, [Вид поезда].[Вид поезда], [Вид поезда].[Стоимость км]

FROM [Вид поезда]

ORDER BY [Вид поезда].[Вид поезда];

Запрос позволяет отображать список типов поездов в алфавитном порядке. Список номеров поездов отсортирован по возрастанию номера поезда. Источником формы является таблица «Номер поезда». В форму можно добавить новый номер поезда и его тип, можно удалить из нее уже существующий номер поезда, при этом удаляться все записи билетов, которые оформлены на этот поезд. Также можно изменить тип поезда для уже существующей записи.

Форма «Состав» (Приложение 9) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Состав», который закрывает форму «Состав». Также на форме расположены три поля: номер поезда, тип вагона, количество вагонов. Поле «Тип вагона» является полем со списком. Источником строк для этого поля является запрос «ЗТип вагона».

SELECT [Тип вагона].Код, [Тип вагона].[Тип вагона], [Тип вагона].[Количество мест], [Тип вагона].[Коэффициент класса]

FROM [Тип вагона]

ORDER BY [Тип вагона].[Тип вагона];

Запрос реализует сортировку типов вагонов в алфавитном порядке. Поле «Номер поезда» недоступно для изменения пользователем. Это поле принимает значения в зависимости от выбранного номера поезда в форме «Номера поездов». Источником формы является таблица «Количество вагонов». В форму при желании можно добавить новое количество вагонов нового типа или удалить уже существующие вагоны определенного типа. Также можно изменить количество вагонов определенного типа.

Форма «Маршрут» (Приложение 10) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Маршрут», который закрывает форму «Маршрут». На форме расположены простое поле «Номер поезда» и поле со списком «Станция». Источником строк для поля «Станция» является запрос «ЗСтанция».

SELECT Станция.Код, Станция.Станция, Станция.Расстояние

FROM Станция

ORDER BY Станция.Станция;

Запрос реализует сортировку станций в алфавитном порядке. Поле «Номер поезда» недоступно для изменения пользователем. Это поле принимает значения в зависимости от выбранного номера поезда в форме «Номера поездов». Источником формы является таблица «Следует через». В форму при желании можно добавить новую станцию или удалить уже существующую станцию. Также можно изменить какую-либо существующую в маршруте станцию на любую другую.

Форма «Билеты» (Приложение 11) содержит четыре кнопки. При нажатии на кнопку «Назад» выполняется макрос «КнНазад_Билеты», который закрывает форму «Билеты» и отчет «ОБилеты». После этого макрос открывает форму «Главная». При нажатии на кнопку «Подробно» выполняется макрос «КнПодробно_Билеты», который закрывает форму «Билеты» и открывает форму «Билет», при этом выводится в форму полная информация о билете, который был выбран в форме «Билеты». При нажатии на кнопку «Добавить» выполняется макрос «КнДобавить_Билеты», который закрывает форму «Билеты» и открывает форму «Билет», при этом на форме появляется чистый бланк билета для заполнения. При нажатии на кнопку «Отчет» выполняется макрос «КнОтчет_Билеты», который открывает для просмотра отчет «ОБилеты». Также на форме расположены пять полей: номер билета, пассажир, дата отправления, номер поезда, стоимость. Все поля недоступны для редактирования пользователем. Источником формы является запрос «ЗКупил билет».