Автоматизация рабочего места кассира автовокзала

Системный анализ предметной области. Построение схемы функциональных зависимостей. Процесс создания таблиц базы данных в Database Desktop. Разработка алгоритма работы программы. Создание псевдонима в BDE Administrator. Разработка приложения пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.04.2016
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

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

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

1. Системный анализ предметной области

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

Входная информация поступает в БД в виде:

- информация о пассажирах;

- информация об автобусы;

- информация о № рейса;

На выходе пользователи системы получают информацию в виде:

- фильтрацию № рейсов по станции прибытия;

- сортировку билетов по:

1) № билета

2) по дате

3) по станции прибытия;

- поиск клиента по ФИО;

- автоматический расчет суммы билетов;

Каждому номеру рейса соответствует расписание, которое имеет свой номер расписания, ст.отправления, ст.прибытия, время в пути и цену. Каждому № рейса соответствует автобус, в котором указывается его гос. номер, марка, модель, кол-во мест и Ф.И.О водителя. Каждому гос. номеру автобуса относится водитель, имеющий Ф.И.О, телефон и адрес.

Каждому номеру билета соответствует пассажир, имеющий номер паспорта, Ф.И.О и адрес.

Каждому номеру билета соответствует рейс, причем номер билета характеризуется датой, местом, суммой, номером рейса и номером паспорта, а рейс включает в себя номер рейса, время, гос.номер авто и номер расписания.

На информацию в БД накладываются следующие ограничения:

- в одно и то же время пассажир не может иметь билеты на разные рейсы;

- в одно и то же время водитель не может обслуживать автобус в разных рейсах;

- на каждый билет приходится единственный пассажир.

В результате БД должна обеспечивать решение следующих основных задач:

- печать электронного билета;

- статистика (график) проданных билетов;

- печать расписания автобусов по выбранному рейсу;

- печать графика (статистика) продаж билетов;

- поддержание базы данных в адекватном состоянии при появлении новых пассажиров;

- снабжение пользователя оперативной и достоверной информацией о текущем состоянии рейса

2. Разработка концептуальной модели БД

таблица база данные administrator

2.1 Построение схемы функциональных зависимостей

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

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

- «Номер билета»;

- «Номер паспорта»;

- «Ф.И.О. пассажира»;

- «Адрес»;

- «Дата»;

- «Место»;

- «Стоимость»;

- «Номер рейса»;

- «Гос.номер авто»;

- «Номер расписания»;

- «Время»;

- «Ф.И.О. водителя»;

- «Марка»;

- «Модель»;

- «Кол-во мест»;

- «Телефон»;

- «Адрес»;

-«Станция отправления»;

- «Станция прибытия»;

- «Время в пути»;

- «Цена»;

Рисунок 1 - Схема функциональных зависимостей

Из приведенной схемы видно, что атрибуты, «станция отправления», «станция прибытия», «время в пути» и «цена» функционально зависят от атрибута «№ расписания». Это объясняется тем, что «№ расписания» никогда не будет повторяться и будет иметь одну станцию отправления, одну станцию прибытия, одно время в пути и одну цену.

Аналогично атрибуты, «Гос.№ автобуса», «время» и «№ расписания» функционально зависят от атрибута «№ рейса». Это объясняется тем, что «№ рейса» расположен только по одному «№ расписания» и относится только к одному «Гос.№ автобуса», т.е. каждый рейс имеет свой неповторяющийся уникальный номер. Из приведенной схемы видно, что атрибуты «Ф.И.О. водителя», «Марка», «Модель» и «Кол-во мест» функционально зависят от атрибута «Гос.№ автобуса», а атрибуты «адрес» и «конт.телефон» функционально зависят от атрибута «Ф.И.О.водителя». Это объясняется тем, что атрибуты «Ф.И.О.водителя», «Марка», «Модель» и «Кол-во мест» относится только к одному «Гос.№ автобуса», т.к. каждый автобус имеет свой неповторяющийся номер. Аналогично атрибуты «Ф.И.О. пассажира» и «Адрес» функционально зависят от атрибута «№ паспорта», т.к. у каждого пассажира есть свой определенный неповторяющийся номер паспорта.

