Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Программное обеспечение справочной службы аэропорта

Содержание:

Введение

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

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

Для управления информацией хранимой в базе данных (БД), а также для ее защиты, организации структуры БД и обеспечения выдачи информации по требованиям существуют системы управления базами данных (СУБД). СУБД - это совокупность программных и лингвистических средств общего и специального назначения, обеспечивающих управление созданием и использованием баз данных. В данной работе применяется СУБД MS Access, которая и обеспечивает сохранность и защиту информации в базе данных.

Целью курсовой работы является проектирование и разработка автоматизированной ИС. Для достижения поставленной задачи в представляемой работе разрабатывается структура базы данных и клиентские приложения для информационной системы «Кассы аэропорта»

1. Теоретические основы проектирования информационных систем

1.1 Анализ предметной области

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

Структура проверки состоит из большого числа пунктов. Очень удобно все пункты структурировать в виде таблицы. Информация в БД, тоже представляется в виде таблицы. Что позволит организовать проверку состояния самолетов, медицинский осмотр сотрудников, по результатам которого будет определён их допуск к полёту, составлять графики полётов.

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

Актуальным является сохранять сведения о названных процедурах в специальных модулях программного обеспечения.

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

1.2. Характеристика программ-аналогов

1.2.1. КИС «Аэропорт»

Корпоративная информационная система Аэропорт (КИС Аэропорт) предназначена для автоматизации деятельности аэропорта. Основной особенностью системы является всесторонний охват основных видов деятельности аэропорта в единой программной среде, как для производственно-технологических задач, так и для задач управленческого учета и бухгалтерского учета. Она позволяет организовать эффективное управление деятельностью аэропорта в едином информационном и алгоритмическом пространстве для принятия решений в ходе осуществления производственной деятельности аэропорта.

КИС Аэропорт состоит из большого набора взаимоувязанных между собой программных продуктов. Окончательная комплектация системы может гибко меняться и зависит от нужд и потребностей аэропорта.

Программа обеспечивает выполнение следующих функций:

Расписание движения воздушных судов

Расписание движения воздушных судов

Ведение текущего расписания в местном времени и в UTC

Копирование, смещение и деление рейсов

Согласование рейсов

Анализ расписания за произвольно выбранный период

Отображение расписания на сайте аэропорта

Технологический график. Управление суточным планом полетов

Технологический график. Управление суточным планом полетов

Оперативное управление суточным планом полетов

Работа в реальном режиме времени

Описание технологических операций

Ведение технологических графиков обслуживания воздушных судов

Информационное табло контроля выполнения технологических операций

Ведение истории выполнения технологических графиков

Автоматическая обработка входящих и исходящих телеграмм

Акты на задержку рейсов

Сводные загрузочные ведомости

Фиксация услуг по обслуживанию рейсов

Вывод информации на сайт

Связь с расписанием

Связь с ПК «Наземное и аэропортовое обслуживание»

Связь с подсистемой информирования пассажиров

Мобильное рабочее место. Работа на перроне

Мобильное рабочее место. Работа на перроне

Отображение суточного плана полетов на мобильном устройстве

Технологический график облуживания рейсов

Фиксация времени выполнения технологической операции одним кликом

Посылка уведомлений о скором начале технологической операции и о просроченных операциях

Отображение планируемых и фактических мест стоянок воздушных судов

Ввод примечаний и заметок по рейсам

Вывод сезонного расписания движения воздушных судов

Оперативный отчет о загрузке рейсов (пассажиры, груз и почта, топливо)

Оперативный отчет по оказанным услугам

Информирование пассажиров

Информирование пассажиров

Автоматическое информирование пассажиров

Периодические звуковые (голосовые) сообщения

Экстренные звуковые сообщения

Голосовые оповещения по рейсу

Табло информирования пассажиров

Наземное и аэропортовое обслуживание

Наземное и аэропортовое обслуживание ВС

Расписание движения ВС

План полетов

План загрузки

Описание актов по обслуживанию ВС

Регистрация заявок на дополнительное обслуживание ВС

Ввод требований за заправку ВС

Формирование актов на обслуживание ВС (формы С и А)

Формирование сводно-загрузочной ведомости

Описание операций по обслуживанию ВС и их трудоемкости

Формирование статотчетности 11-ГА, 15-ГА, 16-ГА

Формирование суточного плана полетов

Формирование рекламного расписания

Формирование графика прилета-вылета по аэропорту

Связь с ПК «Грузовой склад»

Связь с ПК «Учет авиа и авто ГСМ»

Связь с «АРМом Спецобслуживание пассажиров»

Связь с программным комплексом «Купол»

Спецобслуживание пассажиров

Спецобслуживание пассажиров

Ведение договоров с корпоративными клиентами на обслуживание в залах повышенной комфортности

Связь с АРМом «Договора. Юридический отдел»

Учет заявок на специальное обслуживание пассажиров

Ведение отчетов кассира в разрезе бланков строгой отчетности

Учет бланков строгой отчетности (квитанции разных сборов)

Прейскурант цен на спецобслуживание пассажиров в разрезе залов специального обслуживания

Связь с программным комплексом «Наземное и аэропортовое обслуживание ВС»

Связь с АРМом «Учет бланков строгой отчетности»

Экспорт данных в документы бухгалтерского учета (АС Бухгалтерия)

Грузовой склад (грузовой терминал)

Грузовой склад (грузовой терминал)

Расписание движения ВС

Подсистема тарификации грузовых и почтовых перевозок

Отправка груза: регистрация, оплата, печать грузовой накладной

Почтово-грузовая ведомость

Квитанции разных сборов

Отчет кассира грузового терминала

Прибытие груза: регистрация и выдача груза

Передача смены

Инвентарь, хранящийся на складах

Учет бланков строгой отчетности

Связь с АРМом «Учет бланков строгой отчетности»

План полетов

Связь с ПК «Наземное и аэропортовое обслуживание ВС»

Бюро пропусков

Бюро пропусков

Учет заявок на выдачу пропуска по службам и контрагентам

Контроль над выполнением заявок

Учет бланков строгой отчетности

Связь с АРМом «Учет бланков строгой отчетности»

Ведение прайс-листа на услуги по выдаче пропусков

Печать квитанций

Отчет кассира бюро пропусков

Экспорт данных в документы бухгалтерского учета (АС Бухгалтерия)

Служба снабжения

Склад и служба снабжения

Управление закупками

Регистрация плановых (на год/полугодие) заявок

Регистрация текущих (внеплановых) заявок

Контроль исполнения заявок агентами по снабжению

Договора на поставку, справочник ТМЦ, нормы расхода ТМЦ

Контроль оплаты (счет, товарный чек) и поступления на склад

Схема хранения ТМЦ (склады, группы материалов, счета хранения)

