Автор работы: Пользователь скрыл имя, 06 Октября 2009 в 18:45, Не определен
программа + пояснительная записка
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
среднего профессионального образования
Уфимский колледж статистики информатики и
вычислительной техники
УТВЕРЖДАЮ
Заместитель директора по учебной работе __________З.З. Курмашева «___» ___________ 2007г. |
Руководитель __________ О.Н. Петрова «___» ____________2007г. | |
Студент гр. 3П-4
___________Д.И. Конкин «___» ____________2007г. |
2007
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
среднего профессионального образования
Уфимский колледж статистики информатики и
вычислительной техники
УТВЕРЖДАЮ
Заместитель директора по учебной работе _________З.З. Курмашева «___» ___________ 2007г. |
ЗАДАНИЕ
На курсовой проект студенту дневного отделения, группы 3П-4, специальности 230105 «Программное обеспечение ВТ и АС» Конкину Дмитрию Игоревичу
(Фамилия, имя, отчество)
Тема: «Автоматизация работы агентства по продаже авиабилетов»
Введение
1.1 Описание предметной области
1.2 Информационная модель
1.3 Входная информация
1.4 Выходная информация
1.5 Описание структуры БД
1.6 Функциональная схема задачи
1.7 Контрольный пример
2. Экспериментальный раздел
2.1 Техническое задание
2.1.1 Основание для разработки
2.1.2 Назначение разработки
2.1.3 Требования к программе
2.1.4 Требования к надёжности
2.1.5 Требования к составу и параметрам технических средств
2.2 Описание программы
2.2.1 Описание модулей
2.2.2 Модульная схема задачи
2.2.3 Описание алгоритма
2.3 Руководство пользователя
3. Программа и протокол тестирования
Заключение
Приложения
Список литературы
II. Графическая часть должна содержать лист формата А1 Информационная модель.
III. Электронный носитель должен содержать исходные тексты программ
и выполняемые файлы.
IV. Список рекомендуемой литературы:
Задание к выполнению получил «13 февраля 2007г.
Студент Конкин Дмитрий Игоревич
Срок окончания «30» мая 2007г.
Руководитель курсового проекта _______________ О.Н. Петрова
Задание рассмотрено на заседании цикловой комиссии информатики и программирования №6 «03» февраля 2007г.
Председатель комиссии _____________ Р.Ф. Каримова
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
среднего профессионального образования
Уфимский колледж статистики информатики и
вычислительной
техники
ЗАКЛЮЧЕНИЕ
на курсовой проект по теме: «Автоматизация работы агентства по продаже авиабилетов»
Студент – Конкин Д.И. группа 3П-4, специальность 230105, дневное отделение
Текст
заключения: ______________________________
Руководитель курсового проекта ___________ О.Н. Петрова
«___» ________________ 2007г.
Должность
и место работы: заведующая
отделением ПО Уфимского
колледжа статистики
информатики и вычислительной
техники
АННОТАЦИЯ
Пояснительная записка к курсовому проекту содержит постановку и программу решения задачи «Автоматизация работы агентства по продаже авиабилетов».
Задача
написана в среде Delphi 7 на языке Object
Pascal, автоматизирована программой Agentstvo.exe
и отлажена на данных контрольного примера.
СОДЕРЖАНИЕ
Лист | |
Введение |
4 |
|
6 |
|
6 |
|
8 |
|
9 |
|
11 |
|
13 |
|
14 |
|
15 |
|
17 |
|
17 |
2.1.1 Основание для разработки |
17 |
2.1.2 Назначение разработки |
17 |
2.1.3 Требования к программе |
17 |
2.1.4 Требования к надёжности |
17 |
2.1.5 Требования к составу и параметрам технических средств |
17 |
|
18 |
2.2.1 Модульная схема задачи |
18 |
2.2.2 Описание модулей |
19 |
2.2.3 Описание алгоритма |
22 |
2.3 Руководство пользователя |
23 |
3
Программа и протокол |
28 |
Заключение |
29 |
Приложения | 20 |
Список литературы | 52 |
ВВЕДЕНИЕ
В настоящее время развитие науки и техники неразрывно связано с вычислительной техникой (ВТ). С помощью ВТ нового поколения повысились скорость и объем обрабатываемой информации, а также качество этой обработки. Сейчас невозможно представить многие области человеческой деятельности без вычислительной техники.
В 1949г. был построен первый компьютер на электронных лампах, в котором были воплощены принципы работ фон Неймана. За все это время сменилось четыре поколения ЭВМ. Ясно, что каждое новое поколение является модернизированной формой старых поколений. Эта модернизация заключается в улучшении технико-экономических показателей: быстродействия, надежности, стоимости.
Последнее поколение ВТ – это микропроцессорные вычислительные машины, которые популярны во многих странах вот уже на протяжении многих лет.
В настоящее время индустрия производства компьютеров и программного обеспечения для них является одной из наиболее важных сфер экономики развитых стран. Ежегодно в мире продаются десятки миллионов компьютеров.
Можно выделить несколько основных направлений использования ВТ:
Вычислительная
техника позволяет
В
наши дни развитие такой сферы
общества, как авиационный транспорт,
очень важно. Множеству людей
изо дня в день, в любое время
года необходимо использование воздушного
транспорта – для путешествий, бизнеса
и т.д. Надежное распределение билетов
играет в этом одну из главных ролей. Автоматизация
продажи билетов существенно облегчит
деятельность предприятий, занимающихся
этим. Необходимость автоматизации данной
задачи появилась в связи с тем, что информация
о рейсах, которые имеются в агентстве
(номер рейса, количество свободных мест,
пункты отправления и назначения, дата,
время вылета и другие сведения) могут
быть затребованы, а поиск их на бумажных
носителях затруднителен.
Рассмотрим агентство по продаже авиабилетов на различные рейсы. Агентство ведёт учёт проданных билетов и учёт пассажиров, купивших билеты.
Необходимо обеспечить ввод, хранение и редактирование данных. В определенных случаях необходимо выполнять удаление данных.
В связи с этим существует необходимость в хранении информации и обработке данных, сгруппированных следующим образом:
- информация о расписании рейсов (номер рейса, тип самолёта, пункт отправления, пункт назначения, дата вылета, время вылета, время полёта, цена билета);
- информация о свободных местах на рейс (номер рейса, дата вылета, общее количество мест, количество свободных мест);
- информация о пассажирах, заказавших билет (фамилия, имя, отчество, предъявленный документ, его серия и номер, номер рейса, дата вылета);
Особенностью данной задачи является разграничение прав доступа определённых групп пользователей, т.е. информация в базе данных может использоваться как пассажирами, так и служащими агентства: кассирами и диспетчерами. Таким образом, для защиты базы данных от несанкционированного использования выделяются три группы пользователей: пассажир, кассир и администратор. Кроме того, для каждой из групп пользователей следует предусмотреть набор механизмов по управлению данными, обеспечивающих лёгкость применения и функциональность этого программного продукта (например, фильтрация, сортировка и поиск записей).
Общей целью задачи является быстрое и удобное получение информации о рейсах, хранение, обновление и редактирование этих данных, отправление в архив выполненных рейсов, а также ввод данных о рейсах с таким же номером на очередную дату.
Входными данными для базы пассажиров являются:
ФИО;
Серия, номер паспорта; Класс; Место;
Номер рейса
Входными данными для базы самолётов являются:
Код самолёта; Тип самолёта; Общее количество мест;
Входными данными для базы расписания рейсов являются:
Код
рейса; Номер рейса; Код самолёта;
Дата отправления; День отправления;
Время отправления; Дата прибытия; День
прибытия; Время прибытия;
Входными данными для базы рейсов являются:
Номер
рейса; Пункт отправления; Пункт
назначения; Время полёта; Цена билета
Основной
экономический эффект достигается
за счёт сокращения времени оформления
входной и выходной информации. Сокращение
времени происходит за счет компактного
отображения данных.
1.2. Информационная модель.
Входным
документоми, предоставляемыми пассажиром
для базы данных является паспорт, загранпаспорт
(предоставляется по мере необходимости).
Таблица 1
Описание входных документов
Наименование документа | Дата поступления | От кого поступает |
1 | 2 | 3 |
Паспорт | При покупке билета | От пассажира |
Загранпаспорт | При покупке билета | От пассажира |
Входные
данные, предоставляемые администратору:
расписание рейсов и технические характеристики
самолетов.
Таблица 2
Описание
входных документов
Наименование документа | Дата поступления | От кого поступает |
1 | 2 | 3 |
Расписание рейсов | Конец месяца | Из отдела составления
плана пассажирских
перевозок |
Тех. характеристики самолётов | При поступлении нового самолёта | Из отдела технического обеспечения |
На
основании этих данных создаются
следующие файлы: Passagiry.db, Raspisanie_reysov.db,
Reysy.db, Samolety.db, Sam_pas_promeg.db, Sam_rasp_promeg.db.
Рис.1 «Паспорт»
Рис.2 «Расписание рейсов»
Рис.3 «Технические
характеристики самолетов»
1.4. Описание выходной информации
Выходной
информацией для данной задачи является
архив с информацией о
Таблица 3
Описание выходной информации
Наименование документа | Дата поступления | Куда передаётся |
Отчет о выполненных рейсах | По необходимости | Администратору, пассажиру |
Отчёт о пассажирах | По необходимости | Администратору, пассажиру |
Формы выходных
документов:
Выполненные рейсы | ||||
№ рейса | Пункт оправления | Пункт назначения | Цена билета | Время полета |
1 | ||||
2 | ||||
… | ||||
N |
Рис.4 «Выполненные
рейсы»
Таблица 4
Наименование файла | Название файла | Наименование реквизитов | Шифр реквизитов | Форма представления |
База пассажиров | Passagiry.db | Код пассажира | Kod_passagira | Autoincrement |
ФИО | FIO | Alpha | ||
Серия, номер док-та | Seriya, nomer | Alpha | ||
Место | Mesto | Alpha | ||
Класс | Klass | Short | ||
Номер рейса | Nomer_reysa | Number | ||
База самолетов | Samolety.db | Код самолёта | Kod_samoleta* | Number |
Тип самолёта | Tip_samoleta | Alpha | ||
Общее кол-во мест | Kol_vo_mest | Number | ||
База расписания рейсов | Raspisanie_reysov.db | Код рейса | Kod_reysa | Autoincrement |
Номер рейса | Nomer_reysa** | Number | ||
Код самолёта | Kod_samoleta | Number | ||
Дата отправления | Data_otpravleniya | Date | ||
День отправления | Den_otpravleniya | Alpha | ||
Время отправления | Vremya_otpravleniya | Time | ||
Дата прибытия | Data_pribytiya | Date | ||
День прибытия | Den_pribytiya | Alpha | ||
Время прибытия | Vremya_pribytiya | Time | ||
База рейсов | Reysy.db | Номер рейса | Nomer_reysa | Autoincrement |
Пункт отправления | Punkt_otpravl | Alpha | ||
Пункт назначения | Punkt_naznach | Alpha | ||
Цена билета | Cena_bileta | Money | ||
Время полёта | Vremya_poleta | Time |
База пассажиров и самолётов | Sam_pas_promeg.db | Код самолёта | Kod_samoleta | Number |
Код пассажира | Kod_passagira | Number | ||
База расписания и самолётов | Sam_rasp_promeg.db | Код самолёта | Kod_samoleta | Number |
Код рейса | Kod_reysa | Number |
Контрольный пример является ручным подсчётом задачи. Он представляет собой вариант задачи с известными результатами и используется для проверки правильности решения на ПЭВМ.
По составленной программе обрабатываются исходные данные контрольного примера. Полученные результаты сравниваются с известными результатами контрольного примера. При несовпадении результатов производится поиск, исправление ошибок, и снова производится выполнение программы. И так до тех пор, пока не будет получен правильный результат.
На основании документа, удостоверяющего личность, пассажир заносится в таблицу базы данных «Пассажиры»:
- Passigiry.db
№ | ФИО | Документ | Серия, номер | Место | Класс | Код рейса |
1 | Иванов Иван Иванович | паспорт | 1234567489 | 45 | А | 1 |
2 | Петров Пётр Петрович | паспорт | 987654321 | 65 | А | 1 |
3 | Никифоров Никанор Никанорович | паспорт | 789456321 | 78 | Б | 1 |
На основании расписания рейсов заносятся данные в таблицу базы данных «Расписание рейсов»:
- Raspisanie_reysov.db
№ | Код рейса | Номер рейса | Код самолета | Дата отправления | День отправления | Время отправления | Дата прибытия | День прибытия | Время прибытия |
1 | 1 | 1 | 4 | 20.12.2005 | Вторник | 12:00 | 20.12.2005 | Вторник | 14:00 |
2 | 2 | 1 | 1 | 20.12.2005 | Вторник | 14:00 | 20.12.2005 | Вторник | 16:00 |
3 | 3 | 2 | 4 | 25.12.2005 | Воскресенье | 15:00 | 25.12.2005 | Воскресенье | 17:00 |
На основании характеристик самолетов заносятся новые данные о самолете в таблицу базы данных «Самолеты»:
- Samolety.db
№ | Код самолета | Тип самолета | Кол-во мест |
1 | 2 | ТУ-334 | 102 |
2 | 3 | ТУ-104 | 100 |
3 | 4 | Ту-154 | 180 |
Выходные
документы целиком и полностью зависят
от входных данных:
Выполненные рейсы | ||||
№ рейса | Пункт оправления | Пункт назначения | Цена билета | Время полета |
1 | Москва | Уфа | 2500 руб | 2:00:00 |
2 | Уфа | Москва | 2365 руб | 2:00:00 |
… | ||||
N | Уфа | Учалы | 1500 руб | 0:30:00 |
2. ЭКСПЕРИМЕНТАЛЬНЫЙ РАЗДЕЛ
2.1 Техническое задание
2.1.1. Основание для разработки
Задание преподавателя для проведения практических занятий и выполнения курсовой работы.
2.1.2. Назначение разработки
Программа
предназначена для
2.1.3. Требования к программе.
Что касается защиты базы данных от несанкционированного доступа, то включаются несколько уровней доступа.
2.1.4. Требования к надежности
2.1.5. Требования к составу и параметрам технических средств
- объем ОЗУ не ниже 16 Mb;
- графический адаптер SVGA;
-
манипулятор типа "мышь".
2.2
Описание программы
2.2.1.
Модульная схема задачи
2.2.2. Описание модулей
Программа
«Автоматизация работы агентства по продаже
авиабилетоа» состоит из 13 модулей, содержащих
10 форм и один модуль данных (DataModule).
Unit13
Модуль содержит главное меню (главная форма)
MainMenu1 | Главное меню. Позволяет перейти к другим формам |
Unit1
Модуль содержит данные о рейсах
DBGrid1 | Отображает доступные рейсы |
DBNavigator1 | Навигация по таблице |
DBGrid2 | Отображает расписание доступных рейсов |
DBNavigator2 | Навигация по таблице |
Button1 | Выполняет режим отображения расписания только выбранного рейса |
Button2 | Восстанавливает полное отображение расписания |
MainMenu1 |
Unit3
Модуль ввода пароля Администратора для доступа к данным
LabeledEdit1 | Поле ввода пароля |
Button1 | Подтверждение пароля |
Button2 | Вернуться назад |
Unit10
Модуль ввода пароля Кассира для доступа к данным
LabeledEdit1 | Поле ввода пароля |
Button1 | Подтверждение пароля |
Button2 | Вернуться назад |
Unit7
Модуль
для вызова справки «О программе…».
Unit6
Модуль отображения данных для Администратора.
DBGrid1 | Отображает доступные рейсы |
DBNavigator1 | Навигация по таблице |
DBGrid2 | Отображает расписание доступных рейсов |
DBNavigator2 | Навигация по таблице |
DBGrid3 | Отображает данные о самолетах |
DBNavigator3 | Навигация по таблице |
DBGrid4 | Отображает данные о пассажирах |
DBNavigator4 | Навигация по таблице |
Button1 | Выполняет режим отображения расписания только выбранного рейса |
Button2 | Восстанавливает полное отображение расписания |
Button3 | Выполняет режим отображения пассажиров только выбранного рейса |
Button4 | Восстанавливает полное отображение всех пассажиров |
MainMenu1 | Меню на форме. Позволяет переходит к другим формам и отображает основные функции |
Unit5
Модуль отображения данных для Кассира.
DBGrid1 | Отображает доступные рейсы |
DBNavigator1 | Навигация по таблице |
DBGrid2 | Отображает расписание доступных рейсов |
DBNavigator2 | Навигация по таблице |
DBGrid4 | Отображает данные о пассажирах |
DBNavigator4 | Навигация по таблице |
Button1 | Выполняет режим отображения расписания только выбранного рейса |
Button2 | Восстанавливает полное отображение расписания |
Button3 | Выполняет режим отображения пассажиров только выбранного рейса |
Button4 | Восстанавливает полное отображение всех пассажиров |
MainMenu1 | Меню на форме. Позволяет переходит к другим формам и отображает основные функции |
RadioGroup1 | Фильтрация данных по различным критериям данных |
RadioGroup2 | Сортировка данных по различным критериям данных |
Unit8
Модуль операций над базами данных.
RadioGroup1 | Фильтрация данных по различным критериям данных |
RadioGroup2 | Сортировка данных по различным критериям данных |
RadioGroup3 | Поиск данных по различным критериям данных |
Unit11
Модуль для ввода и сохранения данных о пассажирах
Button1 | Сохранить введенные данные |
Button2 | Вернуться назад |
Unit12
Модуль для ввода и сохранения данных о самолетах, рейсах и расписании рейсов
PageControl1 | Позволяет переходить на лист для ввода нужных данных |
Button1 | Сохранить введенные данные о самолетах |
Button2 | Сохранить введенные данные о рейсах |
Button3 | Сохранить введенные данные о расписании рейсов |
2.2.3. Описание алгоритма
Операции с бд
Администратор
О программе
2.3. Руководство пользователя
При запуске программы выводится главное окно программы, в котором пользователь может выбирать интересующие его пункты меню для просмотра таблиц, ввода и редактирования данных.
При нажатии в главном меню на пункт «Агентство» появляется форма с данными о рейсах и их расписании.
При нажатии на кнопку «Отобразить расписание выбранного рейса» происходит соответствующее действие. При нажатии на пункт меню «Операции с БД» появляется следующая форма, на которой имеется возможность отсортировать, отфильтровать данные и найти нужную запись:
Также на форме «Агентство по продаже авиабилетов» имеется возможность перехода к просмотру большей информации, при нажатии на соответствующий пункт меню, через разграничение прав доступа: Кассир и Администратор
При входе как Администратор появляется форма:
на которой
имеется возможность
При входе как Кассир появляется форма:
При нажатии на пункт «Работа с БД» появляется возможность произвести разлчные операции с базами данных: сортировку, фильтрацию, поиск. Кнопка «Показать сведения» дает возможность просмотра на какой рейс записан пассажир.
При нажатии на пункт меню «Ввод в БД» можно добавить новые данные о пассажирах:
При нажатии в главном окне на пункт меню «О программе» появится справочная информация о данном приложении:
При
нажатии в меню на пункт «Выход» осуществляется
выход из программы.
3.
ПРОГРАММА И ПРОТОКОЛ
ТЕСТИРОВАНИЯ
1. В таблице «Пассажиры» может возникнуть проблема с вводом номера паспорта из-за невнимательности.
2. В таблице «Расиписание рейсов» из-за невнимательности могут быть неправильно записаны данные.
3. Программа не имеет контекстной справки.
4. Выход из программы, командой «Выход». Вывод сообщения о подтверждении выхода из приложения.
5. Ввод неправильного пароля доступа. Вывод сообщения пользователю о том, что пароль неверный.
6. Качество программного средства незначительно снижено оформлением некоторых таблиц (не помещаются на экране), используются термины, которые могут быть недоступны простому пользователю.
7. Защита от несанкционированного доступа к данным БД, т.е. разграничение прав доступа различных групп пользователей
8. При
вводе некорректной даты выдаётся сообщение
программы с просьбой исправить исходные
данные
ЗАКЛЮЧЕНИЕ
В процессе выполнения курсового проекта были разработаны структура и алгоритм работы приложения «Agentstvo.exe»
При этом были учтены особенности реализации других компонентов информационной системы.
Результатом работы стало создание программного обеспечения, обслуживающего администратора агентства.
Программное обеспечение написано на языке Object Pascal с использованием среды разработки Delphi 7.0.
Были приобретены навыки в области построения баз данных, а также их программной защиты. Кроме того, в стороне не осталось стилистическое и эстетическое оформление программного продукта, привлекающее внимание потенциального покупателя. Изучены приемы ускорения вычислений и исчислений, данных программой, в частности ускорен вывод информации отчетов при помощи RaveDesigner, FreeReport.
Был проведен комплекс тестирования в составе программы «Agentstvo.exe», в результате которого были устранены некоторые недостатки, а программа получила свое дальнейшее развитие и несколько расширила свои функции.
После этого были написаны руководства пользователя и руководства по установке и настройке приложения.
Приложение
было выполнено на данных контрольного
примера. Полученные результаты полностью
совпали с полученными данными
контрольного примера.
ПРИЛОЖЕНИЯ
unit Unit13;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
jpeg, ExtCtrls, StdCtrls, Menus, DB, DBTables;
type
TForm13 = class(TForm)
TableReis: TTable;
Tablerasp: TTable;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
procedure N1Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form13:
TForm13;
implementation
uses Unit1,
Unit10, Unit3, Unit7;
{$R *.dfm}
procedure TForm13.N1Click(Sender: TObject);
begin
form1.show;
end;
procedure TForm13.N4Click(Sender: TObject);
begin
form10.show
end;
procedure TForm13.N3Click(Sender: TObject);
begin
form3.show;
end;
procedure TForm13.N5Click(Sender: TObject);
begin
Form7.show;
end;
procedure TForm13.N6Click(Sender: TObject);
begin
if MessageDlg('Вы
действительно хотите выйти?',
then Close;
end;
end.
unit Unit1;
interface
uses Unit2, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, Db, DBTables, ExtCtrls, DBCtrls, StdCtrls,
Menus, jpeg;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
MainMenu1: TMainMenu;
N1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N8: TMenuItem;
DBNavigator3: TDBNavigator;
DBGrid2: TDBGrid;
N6: TMenuItem;
Button1: TButton;
Button2: TButton;
Table1: TTable;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
procedure N8Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1:
TForm1;
implementation
uses Unit13,
Unit10, Unit3, Unit7, Unit9, Unit8;
{uses Unit1, Unit3, Unit4, Unit7, DBTables, Unit8, Unit9, Unit5, Unit6, Unit10,
Unit13;
}
{$R *.dfm}
procedure TForm1.N8Click(Sender: TObject);
begin
form13.close;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
form10.show;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
form3.Show;
end;
procedure TForm1.Image1Click(Sender: TObject);
begin
Form7.Show;
end;
procedure TForm1.Label3Click(Sender: TObject);
begin
Form7.Show;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
Form9.show;
end;
procedure TForm1.N10Click(Sender: TObject);
Var Krit:string;
begin
Krit:=InputBox('Фильтрация','
With DataModule2.TableReis do
begin
Filter:='punkt_naznach='''+
filtered:=true;
end;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
Form8.show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DataModule2.TableRasp.
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with DataModule2 do
begin
TableRasp.MasterSource:=
TableRasp.IndexName:='ind_
TableRasp.MasterFields:='
end;
end;
end.
unit Unit2;
interface
uses
SysUtils,
Classes, DB, DBTables;
type
TDataModule2 = class(TDataModule)
TableReis: TTable;
TableRasp: TTable;
TableSamol: TTable;
TablePassagiry: TTable;
DSReis: TDataSource;
DSRasp: TDataSource;
DSsamol: TDataSource;
DSPassagiry: TDataSource;
TableSamPasPromeg: TTable;
TableSamRaspPromeg: TTable;
DSSamPasProm: TDataSource;
DSSamRaspPromeg: TDataSource;
TableSamolKod_samoleta: TAutoIncField;
TableSamolTip_samoleta: TStringField;
TableSamolKol_vo_mest: TSmallintField;
TableSamPasPromegKod_samoleta: TSmallintField;
TableSamPasPromegKod_
TableRaspKod_reisa: TSmallintField;
TableRaspNomer_reisa: TFloatField;
TableRaspKod_samoleta: TSmallintField;
TableRaspData_otpravleniya: TDateField;
TableRaspDen_otpravleniya: TStringField;
TableRaspVremya_otpravleniya: TTimeField;
TableRaspData_pribytiya: TDateField;
TableRaspDen_pribytiya: TStringField;
TableRaspVremya_pributiya: TTimeField;
TableReisNomer_reisa: TAutoIncField;
TableReisPunkt_otpravl: TStringField;
TableReisPunkt_naznach: TStringField;
TableReisCena_bileta: TCurrencyField;
TableReisVremya_poleta: TTimeField;
TableDocument: TTable;
DSDocum: TDataSource;
TablePassagiryKod_passagira: TAutoIncField;
TablePassagiryFIO: TStringField;
TablePassagiryDocument: TStringField;
TablePassagirySeriyanomer: TStringField;
TablePassagiryMesto: TSmallintField;
TablePassagiryKlass: TStringField;
TablePassagiryKod_reisa: TFloatField;
procedure TableRaspCalcFields(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule2:
TDataModule2;
implementation
{$R *.dfm}
procedure TDataModule2.
Var Kol:integer;
begin
DataModule2.TableRasp.
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
Grids, DBGrids, StdCtrls, Mask, ExtCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Button2: TButton;
LabeledEdit1: TLabeledEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3:
TForm3;
implementation
uses Unit5,
Unit6, Unit1;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
if LabeledEdit1.Text='1' then Form6.show
else begin ShowMessage('Пароль неверный');
LabeledEdit1.Text:='';
Form3.Hide;
form1.show;
end;
Form3.Hide;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
Form3.Hide;
end;
end.
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Unit2,
ExtCtrls, DBCtrls, Grids, DBGrids, Menus, StdCtrls;
type
TForm5 = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
DBGrid4: TDBGrid;
DBNavigator4: TDBNavigator;
MainMenu1: TMainMenu;
N3: TMenuItem;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
Edit1: TEdit;
Label5: TLabel;
N2: TMenuItem;
N7: TMenuItem;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
N1: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure Label4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5:
TForm5;
implementation
uses Unit10,
Unit1, DBTables, DateUtils, Unit11;
{$R *.dfm}
procedure TForm5.N3Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm5.N4Click(Sender: TObject);
begin
RadioGroup2.Visible:=True;
end;
procedure TForm5.Label4Click(Sender: TObject);
begin
Form5.Hide;
Form1.Show;
end;
procedure TForm5.N5Click(Sender: TObject);
begin
RadioGroup1.Visible:=True;
end;
procedure TForm5.RadioGroup1Click(
Var Fam,Klass:string;
begin
case RadioGroup1.ItemIndex of
0:with DataModule2.TablePassagiry do
begin
Fam:=InputBox('Агентство по продаже авиабилетов','Фильтровать по ФИО:','') ;
begin
Filter:='fio='''+Fam+'*''';
filtered:=true;
end;
end;
1: with DataModule2.TablePassagiry do
begin
KLass:=InputBox('Агентство по продаже авиабилетов','Фильтровать по классу:','') ;
begin
Filter:='klass='''+KLass+'*'''
filtered:=true;
end;
end;
2:DataModule2.TablePassagiry.
end;
end;
procedure TForm5.RadioGroup2Click(
begin
With DataModule2.TablePassagiry do
Case RadioGroup2.ItemIndex of
0:IndexName:='';
1:IndexName:='ind_fio';
2:IndexName:='ind_kodReisa';
end;
end;
procedure TForm5.N2Click(Sender: TObject);
begin
Edit1.Visible:=true;
Label5.Visible:=true;
With DataModule2.TablePassagiry do
begin
IndexName:='Ind_nomer';
FindNearest([Edit1.Text]);
end;
end;
procedure TForm5.N6Click(Sender: TObject);
Var fio:string;
begin
Fio:=InputBox('Агентство
по продаже авиабилетов','
DataModule2.TablePassagiry.
end;
procedure TForm5.N7Click(Sender: TObject);
begin
DataModule2.TablePassagiry.
form11.show;
end;
procedure TForm5.CheckBox2Click(Sender: TObject);
begin
with DataModule2 do
begin
TablePassagiry.MasterSource:=
TableRasp.IndexName:='ind_kod'
TableRasp.MasterFields:='kod_
end
end;
procedure TForm5.Button3Click(Sender: TObject);
begin
with DataModule2 do begin
TablePassagiry.MasterSource:=
TablePassagiry.IndexName:='
TablePassagiry.MasterFields:='
end;
end;
procedure TForm5.Button4Click(Sender: TObject);
begin
DataModule2.TablePassagiry.
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
with DataModule2 do
begin
TableRasp.MasterSource:=
TableRasp.IndexName:='ind_
TableRasp.MasterFields:='
end;
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
DataModule2.TableRasp.
end;
procedure TForm5.N9Click(Sender: TObject);
begin
Form13.RvProject1.Execute;
end;
procedure TForm5.N10Click(Sender: TObject);
begin
Form13.RvProject2.Execute;
end;
end.
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
Unit2, ExtCtrls, DBCtrls, Grids, DBGrids, Menus, StdCtrls;
type
TForm6 = class(TForm)
MainMenu1: TMainMenu;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
DBNavigator1: TDBNavigator;
DBNavigator2: TDBNavigator;
DBGrid3: TDBGrid;
DBNavigator3: TDBNavigator;
DBGrid4: TDBGrid;
DBNavigator4: TDBNavigator;
CheckBox1: TCheckBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
N1: TMenuItem;
N2: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N6: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6:
TForm6;
implementation
uses Unit1,
Unit12, Unit13, DBTables;
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
begin
with DataModule2 do
begin
TableRasp.MasterSource:=
TableRasp.IndexName:='ind_
TableRasp.MasterFields:='
end;
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
DataModule2.TableRasp.
end;
procedure TForm6.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
with DataModule2 do
begin
TableSamol.MasterSource:=
TableSamol.IndexFieldNames:='
TableSamol.MasterFields:='kod_
end
else
DataModule2.TableSamol.
end;
procedure TForm6.Button3Click(Sender: TObject);
begin
with DataModule2 do begin
TablePassagiry.MasterSource:=
TablePassagiry.IndexName:='
TablePassagiry.MasterFields:='
end;
end;
procedure TForm6.Button4Click(Sender: TObject);
begin
DataModule2.TablePassagiry.
end;
procedure TForm6.N11Click(Sender: TObject);
begin
DataModule2.TableSamol.Append;
form12.show;
form12.PageControl1.TabIndex:=
end;
procedure TForm6.N12Click(Sender: TObject);
begin
DataModule2.TableReis.Append;
form12.show;
form12.PageControl1.TabIndex:=
end;
procedure TForm6.N13Click(Sender: TObject);
begin
DataModule2.TableRasp.Append;
form12.show;
form12.PageControl1.TabIndex:=
end;
procedure TForm6.N6Click(Sender: TObject);
begin
form13.hide;
close;
end;
procedure TForm6.N2Click(Sender: TObject);
begin
Form13.RvProject1.Execute;
end;
procedure TForm6.N8Click(Sender: TObject);
begin
Form13.RvProject2.Execute;
end;
end.
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
jpeg, ExtCtrls, StdCtrls;
type
TForm7 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7:
TForm7;
implementation
{$R *.dfm}
end.
unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Unit2,
ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, ComCtrls;
type
TForm8 = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
RadioGroup1: TRadioGroup;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
RadioGroup2: TRadioGroup;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
RadioGroup3: TRadioGroup;
Button1: TButton;
Button2: TButton;
Label3: TLabel;
Label2: TLabel;
Button3: TButton;
procedure RadioGroup1Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure RadioGroup3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8:
TForm8;
implementation
uses DBTables,
DB, ComObj;
{$R *.dfm}
procedure TForm8.RadioGroup1Click(
Var Krit1,Krit:string;
begin
case RadioGroup1.ItemIndex of
0:begin
with DataModule2.TableReis do
begin
Krit:=InputBox('Агентство по продаже авиабилетов','Фильтровать по пункту отправления:','') ;
begin
Filter:='punkt_otpravl='''+
Filtered:=True;
end;
end;
end;
1:begin
with DataModule2.TableReis do
begin
Krit:=InputBox('Агентство по
Filter:='punkt_naznach='''+
Filtered:=true;
end;
end;
2:begin
with DataModule2.TableRasp do
begin
IndexFieldNames:='data_
SetRangeStart;
FieldByName('data_
SetRangeEnd;
FieldByName('data_
ApplyRange;
end;
end;
3:begin
DataModule2.TableReis.
DataModule2.TableRasp.
DataModule2.TableRasp.
end;
end;
end;
procedure TForm8.RadioGroup2Click(
begin
with DataModule2.TableReis do
case RadioGroup2.ItemIndex of
0:IndexName:='ind_otpravl';
1:IndexName:='ind_naznach';
end;
end;
procedure TForm8.RadioGroup3Click(
var punkt:String;
begin
case RadioGroup3.ItemIndex of
0:begin
punkt:=InputBox('Агентство
по продаже авиабилетов','
DataModule2.TableReis.locate('
end;
1:begin
Button3.Visible:=true;
DataModule2.TableRasp.locate('
end;
end;
end;
procedure TForm8.Button1Click(Sender: TObject);
begin
with DataModule2 do
begin
TableRasp.MasterSource:=
TableRasp.IndexName:='ind_
TableRasp.MasterFields:='
end;
end;
procedure TForm8.Button2Click(Sender: TObject);
begin
DataModule2.TableRasp.
end;
procedure TForm8.Button3Click(Sender: TObject);
begin
form8.Hide;
end;
end.
unit Unit10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, Mask, ExtCtrls;
type
TForm10 = class(TForm)
Button1: TButton;
Button2: TButton;
LabeledEdit1: TLabeledEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
Form10:
TForm10;
implementation
uses Unit5,
Unit1;
{$R *.dfm}
procedure TForm10.Button1Click(Sender: TObject);
begin
if labelededit1.Text='1' then Form5.show
else begin ShowMessage('Пароль неверный');
labelededit1.Text:='';
Form10.hide;
form1.show;
end;
Form10.hide;
end;
procedure TForm10.Button2Click(Sender: TObject);
begin
Form10.Hide;
end;
end.
unit Unit11;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
DBCtrls, StdCtrls, Mask, unit2, Grids, DBGrids, Menus;
type
TForm11 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBLookupComboBox2: TDBLookupComboBox;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form11:
TForm11;
implementation
{$R *.dfm}
procedure TForm11.Button1Click(Sender: TObject);
begin
//сохранить
DataModule2.TablePassagiry.
end;
procedure TForm11.FormActivate(Sender: TObject);
begin
DataModule2.TablePassagiry.
end;
procedure TForm11.Button2Click(Sender: TObject);
begin
form11.Hide;
end;
end.
unit Unit12;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
ComCtrls, unit2, StdCtrls, DBCtrls, Mask, ExtCtrls;
type
TForm12 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
Button2: TButton;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBEdit15: TDBEdit;
DBEdit16: TDBEdit;
DBEdit17: TDBEdit;
Button3: TButton;
DBLookupComboBox1: TDBLookupComboBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form12:
TForm12;
implementation
{$R *.dfm}
procedure TForm12.Button1Click(Sender: TObject);
begin
//сохранить
DataModule2.TableSamol.Post
end;
procedure TForm12.Button2Click(Sender: TObject);
begin
//сохранить
DataModule2.TableReis.Post
end;
procedure TForm12.Button3Click(Sender: TObject);
begin
//сохранить
DataModule2.TableRasp.Post
end;
procedure TForm12.FormActivate(Sender: TObject);
begin
DataModule2.TableReis.
DataModule2.TablePassagiry.
DataModule2.TableRasp.
end;
procedure TForm12.FormCreate(Sender: TObject);
begin
with PageControl1.Pages[0] do
DBEdit1.Text:='';
DBEdit2.Text:='';
DBEdit3.Text:='';
with PageControl1.Pages[1] do
DBEdit4.Text:='';
DBEdit5.Text:='';
DBEdit6.Text:='';
DBEdit7.Text:='';
DBEdit8.Text:='';
with PageControl1.Pages[1] do
DBEdit9.Text:='';
DBEdit10.Text:='';
DBEdit11.Text:='';
DBEdit12.Text:='';
DBEdit13.Text:='';
DBEdit14.Text:='';
DBEdit15.Text:='';
DBEdit16.Text:='';
DBEdit17.Text:='';
end;
end.
СПИСОК ЛИТЕРАТУРЫ
Информация о работе Автоматизация работы агентства по продаже авиабилетов