2.2 Формирование формы 1НФ

Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение). Исходное отношение строится из всех выделенных атрибутов, выделенных в предметной области (рисунок 1).

Первичным ключом исходного отношения является объект «№ билета», так как от этого объекта зависят все последующие атрибуты. Несложно заметить, что все атрибуты вошедшие в первичный ключ, непосредственно или транзитивно, полностью или частично зависят от первичного ключа.

№ билета *

Дата

Место

Стоимость

№ рейса

№ расписания

Станция отправления

Станция прибытия

Время в пути

Цена

Время

Гос.№ авто

Кол-во мест

Модель

Марка

Ф.И.О.водителя

Телефон

Адрес водителя

Адрес пассажира

№ паспорта

Ф.И.О. пассажира

Рисунок 2 - Исходное отношение в 1НФ

2.3 Формирование 2НФ

Для перевода отношения 1НФ в 2НФ необходимо исключить из исходного отношения частичные функциональные зависимости неключевых атрибутов от первичного ключа. В представленном рисунке 2 в соответствии со схемой функциональных зависимостей отсутствуют частичные зависимости, следовательно, 1НФ=2НФ.

2.4 Формирование 3НФ и 3НФБК

Полученное отношение R удовлетворяют требованиям 2НФ, но необходимо привести его к 3НФ.. В отношении R атрибуты «Дата», «Место», «Стоимость», «№ рейса», «№ расписания», «Станция отправления», «Станция прибытия», «Время в пути», «Цена», «Время отправления», «Гос.№ авто», «Кол-во мест», «Модель», «Марка», «Ф.И.О водителя», «Телефон», «Адрес», «Адрес пассажира», «№ паспорта», «Ф.И.О пассажира» транзитивно зависят от атрибута «№ билета». Следующим шагом требуется исключить присутствующие в нем транзитивные зависимости для этого исходное отношение R разбивается на 6 отношений R1 («№ расписания», «Станция отправления», «Станция прибытия», «Время в пути»,«Цена»), R2 («Гос.№ авто», «Марка», «Модель», «Кол-во мест»,«Ф.И.О. водителя»), R3(«№ паспорта», «Ф.И.О. пассажира», «Адрес»), R4(«№ рейса», «Время», «Гос.№ авто», «№ расписания»), R5(«№ билета», «Дата», «Место», «Сумма», «№ рейса», «№ паспорта»), R6 («Ф.И.О. водителя», «телефон», «Адрес»).

В результате схема БД, доведенная до 3НФ выглядит, как представлено как рисунке 3. Более того, поскольку во всех полученных отношениях все функциональные зависимости сводятся к полной нетранзитивной зависимости от первичного ключа (т.е. отсутствуют зависимости частей составных первичных ключей от неключевых атрибутов), эта схема удовлетворяет всем требованиям НФБК и является конечным результатом концептуального проектирования.

Рисунок 3 - Схема отношений в 3НФ (НФБК)

3. Реализация БД

3.1 Создание таблиц базы данных в Database Desktop

Database Desktop - это утилита, во многом похожая на Paradox, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links).

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

Процесс создания таблиц и результаты показаны на рисунке 4.

Рисунок 4 - Database Desktop

В БД содержится 6 таблиц, связанных между собой:

1. Расписание (Raspisanie)

2. Автобусы (Avtobusy)

3. Клиенты (Klienty)

4. Рейсы (Reisy)

5. Билеты (Bilety)

6. Водители (Voditeli)

Для создания таблиц использовались типы:

1. Alpha -- строковое поле (A);

2. Autoincrement - поле счетчик (+);

3. Short - вещественные числа (S);

4. Date- дата(D);

5. Number - числовые значения (N);

Для создания связей между таблицами используется:

Меню «Referential Integrity» в выпадающем списке «Table Properties» . Далее необходимо нажать кнопку «Define» и в открывшемся окне выбрать слева связываемое поле, а справа нажать по файлу таблицы

Таблица Расписание (Raspisanie) содержит поля:

1. № расписания;

2. Станция отправления;

3. Станция прибытия;

4. Время в пути;

5. Цена;

Таблица Автобусы (Avtobusy) содержит поля:

1. Гос.№ авто;

2. Ф.И.О. водителя;

3. - Марка;

4. - Модель;

5. - Количество мест;

Таблица Клиенты (Klienty) содержит поля:

1. № паспорта;

2. - Ф.И.О;

3. - Адрес;

Таблица Рейсы (Reisy) содержит поля:

1. № рейса;

2. Время;

3. Гос.№ авто;

Таблица Билеты (Bilety) содержит поля:

1. № билета;

2.Дата;

3. Место;

4.Цена;

5.Ф.И.О;

6.Ст.прибытия;

7.Ст.отбытия;

Таблица Водители (Voditeli) содержит поля:

1. Ф.И.О. водителя;

2. Телефон;

3. Адрес;

Рисунок 5 - Создание таблицы «Raspisanie»

Рисунок 6 - Создание таблицы «Avtobusy»

Рисунок 7 - Создание таблицы «Klienty»

Рисунок 8 - Создание таблицы «Reisy»

Рисунок 9 - Создание таблицы «Voditeli»

Рисунок 10 - Создание таблицы «Bilety»

Для создания вторичных индексов используется меню «Secondary Indexes» в выпадающем списке «Table Properties».

Здесь же, с помощью свойства таблицы создается связь между таблицами R2.db и R6.db. Выбирается вкладка Referential Integrity и нажимается кнопка Define. Затем из списка Fields двойным щелчком мыши выбирается значение FIO_voditel. В списке Table выбирается значение таблицы R6.db. Далее нажимается кнопка ОК и созданной связи присваивается имя FIO_voditel. Работа во вкладке Referential Integrity представлена на рисунке 11.

Рисунок 11 - Связь ФИО водитель

Аналогичным образом создаются связи между таблицами Raspisanie и Reis по полю «№ raspisaniya», Passajir и Bilet по полю «№ pasporta», Bilet и Reis по полю «№ reisa», Reis и Avtobus по полю «Gos № avto». В базе данных используются всего пять связей.

3.2 Создание псевдонима в BDE Administrator

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

Для доступа к информации программа, обеспечивающая работу с базой данных, подключается библиотека Borland Database Engine (BDE), которая, в свою очередь, использует конфигурационный файл, содержащий информацию обо всех зарегистрированных в системе псевдонимах.

Создается новый псевдоним базы данных. Запускается утилиту BDE Administrator. Выбирается в главном меню элемент Object | New. В появившемся окне оставляется тип создаваемой БД без изменений (STANDARD) и нажимается OK. Задается имя псевдонима - baza.

4. Разработка алгоритмов работы программы

Данная программа предназначена для разных пользователей. После запуска программы происходит подключение модулей (блок 1). Вход в БД происходит открытием экранной формы (блок 2) и запуском программы(блок 3) . Если нажата кнопка «Автобусы» (блок 4), тогда можно открыть форму «Автобусы» (блок 5), либо по нажатию кнопки «Водители» открывается база «Водители» (блок 6,7). Если же происходит нажатие кнопки «Билеты» ( блок 8), то осуществляется открытие формы «Билеты» (блок 9) и здесь возможна сортировка билета по дате (блок 10,11) или по номеру билета (блок 12,13) или же по станции прибытия (блок 14,15). Если нажата кнопка «Печать» (блок 16), то производится печать электронного билета (блок 17) иначе переход к кнопке «Клиенты». Если нажата кнопка «Клиенты» (блок 18), тогда можно открыть форму «Клиенты» (блок 19), либо по нажатию на кнопку «Статистика» (блок 20) производится расчет, построение и печать графика (блок 21).

Если нажата кнопка «Печать расписания» (блок 22), то формируется отчет по выбранному рейсу (блок 23). При нажатии кнопки «Фильтрация» (блок 24), осуществляется фильтрация расписания по станции прибытия (блок 25), иначе выход из программы (блок 26). Если выхода из программы не произошло, то производится переход на блок 3. Блок-схема данного процесса представлена в приложении А на рисунках А.1 и А.2.

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

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