Учет остатков и движения материалов по складам (приход, расход, внутреннее перемещение, подотчет)

Учет стоимости материалов на складах по средним ценам

Ведение складских карточек учета материалов

Формирование проводок на основании приходных и расходных накладных склада

Бюджетирование и отдел снабжения

Бюджетирование и отдел снабжения

Формирование годовой сметы затрат по направлениям расхода

Формирование годового бюджета предприятия по закупкам товарно-материальных ценностей (ТМЦ)

Ведение текущего месячного плана закупок в рамках запланированного годового бюджета

1.2.2. ИС «Аэропорт»

ИС «Аэропорт» — это комплексное решение, призванное обеспечить поддержку производственных, технологических и финансовых процессов авиационного предприятия. Оно позволяет решать задачи, связанные с организацией, подготовкой и выполнением работ по обеспечению авиационных перевозок в аэропорту.

Развитие системы осуществляется с учетом требований российских и международных (ICAO, IATA) нормативных документов, рекомендаций и правил, регламентирующих деятельность аэропортов в области наземного обслуживания воздушных судов, пассажиров и организации воздушного движения.

Основными функциями системы являются:

  • управление процессом обслуживания рейсов и пассажиров;
  • управление ресурсами (статичными и мобильными);
  • управление персоналом;
  • управление финансамиэ
  • голосовое и визуальное информирование.
  • ИС «Аэропорт» основывается на решениях, которые проверены временем и сочетают в себе надежность и удобство в повседневной работе, а также призваны решать следующие задачи:
  • обеспечение безопасности полетов;
  • эффективное планирование расписания и суточного плана обслуживания воздушных судов;
  • сокращение времени на обслуживание, повышение качества;
  • эффективное планирование и использование персонала и ресурсов, задействованных в обслуживании;
  • сокращение издержек производства;
  • сокращение реакции на сбои и задержки в технологическом процессе;
  • уменьшение численности административного и обслуживающего персонала за счет повышения эффективности его работы;
  • своевременное предоставление максимального объема оперативной информации каждому участнику производственного процесса с применением различных технических средств.

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

Модуль "Расписание"

Рисунок 1.1. Интерфейс ИС «Аэропорт»

1.2.3. КАИС «Аэропорт»

Информационная система для аэропортов включает в себя несколько блоков:

  • сервер с программным обеспечением (ПО);
  • автоматизированное рабочее место оператора (АРМ);
  • видеоэкраны (опционально);
  • информационные табло разнообразных типов;
  • дополнительные носители данных, среди которых мониторы телевизионного типа, бегущие строки и т.д.

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

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

Зачастую информационная система дополняется специальными аппаратными и программными средствами звукового оповещения и сопровождения.

Программное обеспечение

ПО, используемое в информационной системе, является универсальным, соответственно, оно позволяет отображать данные на различных мониторах и табло. Это значительно расширяет возможности системы в целом.

http://www.displaysystems.ru/images/aero/fids.gif

Рисунок 1.2. Состав программного комплекса

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

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

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

Программные комплексы, разработанные нашими программистами, имеют ряд преимуществ, к которым относятся:

простора управления и настройки;

поддержка работы со всевозможными средствами отображения информации (мониторы различных классов, табло);

простота интеграции с внешней системой поставки данных;

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

возможность поддержки до 800 мониторов и табло с использованием одного сервера;

высокая защищенность от взлома;

возможность бесперебойной работы в нестабильных компьютерных сетях.

Информационные табло

Информационные системы, предназначенные для использования на территории аэропорта, построены на базе инновационной разработки компании «Дисплейные Системы», то есть специальных табло плазменного типа серии DPI (Display Plasma Indoor). Каждый из них представляет собой модуль, имеющий размеры 387х131 мм. Разрешение монитора составляет 192х64 пикселя. Можно получить практически любой размер табло, достаточно состыковать несколько дисплеев по высоте и ширине.

1.3. Постановка задачи

Целью работы является разработка программного обеспечения, которое предоставляет возможность работы кассиру аэропорта.

Программное обеспечение должно обеспечивать ввод и редактирование информации о следующих сущностях:

Должности;

Сотрудники;

Рейсы;

Билеты;

Авиакомпании;

Самолёты;

Пассажиры;

Пункты назначения;

Скидки.

1.4 Среды разработки базы данных и клиентского приложения

1.4.1 СУБД Microsoft Access 2013

Microsoft Access является настольной СУБД (система управления базами данных) реляционного типа. Достоинством Access является то, что она имеет очень простой графический интерфейс, который позволяет не только создавать собственную базу данных, но и разрабатывать приложения, используя встроенные средства.

В отличие от других настольных СУБД, Access хранит все данные в одном файле, хотя и распределяет их по разным таблицам, как и положено реляционной СУБД. К этим данным относится не только информация в таблицах, но и другие объекты базы данных, которые будут описаны ниже.

Для выполнения почти всех основных операций Access предлагает большое количество Мастеров (Wizards), которые делают основную работу за пользователя при работе с данными и разработке приложений, помогают избежать рутинных действий и облегчают работу неискушенному в программировании пользователю.

Создание многопользовательской БД Access и получение одновременного доступа нескольких пользователей к общей базе данных возможно в локальной одноранговой сети или в сети с файловым сервером. Сеть обеспечивает аппаратную и программную поддержку обмена данными между компьютерами. Access следит за разграничением доступа разных пользователей к БД и обеспечивает защиту данных. При одновременной работе. Так как Access не является клиент серверной СУБД, возможности его по обеспечению многопользовательской работы несколько ограничены. Обычно для доступа к данным по сети с нескольких рабочих станций, файл БД Access (с расширением *.mdb) выкладывается на файловый сервер. При этом обработка данных ведется в основном на клиенте – там, где запущено приложение, в силу принципов организации файловых СУБД. Этот фактор ограничивает использование Access для обеспечения работы множества пользователей (более 15–20) и при большом количестве данных в таблицах, так как многократно возрастает нагрузка не сеть[2].

В плане поддержки целостности данных Access отвечает только моделям БД небольшой и средней сложности. В нем отсутствуют такие средства как триггеры и хранимые процедуры, что заставляет разработчиков возлагать поддержание бизнес логики БД на клиентскую программу.

В отношении защиты информации и разграничения доступа Access не имеет надежных стандартных средств. В стандартные способы защиты входит защита с использованием пароля БД и защита с использованием пароля пользователя. Снятие такой защиты не представляет сложности для специалиста.

Однако, при известных недостатках MS Access обладает большим количеством преимуществ по сравнению с системами подобного класса.

В первую очередь можно отметить распространенность, которая обусловлена тем, что Access является продуктом компании Microsoft, программное обеспечение и операционные системы которой использует большая часть пользователей персональных компьютеров. MS Access полностью совместим с операционной системой Windows, постоянно обновляется производителем, поддерживает множество языков.

