Разработка автоматизированного рабочего места кассира по продаже билетов в кассе аэрофлота

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

кран и на принтер.

Разработка технологии ввода и накопления входной информации.

Для решения рассматриваемой задачи должен производиться ввод и накопление оперативно-учетной информации о пассажирах, их данных и информации о новых рейсах и маршрутах.

Справочная информация о пассажирах, имеющихся маршрутах и рейсах должна быть ранее загружена в базу данных в процессе решения данной предметной области с соответствующих документов - Справочника пассажиров и Справочника рейсов

В соответствии с этим технология ввода входной оперативной информации и решение рассматриваемой задачи с помощью базы данных приведены на рис.2.

 

Рис. 2. Технологическая схема ввода информации и решения задачи оценки оплаты

 

Рис. 3. Источники загрузки таблиц базы данных при регистрации новых клиентов

 

На рис. 4 показаны источники данных - входные документы при регистрации новых клиентов для создания записей таблиц с оперативной (учетной) информацией базы данных. Здесь также указан перечень загружаемых полей, которые необходимы для решения рассматриваемой задачи.

Определение форм ввода ввода-вывода.

Для ввода информации о регистрации и регистрационных данных о новых клиентах были созданы экранные формы. Через экранные формы ввода-вывода дожен обеспечиваться однократный ввод данных во взаимосвязанные таблицы Список пассажиров - Багаж пассажиров и Список рейсов. Ниже приведена экранная форма для ввода данных клиента и его регистрации.

Форма для загрузки данных с формы нового клиента является составной многотабличной. Основная часть формы строиться на основе двух загружаемых таблиц - Список пассажиров и Багаж пассажиров.

 

Рис. 4. Макет формы ввода-вывода для загрузки данных с формы регистрации нового клиента в таблицы Список пассажиров и Багаж пассажиров

 

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

Реализация запросов средствами Microsoft Access 2003:

 

Запрос, определяющий состав посадочной ведомости для определенного рейса:[Расписание рейсов].[Номер рейса], [Список самолетов].[Бортовой номер], [Список самолетов].[Марка самолета], [Список самолетов].[Вид самолета], [Список пассажиров].[ФИО клиента], [Список пассажиров].[Номер билета], [Список пассажиров].[Полный номер паспорта], [Список пассажиров].[Место прописки клиента], [Багаж пассажиров].[Вес багажа][Список самолетов] INNER JOIN (([Описание маршрута] INNER JOIN [Расписание рейсов] ON [Описание маршрута].[Название маршрута] = [Расписание рейсов].[Название маршрута]) INNER JOIN ([Багаж пассажиров] INNER JOIN [Список пассажиров] ON [Багаж пассажиров].[Номер билета] = [Список пассажиров].[Номер билета]) ON [Расписание рейсов].[Номер рейса] = [Список пассажиров].[Номер рейса]) ON [Список самолетов].[Бортовой номер] = [Расписание рейсов].[Бортовой номер]((([Расписание рейсов].[Номер рейса])=[Введите номер рейса]))

 

 

Запрос, выводящий отчет по доходам аэропорта за определенный период с группировкой по маршрутам:[Описание маршрута].[Название маршрута], [Расписание рейсов].[Номер рейса], [Список самолетов].[Количество пассажирских мест], Count([Список пассажиров]![ФИО клиента]) AS [Количество проданных билетов], [Описание маршрута].[Стоимость билета], [Расписание рейсов].[Количество возвращенных билетов], (Count([Список пассажиров]![ФИО клиента])-[Количество возвращенных билетов])*([Описание маршрута]![Стоимость билета]) AS [Выручка по рейсам][Список самолетов] INNER JOIN (([Описание маршрута] INNER JOIN [Расписание рейсов] ON [Описание маршрута].[Название маршрута] = [Расписание рейсов].[Название маршрута]) INNER JOIN ([Багаж пассажиров] INNER JOIN [Список пассажиров] ON [Багаж пассажиров].[Номер билета] = [Список пассажиров].[Номер билета]) ON [Расписание рейсов].[Номер рейса] = [Список пассажиров].[Номер рейса]) ON [Список самолетов].[Бортовой номер] = [Расписание рейсов].[Бортовой номер]BY [Описание маршрута].[Название маршрута], [Расписание рейсов].[Номер рейса], [Список самолетов].[Количество пассажирских мест], [Описание маршрута].[Стоимость билета], [Расписание рейсов].[Количество возвращенных билетов], [Расписание рейсов].[Дата вылета]((([Расписание рейсов].[Дата вылета]) Between #1/1/2008# And #1/5/2008#))

 

 

Запрос, определяющий наличие свободных мест на определенном рейсе:[Расписание рейсов].[Номер рейса], [Количество пассажирских мест]-(Count([Список пассажиров]![ФИО клиента]))+[Количество возвращенных билетов] AS [Осталось свободных мест][Список самолетов] INNER JOIN (([Описание маршрута] INNER JOIN [Расписание рейсов] ON [Описание маршрута].[Название маршрута] = [Расписание рейсов].[Название маршрута]) INNER JOIN [Список пассажиров] ON [Расписание рейсов].[Номер рейса] = [Список пассажиров].[Номер рейса]) ON [Список самолетов].[Бортовой номер] = [Расписание рейсов].[Бортовой номер]BY [Расписание рейсов].[Номер рейса], [Список самолетов].[Количество пассажирских мест], [Расписание рейсов].[Количество возвращенных билетов];

 

 

Запрос, определяющий ближайший рейс до определенного места посадки:[Расписание рейсов].[Номер рейса], [Расписание рейсов].[Время вылета], [НОВЫЙ Запрос на кол-во свободных мест].[Осталось свободных мест], [Расписание рейсов].[Дата вылета][Список самолетов] INNER JOIN (([Описание маршрута] INNER JOIN ([Расписание рейсов] INNER JOIN [НОВЫЙ Запрос на кол-во свободных мест] ON [Расписание рейсов].