Главная форма имеет семь кнопок управления: “Фильтрация”, “Автобусы”, «Водители», «Билеты», «Клиенты», «Статистика» и кнопка «Печать расписания». На рисунке 12 представлена главная форма.

Рисунок 12 - Главная форма

Для того чтобы добавить новый рейс, необходимо добавить запись в поле «Рейсы выбранного маршрута». В этом поле располагается группа компонентов TTable, DataSource, DBGrid1и DBNavigator1.

Для того чтобы добавить расписание, необходимо добавить запись в поле «Расписания автобусов». В этом поле располагается группа компонентов TTable, DataSource, DBGrid1и DBNavigator1.

Для того чтобы добавить новый автобус, необходимо нажать кнопку «Автобусы». В этой форме располагается группа компонентов TTable, DataSource, DBGrid1и DBNavigator1. На рисунке 13 представлена форма «Avtobus».

Рисунок 13 - Форма «Avtobus»

Для того, чтобы просмотреть все имеющиеся билеты необходимо нажать на кнопку «Билеты». В этой форме располагается группа компонентов BitBtn, DBGrid, DataSource, Query, СomboBox. Можно произвести сортировку билетов по № билета. На рисунке 15 представлена форма заказа билета.

Рисунок 14 - Форма заказа билета

Для Bilet в свойствах указывается DatabaseName, которая связывает наборы данных с псевдонимом BDE (имя псевдонима baza) и TableName задается Bilet.db. Далее активизируется компонент, т.е. Active=True.

Для DataSource в свойствах указывается DataSet = Table1 для связи визуальных компонентов с набором записей.

Компонент DBGrid1 отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям, а строки - записям. По умолчанию пользователь может просматривать и редактировать данные. Компонент DBNavigator1 предоставляет возможность перемещаться по таблице, редактировать, вставлять и удалять записи. Компоненты DBGrid1 и DBNavigator1 связываются со своим источником данных - компонентом DataSourse1 через свои свойства DataSource.

По выбранному рейсу на форме заказа билета возможна печать электронного билета. На рисунке 15 представлен электронный билет.

Рисунок 15 - Электронный билет

Для того чтобы посмотреть информацию о всех водителях необходимо нажать на кнопку «Водители». Здесь располагается группа компонентов DBGrid1и Navigator1. Результат нажатия кнопки «Водители» представлен на рисунке 16.

Рисунок 16 - После нажатия кнопки «Водители»

Для того чтобы посмотреть информацию о всех клиентах необходимо нажать на кнопку «Клиенты». Здесь располагается группа компонентов DBGrid1, Navigator1, Edit и Label. Форма «Клиенты» представлена на рисунке 17.

Рисунок 17 - Форма «Клиенты»

На этой же форме расположен поиск клиентов по ФИО, которому соответствует процедура Table3.Locate.

Для реализации поиска по значениям неиндексированных полей применяется метод Locate. Свойство Caption кнопки BitBtn1 устанавливается равным «Поиск». Далее в обработчике события OnClick кнопки BitBtn1 организуется вызов метода Locate.

Поиск по ФИО представлен на рисунке 18.

Рисунок 18 - Поиск клиента по ФИО.

Для того, чтобы построить график необходимо нажать на кнопку «Статистика». В этой форме располагается группа компонентов BitBtn, DBGrid, DataSource, Query, DateTimePicker, DBChart, SaveDialog. Статистика по продажам билетов представлена на рисунке 20.

Рисунок 19 - Статистика по продажам билетов

Для настройки внешнего вида компоненты DBGrid1 используется встроенный редактор столбцов Columns Editor, который вызывается двойным щелчком по компоненту DBGrid1, команда Add All Fields контекстного меню, для каждого поля меняется значение на кириллицу.

Для реализации фильтрации по станции прибытия на форме располагаются компоненты BitBtn, Edit и Lable. Для Table3 установлено свойство Filtered=true, для Lable3 установлено свойство Caption=Станция прибытия. В Edit необходимо ввести станцию прибытия по которой нужно отфильтровать.