В целом MS Access предоставляет большое количество возможностей за сравнительно небольшую стоимость. Также необходимо отметить ориентированность на пользователя с разной профессиональной подготовкой, что выражается в наличии большого количества вспомогательных средств (Мастеров, как уже отмечалось), развитую систему справки и понятный интерфейс. Эти средства облегчают проектирование, создание БД и выборку данных из нее.

MS Access предоставляет в распоряжение непрограммирующему пользователю разнообразные диалоговые средства, которые позволяют ему создавать приложения не прибегая к разработке запросов на языке SQL или к программированию макросов или модулей на языке VBA [4].

Access обладает широкими возможностями по импорту / экспорту данных в различные форматы, от таблиц Excel и текстовых файлов, до практически любой серверной СУБД через механизм ODBC.

Еще одно немаловажное преимущество MS Access заключается в развитых встроенных средствах разработки приложений. Большинство приложений, распространяемых среди пользователей, содержит тот или иной объем кода VBA (Visual Basic for Applications). Поскольку VBA является единственным средством для выполнения многих стандартных задач в Access (работа с переменными, построение команд SQL во время работы программы, обработка ошибок, использование Windows API ит. д.), для создания более-менее сложных приложений необходимо его знание и знание объектной модели MS Access.

Одним из средств программирования в Access является язык макрокоманд. Программы, созданные на этом языке, называются макросами и позволяют легко связывать отдельные действия, реализуемые с помощью форм, запросов, отчетов. Макросы управляются событиями, которые вызываются действиями пользователями при диалоговой работе с данными через формы или системными событиями.

Получается что Access, обладая всеми чертами СУБД, предоставляет и дополнительные возможности. Это не только гибкая и простая в использовании СУБД, но и система для разработки работающих с базами данных приложений.

1.4.2 Интегрированная среда разработки Delphi XE3

Delphi — крона программного генеалогического древа, уходящего корнями в Паскаль, с базовым стволом: Турбо Паскаль. Являясь первоначально сугубо процедурным языком, Турбо Паскаль сделал революционный шаг. В версию 5.5 были добавлены элементы объектно-ориентированного программирования. Object Pascal получил динамический тип данных, с возможностью гибкого управления памятью во время выполнения программы. На этом базируется отличие Object Pascal от С++. В первом случае объекты располагаются в динамической памяти по умолчанию, с существующей возможностью переопределить любой класс под «выбор места в памяти на свое усмотрение». [8]

Широкий набор объектов Delphi, собранный в иерархию из 270 базовых классов позволяет эффективно разрабатывать прикладные строго специализированные программы, приложения к корпоративным БД и даже игры. Естественно, появление Delphi существенно упростило создание интерфейса программных приложений. Процедура, занимавшая львиную долю времени, стала наиболее простой задачей для разработчиков.

Lazarus – библиотеки классов для компилятора Free Pascal + среда разработки. Lazarus — Delphi - подобная среда разработки на языке object pascal. Lazarus изначально создавался Delphi подобным, поэтому интерфейс полностью копирует интерфейс Delphi. Среда состоит из нескольких окон: основное окно с меню и палитрой компонентов, инспектор объектов, окно с выводом о результатах компилляции, редактор кода, редактор форм — полная аналогия Delphi. Так же стоит отметить кроссплатформенность среды: на сайте разработчика можно загрузить установочные пакеты для windows, ну и конечно вы можете найти lazarus в репозитарии своего linux — дистрибутива. Одной из особенностью компилятора Free Pascal является возможность кросскомпилляции: находясь в linux вы можете собрать приложение для платформы windows. Lazarus спроектирован так, что бы не зависеть от конкретной библиотеки. При пересборки среды можно выбрать используемую библиотку. На данный момент доступен вариант GTK+,
идут работы для библиотеки QT.

Embarcadero Delphi XE3 представляет собой инструмент для создания платформенно-ориентированных приложений с богатым интерфейсом для Windows от XP до Windows 8 и Mac OS X Mountain Lion с поддержкой Retina, Slates и Surface Pro на основе единого исходного кода. Delphi является тем самым "мультипликатором производительности" разработчиков, позволяя существенно сократить время выпуска на рынок новых продуктов и получить значительные конкурентные преимущества и перспективные направления развития бизнеса за счет мультиплатформенных визуальных средств разработки на компонентной основе и с возможностью эффективного взаимодействия с различными базами данных и облачными сервисами. [9]

Delphi XE3 позволяет легко и просто добиться соответствия интерфейсу пользователя стилю Windows 8. С новой технологией Metropolis в Delphi вы сможете создавать приложения, адаптированные к Windows 8, включая поддержку касаний и технологии Live Tile, компоненты для взаимодействия с датчиками для эффективной работы под Windows 8 на настольных системах и планшетных устройствах x86 Surface и Slate, а также под управлением предыдущих версий Windows от XP до Windows 7. Delphi XE3 позволяет легко адаптировать существующие приложения FireMonkey и VCL к стилю Windows 8. Даже при использовании технологии Metropolis вы сможете продолжать компилировать ваши проекты в приложения под Mac OS X с поддержкой последней версии Mountain Lion и Retina. [10]

Мы будем использовать Delphi XE3 по следующим причинам:

  • Отсутствие необходимости использовать сторонние библиотеки для взаимодействия с базой данных. Это порождает отсутствие необходимости устанавливать дополнительные библиотеки при установке готового приложения на компьютер. В частности, при использовании языка программирования Java, нам пришлось бы инсталлировать сторонние библиотеки для взаимодействия с MS SQL Server, что не упростило бы создание программы.
  • Удобный графический интерфейс и встроенные средства проектирования пользовательского интерфейса;
  • Объектно-ориентированная парадигма языка, позволяющая повторно использовать один и тот же описанный объект множество раз. В частности, удобно использовать эту функцию для программирования функции импорта. Одна функция, описанная единожды, будет использоваться множество раз различными формами приложения.
  • Легкая переносимость приложения между различными версиями среды разработки. Это позволит в будущем оперативно дорабатывать программу.
  • Множество доступных дополнительных бесплатных компонентов для среды программирования. Это позволит расширить функциональность программы.

2 Проектирование информационной системы «Программное обеспечение кассы аэропорта»

2.1 Проект базы данных информационной системы

2.1.1 Анализ информационных потоков предметной области. ER-модели

Проведем концептуальное проектирование базы данных разрабатываемой информационной системы. Для этого словесно опишем структуру разрабатываемой базы данных.

Сотрудники авиакомпании оформляют билеты на рейсы. Каждый сотрудник обладает определенной должностью.

Билеты приобретаются пассажирами.

Каждый рейс принадлежит определенной авиакомпании.

Каждый рейс выполняется определенным самолетом в определенный пункт назначения.

