Курсовая работа (т): Разработка информационной системы АЗС с использованием клиент-серверной технологии

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

На следующем рисунке 15, показан фрагмент написания запроса на создание генератора «gen_id_clients», в котором задается значение 7.

Рисунок 15 - Написание SQL запроса

Аналогичным образом создавался второй генератор. На рисунке 16 представлены все созданные генераторы , со своими значениями.

Рисунок 16 - Список созданных генераторов

После создания генератора , был написан запрос на создание триггера , который будет заполнять автоматически «Номер клиента (id_clients)», из таблицы «Клиенты (clients)» ,представленный на рисунке 17.

Рисунок 17 - Написание SQL запроса

На рисунке 18 показаны созданные триггеры, второй триггер был создан аналогично написанному запросу представленным выше.

Рисунок 18 - Список созданных триггеров

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

Для создания представления был написан код в редакторе SQL, в представлении будет выводится информация о клиентах из таблицы «Клиенты» и скидки их карт из таблицы «Карты_клиентов», на рисунке 19 приведен SQL-скрипт просмотра.

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

Рисунок 19 - SQL-скрипт просмотра

Рисунок 20 - Список созданных представлений

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

На рисунке 21 приведен SQL запрос на создание процедуры с помощью которой после выполнения можно добавить информацию в таблицу «Clietns».

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

На рисунке 23 представлен фрагмент написания SQL запроса на создание процедуры удаления данных из таблицы «Refill» ,где удаление данных будет производиться согласно номеру покупки топлива, с помощью его ввода.

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

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

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

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

На рисунке 27 приведен фрагмент написания SQL запроса на создание процедуры модификации данных. В котором осуществляется замена данных из таблицы «Clients».

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

Список созданных хранимых процедур представлен на рисунке 23.

Рисунок 23 - Список всех хранимых процедур

.2 Разработка программного обеспечения

.2.1   Создание Win-приложения.

Для создание Win приложения, использовался программный продукт C++ Builder. Первым делом был создан проект, далее в «DataModule» были помещены необходимые компоненты, для реализации будущего приложения.

На рисунке 24 представлен «DataModule» в котором хранились все созданные компоненты в течении разработки приложения.

Рисунок 24. Компоненты в DataModule.

В компоненте «DataBase1» были применены свойства, в которых был указан путь к созданной ранее БД в утилите IBExpert а так же сервер, на рисунке 25 представлен фрагмент применения свойств.

Рисунок 25. Применение свойств

Свойства IBDataBase и IBTransaction Были настроены с помощью инспектора объектов следующим образом, как представлено на рисункe 26.

Рисунок 26. Настроенные компоненты IBDatabase и IBTransaction

На форму были помещены все визуальные компоненты, которые необходимы для работы с БД. На рисунке 27 представлена форма, в которой будут отображаться все представления, созданные в IBExpert. Для представлений в Форме, были применены такие компоненты как IBTable и DataSource, в компоненте IBTable в свойствах изначально была применена подключенная БД, далее выбран в свойстве TableName была выбрана таблица которая будет далее выводится на экран с помощью компоненты DBGrid. После этого IBTable была связана непосредственно с DataSource. Все остальные представления были созданы аналогичным образом.

.2.2 Добавление, удаление и изменение данных в таблицах базы данных

Следующим этапом разработки win-приложения была реализация хранимых процедур. Для реализации первой хранимой процедуры «CLIENTS_ADD» для добавления клиента в базу данных был использован компонент IBStoredProc, в котором была добавлена БД и непосредственно хранимая процедура CLIENTS_ADD из созданной БД в IBExpert. Далее в DataModule были помещены такие компоненты как IBQuery и DataSource, после чего была осуществлена связь между этими компонентами. В компненте IBQuery для отображения таблицы в первую очередь был написан запрос , рис 27.

Рисунок 27 - Написание запроса на вывод таблицы «Клиенты»

Далее на форму были помещены компоненты для выполнения добавления данных в таблицу «Клиенты», такие как Edit и Button.

Для кнопки «Добавить» первоначально был написан код, показанный на рисунке 28.

Рисунок 28 - Код для кнопки «Добавить»

Для остальных таблиц были совершены аналогичные операции.

Далее была реализована хранимая процедура для изменения данных в таблице «Клиенты». Для этого были применены те же компоненты описанные выше для таблицы «Клиенты». В данном случае при выборе кнопки изменить, добавить или удалить, в компонент IBStoredProc первоначально вписывается хранимая процедура которая будет выполняться в будущем, далее уже прописываются поля по которым будет изменяться информация. На рисунке 29 приведен код кнопки «Изменить».