Фильтрация по станции прибытия представлена на рисунке 20.

Рисунок 20 - Фильтрация по станции прибытия

Для Table1 в свойствах указывается DatabaseName, которая связывает наборы данных с псевдонимом BDE (имя псевдонима Lab3) и TableName задается Komnats.db. Далее активизируется компонент, т.е. Active=True.

Для DataSource в свойствах указывается DataSet=Table1 для связи визуальных компонентов с набором записей.

Для связи между таблицами «Расписания» и «Рейсы» по ключевому полю используются свойства MasterSource и MasterFields подчиненного набора данных. При этом в свойстве MasterSource подчиненного компонента Table1, который находится на главной форме в ней указывается источник данных Form1.DataSource1, соответствующей главной таблице, на записи которой ссылается подчиненная таблица( в данной базе всего шесть связей). При обращении в инспекторе объектов к свойству MasterFields подчиненного компонента Table1, который находится на главной форме, вызывается специальный редактор отношений, изображенный на рисунке 21.

Рисунок 21 - Редактор отношений

На этой же форме применяется поиск методом Lookup. Двойным щелчком мыши на компоненте Table1, командой AddallFields/NewFields появляется окно, представленная на рисунке 23, в котором устанавливаются следующие значения:

- поле Name - имя нового поля (avto);

-поле Type - тип создаваемого поля (String);

-поле Field type - значение lookup;

-в выпадающем списке KeyFields выбирается ключевое поле (ID_avto);

- в выпадающем списке Dataset выбирается - связываемый набор данных (Table2);

- в выпадающем списке Lookup Keys выбирается ключевое поле (ID_avto);

- в выпадающем списке Result Field выбирается просматриваемое поле (Gos_nom).

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

Рисунок 22 - Окно NewFields

На форме «Статистика по рейсам» расположена таблица, которая осуществляется подсчет количества проданных билетов по рейсам. Подсчет производиться при помощи SQL-запроса.

Окно SQL-запроса представлен на рисунке 23.

Рисунок 23-Окно SQL запроса

При нажатии на «Печать расписания» осуществляется переход отчету (рисунок 24). На данной форме можно просмотреть возможное количество рейсов в выбранное направление. Основным компонентом, на котором строится весь отчет, является QuickRep. Он предоставляет ряд возможностей по управлению создаваемым отчетом, включая формирование заголовка.

Компонент QuickRep имеет ряд свойств, определяющих характеристики печати отчета:

- Printer - задает число копий отчета и диапазон печатаемых страниц;

- Page - задает размер страницы;

- Zoom - масштаб печати в процентах.

Рисунок 24 - Форма «Отчет»

Листинг программы представлен в приложении Б.

Заключение

Данный курсовая работа является актуальным и отвечает предъявленым к нему требованиям. Была разработана и написана, на языке программирования высокого уровня Borland Delphi 7.0, с использованием баз данных

Программа "Автовокзал", предназначена для кассира (оператора) автовокзала.

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

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

Список использованной литературы

1) Базы данных: модели, разработка, реализация/Т.С.Карпова. - СПб.:Питер,2002.

2) Базы данных: Учебник для ВУЗов/Под ред.проф.А.Д.Хоменко. - СПб. КОРОНА принт,2004.

Приложение А

Рисунок А.1 - Общая блок-схема алгоритма работы программы

Рисунок А.2 - Общая блок-схема алгоритма работы программы

Приложение Б

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables,

Buttons;

type

TForm1 = class(TForm)

Table1: TTable;

DataSource1: TDataSource;

Table2: TTable;

DataSource2: TDataSource;

Table3: TTable;

DataSource3: TDataSource;

Table4: TTable;

DataSource4: TDataSource;

Table5: TTable;

DataSource5: TDataSource;

Table6: TTable;

DataSource6: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Label1: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

Table2ID_avto: TAutoIncField;

Table2Gos_nom: TFloatField;

Table2Marka: TStringField;

Table2Model: TStringField;

Table2Kol_mest: TFloatField;

Table2FIO_voditel: TStringField;