На билеты могут быть предусмотрены какие-либо скидки.

Таким образом, перечень сущностей разрабатываемой базы данных следующий:

  • Сотрудники;
  • Билеты;
  • Рейсы;
  • Должности;
  • Пассажиры;
  • Авиакомпании;
  • Самолеты;
  • Пункты назначения;
  • Скидки.

Концептуальная модель предметной области базы данных приведена на рисунке ниже.

Рисунок 2.1. Концептуальная модель предметной области

Атрибуты таблиц базы данных следующие.

Сущность «Билет»:

  • Код;
  • Рейс;
  • Пассажир;
  • Сотрудник;
  • Номер;
  • Вылет.

Сущность «Рейс»:

  • Код;
  • Пункт назначения;
  • Номер рейсса;
  • Дата начала;
  • Дата конца;
  • Авиакомпания;
  • Стоимость билета;
  • Самолёт.

Сущность «Авиакомпания»:

  • Код;
  • Название;
  • Описание;
  • Контакты.

Сущность «Сотрудник»:

  • Код;
  • Фамилия;
  • Имя;
  • Отчество;
  • Телефон;
  • Адрес;
  • Должность;
  • Пароль;
  • Логин.

Сущность «Должности»:

  • Код;
  • Наименование;
  • Описание;
  • Право продавать билеты.

Сущность «Пассажир»:

  • Код;
  • Фамилия;
  • Имя;
  • Отчество;
  • Телефон;
  • Адрес;
  • Паспорт;
  • Скидка.

Сущность «Скидка»:

  • Код;
  • Процент;
  • Название.

Сущность «Самолет»:

  • Код;
  • Бортовой номер;
  • Модель;
  • Вместимость;
  • Дата ввода в эксплуатацию.

Сущность «Пункт назначения»:

  • Код;
  • Название;
  • Адрес;
  • Координаты;
  • Описание.

2.1.2 ER-модель

Логическая модель разработанной базы данных показана на рисунке ниже:

Рисунок 2.2. Логическая модель базы данных

Путем добавления типов данных к атрибутам модели была получена физическая модель базы данных.

Рисунок 2.3. Физическая модель базы данных

2.1.3 Описание структуры базы данных «Программное обеспечение кассы аэропорта»

Таблица 2.1. Должности

Имя поля

Тип данных

Размер

Ключ

Код

Счетчик

Длинное целое

Первичный

Наименование

Длинный текст

255

Описание

Длинный текст

255

Право продавать билеты

Да/Нет

1

Таблица 2.2. Сотрудник

Имя поля

Тип данных

Размер

Ключ

Код

Счетчик

Длинное целое

Первичный

Фамилия

Длинный текст

255

Имя

Длинный текст

255

Отчество

Длинный текст

255

Телефон

Длинный текст

255

Адрес

Длинный текст

255

Должность

Длинное целое

Внешний

Логин

Длинный текст

32

Пароль

Длинный текст

32

Таблица 2.3. Билет

Имя поля

Тип данных

Размер

Ключ

Код

Счетчик

Длинное целое

Первичный

Рейс

Длинное целое

Внешний

Пассажир

Длинное целое

Внешний

Сотрудник

Длинное целое

Внешний

Номер

Длинный текст

50

Вылет

Дата/Время

Полный формат даты

Таблица 2.4. Рейс

Имя поля

Тип данных

Размер

Ключ

Код

Счетчик

Длинное целое

Первичный

Наименование

Длинный текст

255

Пункт назначения

Длинное целое

Внешний

Номер рейса

Длинное целое

Внешний

Дата начала

Дата/Время

Дата окончания

Дата/Время

Авиакомпания

Длинное целое

Внешний

Стоимость билета

Длинное целое

Самолет

Длинное целое

Внешний

Таблица 2.5. Самолет

Имя поля

Тип данных

Размер

Ключ

Код

Счетчик

Длинное целое

Первичный

Бортовой номер

Длинный текст

255

Модель

Длинный текст

255

Вместимость

Длинное целое

Дата ввода

Дата/время

Таблица 2.6. Пункт назначения

Имя поля

Тип данных

Размер

Ключ

Код

Счетчик

Длинное целое

Первичный

Название

Длинный текст

255

Адрес

Длинный текст

255

Координаты

Длинный текст

255

Описание

Memo

Таблица 2.7. Пассажир

Имя поля

Тип данных

Размер

Ключ

Код

Счетчик

Длинное целое

Первичный

Фамилия

Длинный текст

255

Имя

Длинный текст

255

Отчество

Длинный текст

255

Телефон

Длинный текст

32

Адрес

Длинный текст

255

Паспорт

Длинный текст

150

Скидка

Длинное целое

Внешний

Таблица 2.8. Авиакомпания

Имя поля

Тип данных

Размер

Ключ

Код

Счетчик

Длинное целое

Первичный

Название

Длинный текст

255

Описание

Memo

Контакты

Длинный текст

255

Адрес офиса

Длинный текст

255

Таблица 2.9. Скидки

Имя поля

Тип данных

Размер

Ключ

Код

Счетчик

Длинное целое

Первичный

Наименование

Длинный текст

255

Процент

Длинное целое

2.1.4 Схема базы данных «Программное обеспечение кассы аэропорта»

Схема базы данных в Access 2013 показана на рисунке ниже.

Рисунок 2.4. Схема базы данных в Access

2.2 Структурная схема пользовательского приложения

Структурная схема пользовательского приложения показана на рисунке ниже.

Рисунок 2.5. Структурная схема пользовательского приложения

2.3. Разработка приложения

После того, как база данных создана, необходимо организовать её связь с программой в Delphi. Наша задача состоит в том, чтобы организовать такое взаимодействие без использования дополнительных SQL-запросов и представлений.

Итак, создаем проект Delphi. Для того, чтобы таблицы обрабатывались централизованно (что в дальнейшем значительно облегчит работу с ними) мы будем использовать компонент типа Data Module. Data Module – это разновидность формы Delphi, на которой не может быть представлено никаких визуальных компонентов, кроме компонентов, предназначенных для работы с базами данных.

Создаем такой модуль, выбрав в главном меню File – New – Data Module. Сохраним программную часть этого компонента под названием UDataModule.

Разместим в данном модуле компонент ADOConnection для связи с базой данных. Для того, чтобы иметь доступ к БД, необходимо указать в свойстве ConnectionString данного компонента строку подключения к базе данных.

Для этого нажимаем на кнопку с тремя точками рядом с этим свойством. На экран выводится следующее окно.

Рисунок 2.6 – Свойства подключения

Далее нажимаем кнопку Build и настраиваем соединение с базой данных, указывая расположение базы данных.

Рисунок 2.7 – Настройка подключения к базе данных