Для остальных таблиц были совершены аналогичные операции.

Для реализации хранимой процедуры удаления данных, для начала был написан код, в котором первоначально в компоненту IBStoredProc в свойстве StoredProcName выбирается хранимая процедура из созданной БД в IBExpert. На рисунке 30 представлен код кнопки на удаление данных из таблицы «Клиенты». Удаление данных будет осуществляться по всей строке, при вводе номера клиента.

Рисунок 29 - Код для кнопки «Именить»

Рисунок 30 - Код для удаления данных

Для остальных таблиц были совершены аналогичные операции.

.2.3 Фильтрация, поиск и сортировки данных в таблицах базы данных c использованием технологии BDE

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

Рисунок 31 - Код для сортировки

Для остальных таблиц были совершены аналогичные операции.

Так же была разработана кнопка сброса, которая позволяет вернуть позиции данных в прежнее состояние ,на рисунке 32 представлен код кнопки «Сброс».

Рисунок 32 - Код кнопки «Сброс»

Далее была создана операция фильтрации данных, на рисунке 33 представлен код в котором будет фильтроваться название, введенной карты клиентом из таблицы «Card_clients».

Для реализации поиска были применены те же компоненты описанные выше. Для поиска на форму так же были добавлены компоненты для ввода данных и применения поиска. На рисунке 34 представлен код кнопки «Поиск». Данный поиск будет осуществляться в таблице «Refill» по номеру покупки топлива.

Рисунок 33 - Код кнопки для фильтрации

Рисунок 34 - Код кнопки «Поиск»

Для остальных таблиц были совершены аналогичные операции.

.2.4 Составление отчетов

Для реализации отчетов первоначально была создана форма в которой будут храниться компоненты необходимые для формирования отчетов. В новую форму был добавлен компонент QuickRep1 который будет отображать отчет в дальнейшем. Далее в свойстве этой компоненты был применен DataModule2->DataSource19, который обращается к таблице «Кленты». На рисунке 35 приведен фрагмент отчета.

Далее в форме с таблицей была добавлена кнопка «Сформировать отчет» в который был написан следующий код:->QuickRep1->Preview();

Рисунок 35. Компоненты для формирования отчета

3. Тестирование информационной системы

.1 Пользовательский интерфейс

.1.1 Интерфейс Win-приложения


Рисунок 36. Форма с представлениями

Рисунок 37 - Заполнение данных

На рисунке 37 приставлен фрагмент запыления данных для добавления в таблицу «Клиенты».

Далее была нажата кнопка Добавить, после чего можно заметить добавленные данные в таблице «Клиенты», рис 38.

Рисунок 38 - Результат добавления данных

Рисунок 39. Заполнение данных для изменения

На рисунке 39 представлен фрагмент заполнения данных для их изменения в таблице «Клиенты».

На рисунке 39 видно что будет осуществляться изменение клиента под номером 1, на рисунке 40 представлен результат, после нажатия на кнопку «Изменить».

Рисунок 40 - Результат изменения данных

На рисунке 41 приставлен фрагмент заполнения строки номера клиента которого хотим удалить, в нашем случае клиент под номером 19.

Рисунок 41 - Заполнение сроки «Номер клиента»

Далее была нажата кнопка «Удалить», после чего можно заметить результат удаления, рис 42.

Рисунок 42. Результат удаления клиента под номером 19

На рисунке 43 приведен фрагмент применения сортировки по убыванию в поле «тип топлива».

Рисунок 43 - Результат выполнения сортировки

На рисунке 44 приведен фрагмент сортировки по возрастанию поля «Цена».

Рисунок 44 - Результат выполнения сортировки

На рисунке 45 приведен фрагмент ввода названия карты, которая будет в дальнейшем фильтроваться.

Рисунок 45 - Ввод названия карты

Рисунок 46 - Результат нажатия кнопки «Применить»

Далее была нажата кнопка «Применить», после чего на рисунке 46 можно заметить результат выполнения операции.

Далее будет осуществляться поиск по номеру покупки топлива в таблице «Покупка топлива». На рисунке 47 приведен фрагмент заполнения номера покупки топлива.

Рисунок 47 - Ввод данных для поиска

Рисунок 48 - Результат выполнения поиска

На рисунке 48 представлен результат выполнения поиска, можно заметить что курсор слева наведен именно на тот номер покупки, который был введен ранее.