Table2Voditel: TStringField;

DBGrid2: TDBGrid;

DBNavigator2: TDBNavigator;

Table4ID_reisa: TAutoIncField;

Table4ID_avto: TIntegerField;

Table4ID_rasp: TIntegerField;

Table4Avtobus: TStringField;

Table5ID_zakaz: TAutoIncField;

Table5Data: TDateField;

Table5St_otpr: TStringField;

Table5St_prib: TStringField;

Table5Kol_mest: TFloatField;

Table5Summa: TCurrencyField;

Table5Nom_pasp: TFloatField;

Table5ID_reis: TIntegerField;

Table5Client: TStringField;

Table1ID_rasp: TAutoIncField;

Table1St_otpr: TStringField;

Table1St_prib: TStringField;

Table1Vremya: TFloatField;

Table1Price: TCurrencyField;

Edit1: TEdit;

BitBtn5: TBitBtn;

Label2: TLabel;

Label3: TLabel;

BitBtn6: TBitBtn;

BitBtn7: TBitBtn;

Table3Nom_pasp: TFloatField;

Table3FIO_client: TStringField;

Table3Telefon: TFloatField;

Table3Adres: TStringField;

Table6FIO_voditel: TStringField;

Table6Telefon: TFloatField;

Table6Adres: TStringField;

BitBtn8: TBitBtn;

Table4Timel: TTimeField;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure Table5AfterInsert(DataSet: TDataSet);

procedure Table5AfterPost(DataSet: TDataSet);

procedure BitBtn5Click(Sender: TObject);