Для проверки соединения можно нажать на кнопку «Проверить подключение». Если выведется сообщение о том, что подключение успешно, то данные правильны. После нажатия на кнопку «ОК» строка соединения будет сформирована.

Разместим на полученном модуле несколько компонентов типа ADOTable и несколько компонентов типа DataSource, дав им соответствующие имена.

После того, как мы добавили компоненты и указали их свойства, необходимо создать связи внешних ключей в одних таблицах с ключевыми в других, чтобы при отображении на компоненте DBGrid можно было выбирать значения из списка и значения соответствующих ключевых полей подставлялись в таблицу автоматически. Для этого используется поле таблицы типа fkLookup.

Сначала настроим такие связи для таблицы TSotrudnik. Для этого два раза щелкаем мышью по таблице на форме. Появляется редактор полей. Сейчас он пуст. В него необходимо добавить все поля таблицы. Для этого нажимаем в поле редактора правой кнопкой мыши и выбираем в контекстном меню Add Fields. Появится список, в котором автоматически будут выделены все поля, содержащиеся в исходной таблице. Нажимаем ОК, поля будут добавлены в редактор.

Теперь создадим подстановочные поля. Для этого нажимаем правой кнопкой в окне редактора, и выбираем «New Field».

В появившемся окне необходимо указать следующие параметры:

Рисунок 2.8 – Создание Lookup поля

Поясним эти параметры.

В поле Name указывается название поля. Можно указать любое не дублирующееся с имеющимся название.

В поле Type указывается тип данных в поле. Для корректной работы необходимо выбрать значение Variant.

Поле Field Type указывает на тип поля. Необходимо указать тип Lookup.

Поле Key Fields указывает поле в исходной таблице для подстановки ключевого значения.

Поле Dataset указывает на таблицу, из которой будут браться значения для автоподстановки в таблицу.

Поле Lookup Keys указывает значения ключевых полей, которые будут подставляться.

Поле Result Fields указывает поля с названиями ключевых полей.

Нажимаем на кнопку OK. Таким образом мы добавили поле типа Lookup в таблицу TSotrudnik

Остальные ключевые поля для этой и других таблиц создаются аналогичным образом.

2.4 Описание пользовательского интерфейса приложения

Работа приложения начинается с отображения формы входа.

Здесь необходимо ввести логин и пароль пользователя.

Рисунок 2.9. Форма входа

После этого на экране отобразится главное окно программы.

Рисунок 2.10. Главное окно программы

Из этого окна с помощью специальных кнопок можно переходить к другим формам.

Форма ввода билетов выглядит следующим образом:

Рисунок 2.11. Форма ввода билетов

Форма ввода рейсов выглядит следующим образом:

Рисунок 2.12. Форма ввода рейсов

Форма ввода сотрудников выглядит следующим образом.

Рисунок 2.13. Форма ввода сотрудников

Форма ввода пассажиров выглядит следующим образом.

Рисунок 2.14. Форма ввода пассажиров

Остальные формы выполнены аналогичным образом.

Заключение

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

Для написания программы необходимо было освоить новые технологии, а именно язык программирования Delphi.

Разработанный программный продукт отвечает всем требованиям задания на дипломную работу. Интерфейс написан на современном языке программирования Delphi и имеет простую и понятную навигацию. При необходимости данная программа может быть легко модернизирована и расщирен ее функционал.

Список литературы

  1. Виллариал Б. Программирование Access 2012 в примерах. Пер с англ. – М.: Кудиц-Образ, 2015. – 496 с.
  2. Гайдамакин Н.А. Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие. – М.: Гелиос АРВ, 2015. – 368 с., ил.
  3. Гринченко Н.Н., Гусев Е.В., Макаров Н.П., Пылькин А.Н., Цуканова Н.И. Проектирование баз данных. СУБД Microsoft Access. Учебное пособие для ВУЗов. М.: Горячая линия-Телеком, 2014. – 240 с., ил.
  4. Дейт К.Дж. Введение в системы баз данных, 8-е издание. Пер с англ. М. ИД «Вильямс», 2015. – 1328 с., ил.
  5. Кауфельд Джон. Access 2003 для «чайников». Пер с англ. – М.: Вильямс, 2014. – 320 с., ил.
  6. Кошелев В.Е. Access 2017. М.: Бином-Пресс, 2017. – 592 с., ил.
  7. Культин Н. Основы программирования в Delphi XE. СПб.: БХВ, 2016. – 416 с.
  8. Маклаков С.В. Создание информационных систем с AllFusion Modelling Suite. – М.: Диалог-МИФИ, 2015. – 432 с.
  9. Осипов Д. Л. Базы данных и Delphi. Теория и практика. СПб.: BHV, 2015.
  10. Осипов Д. Delphi XE2. СПб.: БХВ, 2016. – 626 с.
  11. Петров В.Н. Информационные системы. Спб.: Питер, 2016. – 688 с., ил.
  12. Петкович Д. Microsoft SQL Server 2012. Руководство для начинающих. СПб.: БХВ, 2014. – 567 с.
  13. Понамарев В. Самоучитель Delphi XE8 Studio. СПб.: БХВ, 2016.
  14. Рудикова Л.В. Базы данных. Разработка приложений. СПб.: БХВ-Петербург, 2017. – 496 с.: ил.
  15. Хойтек А. Microsoft SQL Server 2018. Реализация и обслуживание. Учебный курс Microsoft. М.: Русская редакция, 2018. – 576 с.
  16. Станек У.Р. Microsoft SQL Server. Справочник администратора. СПб.: БХВ, 2016.
  17. Стивенс Р. Программирование баз данных. Изд. 2-е. Пер. с англ. – М.: Бином-Пресс, 2016. – 384 с., ил.
  18. Фараонов В. DELPHI. Программирование на языке высокого уровня: Учебник для вузов. СПб.: Питер, 2015.
  19. Фленов М. Библия Delphi. СПб.: БХВ, 2017. – 676 с.

Приложение А

Рейс

Код

Наименование

пункт назначени

номер рейса

дата начала

дата конца

название авиакомпании

стоимость билета

самолет

1

Рейс 1

1

1AF

14.02.2018

04.11.2018

1

10000

2

Рейс 2

2

2AF

15.07.2018

31.12.2018

2

12000

3

Рейс 3

1

3DD

21.07.2018

14.07.2018

3

5000

4

Рейс 4

2

4CD

02.05.2018

04.07.2018

3

7000

5

Рейс 5

3

2AD

14.02.2018

15.07.2010

1

2000

6

Рейс6

4

12DS

15.07.2018

31.12.2018

1

12000

7

Рейс 7

5

13DF

21.07.2018

14.07.2018

2

8000

8

Рейс 8

4

12DF

02.05.2018

01.04.2018

2

10000

9

Рейс 9

3

27BA

16.09.2018