На рисунке 49 приведен фрагмент созданной кнопки «Сформировать отчет» в таблице «Клиенты».

Рисунок 49 - Созданная кнопка для формирования отчета

Рисунок 50 - Сформированный отчет по клиентам

На рисунке 50 представлен фрагмент сформированного отчета по клиентам.

Заключение

В данной курсовой работе была осуществлена задача по проектированию и созданию удаленной базы данных, а также win-приложений для ее администрирования с использованием клиент-серверной технологии. Программирование на стороне сервера было осуществлено в СУБД FireBird 2.1 с помощью утилиты IBExpert, а клиентская часть приложения - в C++Builder с помощью технологии доступа к данным InterBaseExpress (IBX) свободно распространяемая система управления базами данных, использующая клиент-серверную технологию. Помимо создания таблиц и связей между ними Firebird поддерживает создание доменов, хранимых процедур, представлений, триггеров, индексов, исключений.

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

Список использованных источников

1. Голуб А. Правила программирования на С и С++. - Москва 2001 г. - 241с.

2. Пахомов Б.И. С/С++ и Borland C++ Builder для начинающих. - СПб.: БХВ-Петербург, 2005. - 640 с.: ил.

3. Селко Дж. SQL для профессионалов Программирование. Второе издание. - Издательство «Лори», 2004. - 442 с.: ил.

4. Базы данных и СУБД: учеб. Пособие /В.М. Михелёв. - Белгород: Изд-во БелГУ, 2007. - 200с.

Приложение 1

Описание созданных компонентов, в виде таблицы, в win - приложении

Компонент

Применение

Query1

Используется SQL код для выводя и модификации данных «Clients»

Query2

Используется SQL код для выводя и модификации данных «card_clients»

Query3

Используется SQL код для выводя и модификации данных «Fuel»

Query8

Используется SQL код для выводя и модификации данных «Refill»

Query9

Используется SQL код для выводя и модификации данных «Personnel»

Query4

Используется SQL код выбора процедуры выборки таблицы «Clients»

Query5

Используется SQL код выбора процедуры выборки таблицы «Сфкв_clients»

Используется SQL код выбора процедуры выборки таблицы «fuel»

Query7

Используется SQL код выбора процедуры выборки таблицы «refill»

StoreProc1

Использует процедуры для таблицы «Clients»

StoreProc2

Использует процедуры для таблицы «Card_clients»

StoreProc3

Использует процедуры для таблицы «fuel»

StoreProc4

Использует процедуры для таблицы «personnel»

StoreProc5

Использует процедуры для таблицы «refill»

Table1

Использует таблицу «Clients» для представления

Table2

Использует таблицу «Card_clients» для представления

Table3

Использует таблицу «fuel» для представления

Table4

Использует таблицу «personnel» для представления

Table5

Использует таблицу «refill» для представления

Table10

Используется для отчета по таблице «Clients»

Table11

Используется для отчета по таблице «Card_clients»

Table12

Используется для отчета по таблице «fuel»

Table13

Используется для отчета по таблице «personnel»

Table14

Используется для отчета по таблице «refill»

DataSourse1

Используется для связи Table1 с Grid1

DataSourse2

Используется для связи Table2 с Grid1

DataSourse3

Используется для связи Table3 с Grid1

DataSourse4

Используется для связи Table4 с Grid1

DataSourse7

Используется для связи Table5 с Grid1

DataSourse5

Используется для связи Query1 с Grid2

DataSourse6

Используется для связи Query 2 с Grid3

DataSourse8

Используется для связи Query3 с Grid4

DataSourse17

Используется для связи Query 8 с Grid5

DataSourse18

Используется для связи Query9 с Grid6

DataSourse19

Используется для связи Table10 с QuickRep1

DataSourse20

Используется для связи Table11 с QuickRep2

DataSourse21

Используется для связи Table12 с QuickRep3

DataSourse22

Используется для связи Table13 с QuickRep4

DataSourse23

Используется для связи Table14 с QuickRep5

DataSourse9

Используется для связи Table6 с Grid6

DataSourse10

Используется для связи Query 4 с Grid6

DataSourse11

Используется для связи Table7 с Grid7

DataSourse12

DataSourse13

Используется для связи Table8 с Grid8

DataSourse14

Используется для связи Query 6 с Grid9

DataSourse15

Используется для связи Table9 с Grid9

DataSourse16

Используется для связи Query 7 с Grid9

Источник: https://www.bibliofond.ru/detail.aspx?id=896977