procedure DBGrid2DblClick(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure BitBtn8Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8;

{$R *.dfm}

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Voditel.ShowModal;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Avtobus.Showmodal;

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

Client.ShowModal;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

Zakaz.ShowModal;

end;

procedure TForm1.Table5AfterInsert(DataSet: TDataSet);

begin

Form1.Table5St_otpr.Value:=Form1.Table1St_otpr.Value;

Form1.Table5St_prib.Value:=Form1.Table1St_prib.Value;

end;

procedure TForm1.Table5AfterPost(DataSet: TDataSet);

begin

Form1.Table5.Edit;

Form1.Table5Summa.Value:=Form1.Table1Price.Value*Form1.Table5Kol_mest.Value;

end;

procedure TForm1.BitBtn5Click(Sender: TObject);

begin

if Form1.Edit1.Text<>'' then

Form1.Table1.Filter:='St_prib='+chr(39)+Form1.Edit1.Text+chr(39)

else Form1.Table1.Filter:='';

end;

procedure TForm1.DBGrid2DblClick(Sender: TObject);

begin

Zakaz.ShowModal;

end;

procedure TForm1.BitBtn6Click(Sender: TObject);

begin

Form6.Showmodal;

end;

procedure TForm1.BitBtn7Click(Sender: TObject);

begin

Form7.QuickRep1.Preview;

end;

procedure TForm1.BitBtn8Click(Sender: TObject);

begin

Form8.Query1.Active:=false;

Form8.Query1.Active:=true ;

Form8.ShowModal;

end;

end.

unit Unit2;

interface

uses

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

Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids;

Type

TVoditel = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Voditel: TVoditel;

implementation

uses Unit1;

{$R *.dfm}

end.

unit Unit3;

interface

uses

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

Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids;

type

TAvtobus = class(TForm)

DBGrid1: TDBGrid;

public

{ Public declarations }

end;

var

Avtobus: TAvtobus;

implementation

uses Unit1, Unit2;

{$R *.dfm}

end.

unit Unit4;

interface

uses

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

Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls;

type

TClient = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Edit1: TEdit;

Label1: TLabel;

procedure Edit1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Client: TClient;

implementation

uses Unit1,DB;

{$R *.dfm}

procedure TClient.Edit1Change(Sender: TObject);

begin

if Client.Edit1.Text<>'' then

if not Form1.Table3.Locate('FIO_client',Client.Edit1.Text,[loCaseInsensitive, loPartialKey]) then

ShowMessage('Такого клиента не было');

end;

end.

unit Unit5;

interface

uses

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

Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, Buttons, DB,

DBTables, QRCtrls, QuickRpt;

type

TZakaz = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Query1: TQuery;

DataSource1: TDataSource;

Query1ID_reisa: TIntegerField;

Query1Timel: TTimeField;

Query1Gos_nom: TFloatField;

Query1FIO_voditel: TStringField;

QuickRep1: TQuickRep;

ColumnHeaderBand1: TQRBand;

TitleBand1: TQRBand;

DBNavigator1: TDBNavigator;

private

{ Private declarations }

QRLabel1: TQRLabel;

QRDBText1: TQRDBText;

QRLabel2: TQRLabel;

QRDBText2: TQRDBText;

QRLabel3: TQRLabel;

QRDBText3: TQRDBText;

QRLabel4: TQRLabel;

QRDBText4: TQRDBText;

QRLabel5: TQRLabel;

QRDBText5: TQRDBText;

Query1Vremya: TFloatField;

Query1Price: TCurrencyField;

QRLabel6: TQRLabel;

QRDBText6: TQRDBText;

QRLabel7: TQRLabel;

QRDBText7: TQRDBText;

QRLabel8: TQRLabel;

QRDBText8: TQRDBText;

QRLabel9: TQRLabel;

QRDBText9: TQRDBText;

QRLabel10: TQRLabel;

QRDBText10: TQRDBText;

QRLabel11: TQRLabel;

QRDBText11: TQRDBText;

QRLabel12: TQRLabel;

QRDBText12: TQRDBText;

GroupBox1: TGroupBox;

ComboBox1: TComboBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

procedure ComboBox1Change(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Zakaz: TZakaz;

implementation

uses Unit1;

{$R *.dfm}

procedure TZakaz.ComboBox1Change(Sender: TObject);

var i:integer;

begin

i:=Zakaz.ComboBox1.ItemIndex;

case i of

0:Form1.Table5.IndexName:='1';

1:Form1.Table5.IndexName:='2';

2:Form1.Table5.IndexName:='3';

end;

end;

procedure TZakaz.BitBtn2Click(Sender: TObject);

begin

Form1.Table5.MasterFields:='ID_reisa';

end;

procedure TZakaz.BitBtn1Click(Sender: TObject);

begin

Form1.Table5.MasterFields:='';

end;

procedure TZakaz.BitBtn3Click(Sender: TObject);

begin

Zakaz.QuickRep1.Preview;

end;

end.

unit Unit6;

interface

uses

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

Dialogs, Grids, StdCtrls, CheckLst, ComCtrls, Buttons, DB, DBGrids,

DBTables, TeEngine, Series, ExtCtrls, TeeProcs, Chart, DbChart;

type

TForm6 = class(TForm)

Query1: TQuery;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

DBChart1: TDBChart;

Series2: TBarSeries;

DateTimePicker1: TDateTimePicker;

DateTimePicker2: TDateTimePicker;

BitBtn1: TBitBtn;

Query1St_otpr: TStringField;

Query1St_prib: TStringField;

Query1SUMOFKol_mest: TFloatField;

BitBtn2: TBitBtn;

SaveDialog1: TSaveDialog;

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm6.FormActivate(Sender: TObject);

begin

Form6.Query1.Active:=false;

Form6.Query1.Active:=true;

end;

procedure TForm6.BitBtn1Click(Sender: TObject);

var i,j:integer;

begin

Form6.Query1.Active:=false;

Form6.Query1.ParamByName('param1').Value:=Form6.DateTimePicker1.Date;

Form6.Query1.ParamByName('param2').Value:=Form6.DateTimePicker2.Date;

Form6.Query1.Active:=true;

Form6.Query1.First;

For i:=1 to Form6.Query1.RecordCount do

begin

Form6.Series2.Add(Form6.Query1SUMOFKol_mest.Value,Form6.Query1St_otpr.Value+'-'+Form6.Query1St_prib.Value);

Form6.Query1.Next;

end;

Form6.Query1.First;

end;

procedure TForm6.BitBtn2Click(Sender: TObject);

begin

if Form6.SaveDialog1.Execute then

Form6.DBChart1.SaveToBitmapFile(Form6.SaveDialog1.FileName+'.bmp');

end;

end.

unit Unit7;

interface

uses

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

Dialogs, QRCtrls, QuickRpt, ExtCtrls;

type

TForm7 = class(TForm)

QuickRep1: TQuickRep;

ColumnHeaderBand1: TQRBand;

DetailBand1: TQRBand;

TitleBand1: TQRBand;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRLabel6: TQRLabel;

QRDBText2: TQRDBText;

QRDBText1: TQRDBText;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRLabel7: TQRLabel;

QRLabel8: TQRLabel;

QRLabel9: TQRLabel;

QRDBText6: TQRDBText;

QRDBText7: TQRDBText;

QRDBText8: TQRDBText;

QRLabel10: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

uses Unit1;

{$R *.dfm}

end.

unit Unit8;

interface

uses

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

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, TeEngine, Series,

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

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, TeEngine, Series

TeeProcs, Chart, DbChart, DBTables;

type

TForm8 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DataSource1: TDataSource;

Query1: TQuery;

DBChart1: TDBChart;

Series1: TBarSeries;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form8: TForm8;

implementation

uses Unit1;

{$R *.dfm}

end.

Размещено на Allbest.ur


Подобные документы

  • Системный анализ предметной области. Разработка концептуальной модели базы данных. Построение схемы функциональных зависимостей. Создание таблиц базы данных в Database Desktop и псевдонима в BDE Administrator. Разработка алгоритма работы программы.

    курсовая работа [911,3 K], добавлен 20.12.2014

  • Создание баз данных с использованием Database Desktop. Проведение автоматизации рабочего места кассира. Описание входной и выходной информации. Выбор среды реализации, состава и параметров технических средств. Проектирование интерфейса программы.

    курсовая работа [1021,5 K], добавлен 22.01.2015

  • Словесное описание предметной области. Построение схемы функциональных зависимостей. Реализация базы данных средствами утилиты Enterprise Manager в формате SQL Server Management Studio. Разработка алгоритмов работы программы и приложения пользователя.

    дипломная работа [1,8 M], добавлен 26.03.2015

  • Понятие баз данных и принципы проектирования информационных систем. Разработка программы для отслеживания финансовой стороны работы компании в среде Delphi 7. Создание таблиц и схемы данных. Разработка клиентского приложения и процедуры добавления данных.

    курсовая работа [1,4 M], добавлен 25.04.2012

  • Основные инструменты построения Web-приложения. Язык сценариев PHP. Системный анализ предметной области базы данных. Коды SQL запросов на создание таблиц. Разработка Web-приложения. Описание функциональности модулей. Система управления содержимым статей.

    курсовая работа [4,8 M], добавлен 28.04.2014

  • Рассмотрение теоретических основ проектирования. Анализ предметной области и разработка таблиц базы данных. Заполнение таблиц, поиск данных с помощью фильтра. Создание форм, разработка запросов. Создание и настройка отчетов, составление приложения.

    курсовая работа [2,8 M], добавлен 01.06.2014

  • Проектирование базы данных в среде СУБД MS Access. Автоматизация учета информации о товаре в магазине. Определение требований и функций системы. Анализ предметной области. Разработка, создание таблиц, запросов, форм и отчетов. Инструкция для пользователя.

    отчет по практике [523,6 K], добавлен 21.04.2014

  • Описание предметной области, техническое задание на разработку программного продукта. Проектирование структуры базы данных: ER-диаграмм, диаграммы функциональных зависимостей, набор основных таблиц и описание полей. Разработка руководства пользователя.

    курсовая работа [2,9 M], добавлен 25.11.2013

  • Разработка базы данных с целью автоматизации процессов составления, ведения и распространения информации об расписании занятий в спортивном комплексе "Маяк". Анализ предметной области. Разработка алгоритмов работы программы и приложения пользователя.

    дипломная работа [1,0 M], добавлен 12.07.2015

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

    курсовая работа [700,0 K], добавлен 14.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.