31.12.2018

2

1391

10

Рейс 10

3

19CB

02.06.2018

25.12.2018

4

10095

11

Рейс 11

2

23DC

03.12.2008

24.08.2018

2

14502

12

Рейс 12

2

31ED

27.04.2018

05.01.2018

3

10359

13

Рейс 13

2

30FE

20.03.2018

31.12.2018

1

12999

14

Рейс 14

1

31AF

20.02.2018

22.08.2018

2

2142

15

Рейс 15

2

35BA

05.06.2018

23.03.2018

4

14955

Билет

Код

Рейс

Пассажир

Сотрудник

Номер

Вылет

1

5

3

2

1a11

25.07.2018

2

1

2

4

2a11

25.07.2018

3

1

3

4

3a11

25.07.2018

4

2

4

4

3a111

25.07.2018

5

1

5

4

5a11

25.07.2018

6

1

6

2

1б11

08.03.2018

7

2

2

2

1б11

08.03.2018

8

2

3

2

2б11

08.03.2018

9

2

4

2

3б11

08.03.2018

10

2

5

2

10A

08.03.2018

11

2

1

3

20B

08.03.2018

12

2

2

3

30C

22.03.2018

13

3

3

3

40A

22.03.2018

14

3

4

3

50B

22.03.2018

15

3

5

4

60C

22.03.2018

16

3

6

3

70A

22.03.2018

17

3

1

3

80B

22.03.2018

18

3

2

3

90C

22.03.2018

19

4

33

3

100A

22.03.2018

20

4

34

3

110B

22.03.2018

21

4

35

3

120C

06.10.2018

22

4

36

2

130A

06.10.2018

23

4

37

3

140B

06.10.2018

24

5

38

3

150C

06.10.2018

25

5

39

3

160A

06.10.2018

Пассажир

Код

Скидка

Фамилия

Имя

Отчество

Телефон

Адрес

Паспорт

1

1

Иванов

Иван

Иванович

123-456-789

улица Центральная 1

3425425

2

2

Петров

Петр

Петрович

3231-434-2134

проспект Космонавтов 213-12

632252342

3

Сидоров

Елена

Сергеевна

34-43-432

улица Мира 45-4

23421312

4

3

Сухов

Семен

Валентинович

340-454-3452

КОММУНИСТИЧЕСКАЯ 9-63

52234252

5

Николашин

Александр

Петрович

423534534

ВЯЗЕМСКОГО 25В-21

42456362134

6

4

Тимофеева

Елена

Сергеевна

63635225

МАРЕСЬЕВА 120-2

424252452

7

Гостева

Анна

Александровна

ТЕЛ 343720666

ОСТРОВСКОГО 10-40

10872939

8

1

Цыбочкин

Василий

Михайлович

ТЕЛ 351883004

ОСТРОВСКОГО 6-78

14144149

9

2

Легошина

Марина

Владимировна

ТЕЛ 360045342

ВЯЗЕМСКОГО 21-3

11393603

10

Пигалёва

Дина

Николаевна

ТЕЛ 368207680

КОММУНИСТИЧЕСКАЯ 36-27

14068078

11

Арбузова

Александра

Федоровна

ТЕЛ 376370018

КОММУНИСТИЧЕСКАЯ 38-4

14296566

12

Свистунова

Клавдия

Николаевна

ТЕЛ 384532356

БЕКЕШСКАЯ 8-6

13263457

13

Тараскина

Мария

Фёдоровна

ТЕЛ 392694694

ФУРМАНОВА 1-52

10125933

14

2

Гусева

Анна

Григорьевна

ТЕЛ 400857032

8 МАРТА 15-330

11953991

15

Каменева

Евгения

Леонидовна

ТЕЛ 409019370

КОММУНИСТИЧЕСКАЯ 9-33

12839325

16

3

Филатов

Сергей

Викторович

ТЕЛ 417181708

ВОРОШИЛОВА 18-37

14166642

17

3

Калмыкова

Мария

Ивановна

ТЕЛ 425344046

ВОРОШИЛОВА 24-54

12004875

18

4

Кособоков

Александр

Петрович

ТЕЛ 433506384

ВЯЗЕМСКОГО 31-9

14179782

19

Шафеева

Наиля

Асятовна

ТЕЛ 441668722

ВЕСЕННЯЯ 16

11703159

20

1

Мусаков

Петр

Сергеевич

ТЕЛ 449831060

ПОБЕДЫ 24-77

11561287

21

2

Акишина

Наталья

Дмитриевна

ТЕЛ 457993398

ПОБЕДЫ 14А-57

10067504

22

Гурова

Елена

Николаевна

ТЕЛ 466155736

ПОБЕДЫ 14А-49

11412786

23

3

Зайкова

Светлана

Александровна

ТЕЛ 474318074

ПОБЕДЫ 16-14

12585862

24

Тележкин

Константин

Николаевич

ТЕЛ 482480412

8 МАРТА 25-339

14294464

25

3

Мухин

Василий

Николаевич

ТЕЛ 490642750

КАРПИНСКОГО 33-182

13900580

26

Галкин

Валерий

Иванович

ТЕЛ 498805088

БЕКЕШСКАЯ 10-8

13508964

27

4

Симакина

Мария

Степановна

ТЕЛ 506967426

ВЯЗЕМСКОГО 37-1

10561186

28

Авилов

Михаил

Григорьевич

ТЕЛ 515129764

ФУРМАНОВА 3-44

12218081

29

1

Пономарев

Александр

Васильевич

ТЕЛ 523292102

КАРПИНСКОГО 7-9

11829060

30

Родимин

Валентин

Иосифович

ТЕЛ 531454440

ФУРМАНОВА 1-42

10008987

31

Чернов

Станислав

Михайлович

ТЕЛ 539616778

ФУРМАНОВА 7-50

13046084

32

Кулагина

Вера

Васильевна

ТЕЛ 547779116

ПОБЕДЫ 24-79

11015905

33

Головина

Марина

Анатольевна

ТЕЛ 555941454

КАРПИНСКОГО 7-71

11273285

34

Каширов

Сергей

Иванович

ТЕЛ 564103792

ОСТРОВСКОГО 4-114

11950433

35

Волкова

Любовь

Петровна

ТЕЛ 572266130

ОСТРОВСКОГО 10-83

11861938

36

2

Комракова

Валентина

Григорьевна

ТЕЛ 580428468

КАРПИНСКОГО 23-44

13160750

37

Лукьяненко

Нина

Николаевна

ТЕЛ 588590806

ПОБЕДЫ 12А-19

12747298

38

3

Миронова

Клавдия

Алексеевна

ТЕЛ 596753144

СУВОРОВА 192-69

10563020

39

Страчкова

Елена

Николаевна

ТЕЛ 604915482

ПОБЕДЫ 20-31

11131532

40

4

Кожевникова

Инна

Николаевна

ТЕЛ 613077820

КАРПИНСКОГО 7-52

10782896

41

Шишкина

Анна

Ивановна

ТЕЛ 621240158

КОММУНИСТИЧЕСКАЯ 38-92

10149077

42

1

Травина

Татьяна

Александровна

ТЕЛ 629402496

8 МАРТА 15-488

11750321

43

2

Рьянова

Ольга

Вячеславовна

ТЕЛ 637564834

КОММУНИСТИЧЕСКАЯ 9-8

14686858

44

Сюзюмова

Мария

Ивановна

ТЕЛ 645727172

ПОБЕДЫ 12А-11

10477153

45

Устинов

Алексей

Осипович

ТЕЛ 653889510

КАРПИНСКОГО 7-67

10868784

46

Ковылова

Виктория

Викторовна

ТЕЛ 662051848

ОСТРОВСКОГО 16-5

11120483

47

Губина

Мария

Андреевна

ТЕЛ 670214186

КОММУНИСТИЧЕСКАЯ 38-49

14664921

48

Панферов

Николай

Леонтьевич

ТЕЛ 678376524

КАРПИНСКОГО 10-65

11617495

49

Чигирева

Светлана

Анатольевна

ТЕЛ 686538862

БЕКЕШСКАЯ 8

10182550

50

Кручинина

Валентина

Викторовна

ТЕЛ 694701200

КОММУНИСТИЧЕСКАЯ 29-5

11436367

51

Шмелева

Татьяна

Геннадьевна

ТЕЛ 702863538

ЯБЛОЧКОВА 1-Й 35-1

10518256

52

Гостяев

Иван

Алексеевич

ТЕЛ 711025876

ПОБЕДЫ 12-23

14266677

53

Архангельская

Галина

Георгиевна

ТЕЛ 719188214

КОММУНИСТИЧЕСКАЯ 35-82

14163030

54

Кочеткова

Светлана

Михайловна

ТЕЛ 727350552

8 МАРТА 9-134

14265195

55

Кудрявцева

Нина

Ивановна

ТЕЛ 735512890

ЯБЛОЧКОВА 1-Й 35-2

11154116

56

Сергеев

Александр

Федорович

ТЕЛ 743675228

ФУРМАНОВА 11-12

12379461

57

Коломеец

Анастасия

Владимировна

ТЕЛ 751837566

КАРПИНСКОГО 19-17

12506713

58

Кауфман

Светлана

Петровна

ТЕЛ 759999904

КАРПИНСКОГО 19-42

10136758

59

Марухин

Александр

Павлович

ТЕЛ 768162242

ОСТРОВСКОГО 14-21

11744070

60

Макушева

Людмила

Николаевна

ТЕЛ 776324580

ПОБЕДЫ 14А-12

10434155

61

Андреева

Елена

Тимофеевна

ТЕЛ 784486918

КАРПИНСКОГО 1-37

14126968

62

Рахматулина

Гульжиган

Алимовна

ТЕЛ 792649256

КАРПИНСКОГО 19А-15

10543370

63

Сердюкова

Елена

Дмитриевна

ФУРМАНОВА 11-81

13306434

64

Горячев

Анатолий

Алексеевич

КОММУНИСТИЧЕСКАЯ 45-5

11582808

65

Логунова

Татьяна

Борисовна

ВЯЗЕМСКОГО 45-45

14065956

66

Новикова

Зоя

Егоровна

КАРПИНСКОГО 7-20

11463911

67

Федосеева

Юлия

Францевна

ОСТРОВСКОГО 17-27

14358707

68

Резниченко

Лидия

Александровна

КОММУНИСТИЧЕСКИЙ 9-2

10912793

69

Шуваева

Галина

Николаевна

ПОБЕДЫ 12А-6

10270569

70

Брюхова

Светлана

Николаевна

ПОБЕДЫ 16-53

11316113

71

Середавина

Валентина

Александровна

КАРПИНСКОГО 45-191

12147582

72

Андреева

Ольга

Вячеславовна

КАРПИНСКОГО 41-78

10826699

73

Смирнова

Валентина

Васильевна

ФУРМАНОВА 11-19

11458423

74

Чуприкова

Лидия

Александровна

КАРПИНСКОГО 19-12

10132254

75

Арянин

Николай

Васильевич

КАРПИНСКОГО 25-80

10869023

76

Крутецкая

Надежда

Алексеевна

ФУРМАНОВА 7-24

10506245

Самолет

Код

Бортовой номер

Модель

Вместимость

Дата ввода

1

АВВА 12

Boeing 777

200

12.01.2000

2

FDFSD122

Boeing 777

200

12.10.2001

3

SFFS897

Boeing 737

170

12.10.2001

4

FSDFS2412

Suhoy Super Jet 100

120

12.10.2001

5

CZC314

Suhoy Super Jet 100

120

12.10.2001

6

LKD13135

Suhoy Super Jet 100

120

12.10.2001

Приложение B

Исходный код модуля UMain.pas

unit UMain;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UDataModule, Data.DB, Vcl.Grids,

Vcl.DBGrids, Vcl.StdCtrls, Vcl.Buttons;

type

TMain = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

BitBtn7: TBitBtn;

BitBtn8: TBitBtn;

BitBtn9: TBitBtn;

procedure FormShow(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure BitBtn8Click(Sender: TObject);

procedure BitBtn9Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Main: TMain;

implementation

{$R *.dfm}

uses ULogin, UBilety, UReis, UAvia, USotrudnik, UDoljnost, UPassajir, USamolet,

USkidka, UPunkt;

procedure TMain.BitBtn1Click(Sender: TObject);

begin

Bilety.Show;

end;

procedure TMain.BitBtn2Click(Sender: TObject);

begin

Reis.Show;

end;

procedure TMain.BitBtn3Click(Sender: TObject);

begin

Avia.Show;

end;

procedure TMain.BitBtn4Click(Sender: TObject);

begin

Sotrudnik.Show;

end;

procedure TMain.BitBtn5Click(Sender: TObject);

begin

Doljnost.Show;

end;

procedure TMain.BitBtn6Click(Sender: TObject);

begin

Passajir.Show;

end;

procedure TMain.BitBtn7Click(Sender: TObject);

begin

Samolet.Show;

end;

procedure TMain.BitBtn8Click(Sender: TObject);

begin

Skidka.Show;

end;

procedure TMain.BitBtn9Click(Sender: TObject);

begin

Punkt.Show;

end;

procedure TMain.FormShow(Sender: TObject);

begin

DataModule1.ADOConnection1.Connected:=False; //Отключаем текущее подключение

//Далее динамически формируем строку подключения с указанием пути к базе данных

DataModule1.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+ExtractFilePath(Application.ExeName)+'db.mdb;';

DataModule1.ADOConnection1.ConnectionString:=DataModule1.ADOConnection1.ConnectionString+'Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";';

DataModule1.ADOConnection1.ConnectionString:=DataModule1.ADOConnection1.ConnectionString+'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;';

DataModule1.ADOConnection1.ConnectionString:=DataModule1.ADOConnection1.ConnectionString+'Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;';

DataModule1.ADOConnection1.ConnectionString:=DataModule1.ADOConnection1.ConnectionString+'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;';

//Активируем все таблицы (они отключились при отключении от базы данных)

With DataModule1 do

begin

TBilet.Active:=true;

TReysy.Active:=true;

TAvia.Active:=true;

TPunkt.Active:=true;

TDoljnost.Active:=true;

TSotrudnik.Active:=true;

TPassajir.Active:=true;

TSkidka.Active:=true;

TSamolet.Active:=true;

end;

Login.ShowModal;

end;

end.

Исходный код модуля ULogin.pas

unit ULogin;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, UDataModule, StdCtrls, Buttons, Mask, ExtCtrls, UMain;

type

TLogin = class(TForm)

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

MaskEdit1: TMaskEdit;

BitBtn1: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Login: TLogin;

implementation

{$R *.dfm}

procedure TLogin.BitBtn1Click(Sender: TObject);

begin

DataModule1.QLogin.Active:=False;

DataModule1.QLogin.SQL.Clear;

DataModule1.QLogin.SQL.Add('SELECT * FROM Сотрудник WHERE Логин='''+Edit1.Text+''' AND Пароль='''+MaskEdit1.Text+'''');

DataModule1.QLogin.Active:=True;

If DataModule1.QLogin.RecordCount>0 then

begin

Login.Close

end else

begin

ShowMessage('Пользователь не найден!');

Application.Terminate;

end;

end;

procedure TLogin.FormClose(Sender: TObject; var Action: TCloseAction);

begin

If DataModule1.QLogin.Active=true then

begin

if DataModule1.QLogin.RecordCount=0 then Application.Terminate;

end else Application.Terminate;

end;

end.

Исходный код модуля UAvia.pas

unit UAvia;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UDataModule, Data.DB, Vcl.ExtCtrls,

Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids;

type

TAvia = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Avia: TAvia;

implementation

{$R *.dfm}

end.

Исходный код модуля USamolet.pas

unit USamolet;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UDataModule, Data.DB, Vcl.ExtCtrls,

Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids;

type

TSamolet = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Samolet: TSamolet;

implementation

{$R *.dfm}

end.

Исходный код модуля UReis.pas

unit UReis;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UDataModule, Data.DB, Vcl.ExtCtrls,

Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids;

type

TReis = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Reis: TReis;

implementation

{$R *.dfm}

end.

Исходный код модуля UBilet.pas

unit UBilety;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UDataModule, Data.DB, Vcl.Grids,

Vcl.DBGrids, Vcl.ExtCtrls, Vcl.DBCtrls;

type

TBilety = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Bilety: TBilety;

implementation

{$R *.dfm}

end.

Исходный код модуля UDataModule.pas

unit UDataModule;

interface

uses

System.SysUtils, System.Classes, Data.DB, Data.Win.ADODB;

type

TDataModule1 = class(TDataModule)

ADOConnection1: TADOConnection;

QLogin: TADOQuery;

DSLogin: TDataSource;

Treysy: TADOTable;

TAvia: TADOTable;

TPunkt: TADOTable;

TBilet: TADOTable;

TDoljnost: TADOTable;

TSotrudnik: TADOTable;

TPassajir: TADOTable;

TSkidka: TADOTable;

TSamolet: TADOTable;

DSReis: TDataSource;

DSAvia: TDataSource;

DSPunkt: TDataSource;

DSBilet: TDataSource;

DSDoljnost: TDataSource;

DSSotrudnik: TDataSource;

DSPassajir: TDataSource;

DSSkidka: TDataSource;

DSSamolet: TDataSource;

TreysyКод: TAutoIncField;

Treysyпунктназначени: TIntegerField;

Treysyномеррейса: TWideStringField;

Treysyдатаначала: TDateTimeField;

Treysyдатаконца: TDateTimeField;

Treysyназваниеавиакомпании: TIntegerField;

Treysyстоимостьбилета: TIntegerField;

Treysyсамолет: TIntegerField;

TreysyПункт_назанчения_: TStringField;

TreysyАвиакомпания_: TStringField;

TAviaКод: TAutoIncField;

TAviaНазвание: TWideStringField;

TAviaОписание: TWideMemoField;

TAviaКонтакты: TWideStringField;

TAviaАдресглофиса: TWideStringField;

TPunktКод: TAutoIncField;

TPunktНазвание: TWideStringField;

TPunktАдрес: TWideStringField;

TPunktКординаты: TWideStringField;

TPunktОписание: TWideMemoField;

TBiletКод: TAutoIncField;

TBiletРейс: TIntegerField;

TBiletПассажир: TIntegerField;

TBiletСотрудник: TIntegerField;

TBiletНомер: TWideStringField;

TBiletВылет: TDateTimeField;

TDoljnostКод: TAutoIncField;

TDoljnostНаименование: TWideStringField;

TDoljnostОписание: TWideMemoField;

TDoljnostПравопродаватьбилеты: TBooleanField;

TSotrudnikКод: TAutoIncField;

TSotrudnikФамилия: TWideStringField;

TSotrudnikИмя: TWideStringField;

TSotrudnikОтчество: TWideStringField;

TSotrudnikТелефон: TWideStringField;

TSotrudnikАдрес: TWideStringField;

TSotrudnikДолжность: TIntegerField;

TSotrudnikПароль: TWideStringField;

TSotrudnikЛогин: TWideStringField;

TSotrudnikДолжность_: TStringField;

TPassajirКод: TAutoIncField;

TPassajirФамилия: TWideStringField;

TPassajirИмя: TWideStringField;

TPassajirОтчество: TWideStringField;

TPassajirТелефон: TWideStringField;

TPassajirАдрес: TWideStringField;

TPassajirПаспорт: TWideStringField;

TPassajirСкидка: TIntegerField;

TPassajirСкидка_: TStringField;

TSamoletКод: TAutoIncField;

TSamoletБортовойномер: TWideStringField;

TSamoletМодель: TWideStringField;

TSamoletВместимость: TIntegerField;

TSamoletДатаввода: TDateTimeField;

TreysyНаименование: TWideStringField;

TBiletРейс_: TStringField;

TBiletПассажир_: TStringField;

TBiletСотрудник_: TStringField;

TreysyСамолет_: TStringField;

private

{ Private declarations }

public

{ Public declarations }

end;

var

DataModule1: TDataModule1;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

{$R *.dfm}

end.