Название
|
Адрес
|
Телефон справочной
|
Телефон главного менеджера
|
Карта
|
|
|
|
|
|
Ключ - атрибут или набор атрибутов, используемый для
идентификации экземпляра сущности, то есть по значениям ключевых полей можно
однозначно найти требуемый экземпляр сущности. Каждая сущность обладает хотя бы
одним возможным ключом. Ключами сущностей являются соответственно поля:
- для сущности "Автомобиль" поле
"ID автомобиля";
- для сущности "Заказ" поле
"Код заказа";
- для сущности "Реализация" поле
"Номер договора";
- для сущности "Клиенты" поле
"Паспортные данные";
- для сущности "Менеджеры" поле
"ID менеджера";
- для сущности "Автосалон" поле
"Название".
Инфологическая модель представляет собой описание предметной
области, основанное на анализе семантики объектов и явлений, выполненное без
ориентации на использование в дальнейшем программных или технических
компьютерных средств. Инфологическая модель БД Автосалона представлена на
рисунке 2.2.
Рисунок 2.2. - Инфологическая модель базы данных
Каждая из сущностей имеет набор атрибутов. Между сущностями
устанавливаются связи. Связь - это некоторая ассоциация между двумя сущностями.
Связи делятся на три типа(1:1, 1:М, М:М). Все связи в имеют тип 1:М.
Реляционная база данных представляет собой совокупность отношений, содержащих
всю информацию, которая должна храниться в БД.
Реляционная модель данных "Учет торговых операций в
автосалоне", отражающая связи между таблицами, приведена на рисунке 2.3.
Рисунок 2.3. - Реляционная модель данных "Учет торговых
операций в автосалоне"
2.3
Методология SADT. Описание IDEF0-модели
SADT (Structured Analysis and Design Technique) -методология
структурного анализа и проектирования, интегрирующая процесс моделирования,
управление конфигурацией проекта, использование дополнительных языковых средств
и руководство проектом со своим графическим языком.
Взаимодействие функций с внешним миром и между собой
описывается с помощью дуг (связей). В IDEF0 различают пять типов дуг:
) Вход - материал или информация, которые используются
или преобразуются блоком для получения результата (выхода);
) Выход - результат выполнения функции (материал или
информация);
) Управление - условия, правила, стратегии, стандарты,
которые влияют на выполнение функции;
) Механизм - ресурсы, с помощью которых выполняется
работа;
) Вызов - специальная дуга, указывающая на другую
модель предметной области.
Граничной дугой называется дуга, выходящая за пределы
диаграммы. Внутренние стрелки связывают работы между собой. Различают пять
видов связей работ:
) Связь по входу - стрелка выхода вышестоящей работы
направляется на вход нижестоящей;
) Связь по управлению - выход вышестоящей работы
направляется на управление нижестоящей;
) Обратная связь по входу - выход нижестоящей работы
направляется на вход вышестоящей;
) Обратная связь по управлению - выход нижестоящей
работы направляется на управление вышестоящей;
) Связь выход-механизм - выход одной работы
направляется на механизм другой.
В приложении А представлена IDEF0-модель "Информационная
система автосалона", декомпозированная на 3 подуровня. На первом уровне
(приложение А, рис. 1) блок А0 отвечает за реализацию автомобилей на основе
следующих данных: заказ клиента и поставщик автомобилей. В результате на выходе
получаем выполненный заказ. В качестве управления выступают: законодательство
РФ, лицензия на продажу, каталог автомобилей. Механизм - Автосалон "AlongTheRoad". При декомпозиции
(приложение А, рис. 2) блок А0 разбивается на 4 блока: А1, А2, А3, А4. В блоке
А1 формируется план закупок, руководствуясь входными данными заказ клиента,
поставщик автомобилей. Блок А2 - Договор с поставщиками соединяется с блоком А3
- Формирование каталога автомобилей. Блок А4 отвечает за сбыт автомобилей, на
выходе - выполненный заказ. Механизмами выступают: отдел по закупке
автомобилей, юридический отдел, отдел рекламы и PR, отдел бухгалтерии,
отдел сбыта автомобилей. Таким образом, выделили 4 подзадачи, произведя
детализацию первого уровня.
Перейдем на 3 уровень декомпозиции блока А4 - Сбыт
автомобилей (приложение А, рис. 3). Диаграмма представлена тремя блоками: А41 -
Принятие заявки, А42 - Оформление договора, А43 - Продажа автомобиля. В
качестве управления остаются те же стандарты и правила, что и на первом уровне,
на выходе получаем выполненный заказ.
2.4 Методология DFD
Целью методологии является построение модели рассматриваемой
системы в виде диаграммы потоков данных (Data Flow Diagram - DFD). Диаграммы
потоков данных предназначены прежде всего для описания документооборота и
обработки информации, хотя допускают и представление других объектов[6, 57].
При создании диаграммы потоков данных используются четыре основных понятия:
Потоки данных;
Процессы (работы) преобразования входных потоков данных в
выходные;
Внешние сущности;
Накопители данных (хранилища).
Потоки данных являются абстракциями, использующимися для
моделирования передачи информации (или физических компонент) из одной части
системы в другую. Потоки на диаграммах изображаются именованными стрелками,
ориентация которых указывает направление движения информации[6, 58].
Процессы (работы) служат для преобразования входных потоков
данных в выходные. Каждый процесс имеет уникальный номер для ссылок на него
внутри диаграммы, который может использоваться совместно с номером диаграммы
для получения уникального индекса процесса во всей модели. Хранилище
(накопитель) данных моделирует данные, которые будут сохраняться в памяти между
процессами. Информация, которую содержит хранилище, может использоваться в
любое время после ее получения, при этом данные могут выбираться в любом
порядке. Внешняя сущность представляет собой материальный объект вне контекста
системы, являющейся источником или приемником данных. В приложении Б
представлены диаграммы потоков данных ИС "Автоматизация торговых операций
в автосалоне".
3. Разработка приложения "Автоматизация учета
торговых операций в автосалоне"
3.1 Разработка форм приложения
Для удобства работы приложение будет открываться с главной
формы (рис. 3.1). Формы связываются с главной формой функцией подключением к
главной форме файлов: #include "Unit1.h". Оформим внешний вид формы
фоновым рисунком. Это можно сделать с помощью метода LoadFromFile:
Image1->Picture->LoadFromFile("train.bmp");
Или добавить в свойство Picture компонента Image нужное изображение.
Воспользуемся вторым способом.
Рисунок 3.1. - Главная форма приложения
Кнопки для удобства перехода между формами (Автосалон,
Автомобиль, Реализация и т.д.) сделаны также с помощью компонента Image.
Создадим форму для просмотра данных и навигации по ним на
примере таблицы "Автомобиль" (рис. 3.2.). Для этого добавим на форму
компоненты Panel, DBGrid, ComboBox, Button, BitBtn, Edit, Image, Label, CroupBox, Navigator и не визуальный компонент OpenPictureDialog.
Рисунок 3.2. - Форма для просмотра и поиска данных
Аналогичным образом созданы остальные формы для просмотра и
поиска данных.
Рассмотрим создание форм для просмотра отчетов(рис.3.3).
Используем компонент QuickReport, основанный на наборе горизонтальных
полос (bands). При построении отчета на форму помещаются несколько компонентов
QRBand различных типов, также используются компоненты QRImage, QRLabel, QRSysData.
Рисунок 3.3. - Форма отчета "Каталог автомобилей"
Для создания формы запросов (рис. 3.4.) будем использовать
компоненты DBGrid - позволяет просматривать запрашиваемые данные, RadioButton - Отражает критерии
запроса, RadioGroup - группирует критерии для удобства. Кнопка BitBtn закрывает форму.
Рисунок 3.4. - Форма просмотра запросов
3.2 Создание модуля данных
Наличие на форме большого количества невидимых компонентов в
ряде случаев затрудняет проектирование пользовательского интерфейса. Отделение
компонентов, отвечающих за доступ к данным и бизнес-логику информационной
системы, от интерфейсных элементов, применяется для облегчения ее дальнейшей
модернизации. Для этой цели в C++ Builder имеется специальный тип, называемый
модулем данных - TDataModule. Компонент этого типа можно условно считать
специальным видом формы. Такой компонент-контейнер может содержать компоненты
со страницы Data Access, а сам он не виден пользователю во время выполнения.
Создание модуля данных выполняется следующим образом:
File/New/Other/DataModule
В появившемся окне разместить компоненты:
ADOConnection, DataSource и ADOTable. Количество компонентов DataSource и ADOTable должно
соответствовать количеству таблиц в БД (рис.3.5). Свойство каждого компонента
DataSource DataSet установить на имя соответствующего ему ADOTable (например, DataSet->ADOTable1).
Рисунок 3.5. - Окно модуля данных с компонентами
Компонент ADOConnection1 обеспечит связь других компонентов с
базой данных при помощи механизма ADO. Связь обеспечивается свойством
компонента ConnectionString:
) Выполнить двойной щелчок по свойству ConnectionString
компонента ADOConnection1. Откроется окно подключения компонента к ADO:
Рис.3.6. - Окно подключения компонента к ADO
2) Нажать кнопку Build. Открывается новое окно,
содержащее настройки подключения, выбираем поставщика данных на вкладке
Поставщик данных:
Рисунок 3.7. - Выбор поставщика данных
3) На вкладке Подключение указать источник данных -
прописать путь к БД:
G:\БД\БД авто.accdb
4) Нажать Проверить подключение:
Рисунок 3.8. - Окно проверки связи с данными
Выделить компоненты ADOTable и установить свойство Connection на ADOConnection1. Для
каждого компонента ADOTable выбрать имя таблицы в свойстве TableName. Установить свойство Active->true.
Рисунок 3.9. - Окно инспектора объектов с установленными
свойствами
Для обеспечения подключения формы приложения к данным с
помощью модуля данных следует заранее создать форму приложения и добавить ее в
хранилище (repository):
Рисунок 3.10. - Добавление формы в репозиторий
После создания макеты формы выполнить:
File/Include/Unit/DataModule
Для отображения таблицы на форме расположить компонент DBGrid и установить его
свойство DataSource на имя одного из компонентов в модуле. После выполнения указанных
действий на каждой из созданных форм отобразится таблица БД.
Рисунок 3.11. - Форма с отображенной таблицей
В модуль данных добавляем компоненты DataSource, ADOQuery для связи с таблицей БД.
Устанавливаем свойство DataSet компонента DataSource7 на имя компонента ADOQuery1. Свойство Connection компонента ADOQuery1 устанавливаем на ADOConnection1 .
Рисунок 3.12. - Модуль данных с компонентами DataSource, ADOQuery.
Создаем форму следующего вида: DBGrid, RadioButton, RadioGroup, BitBtn
Рисунок 3.13. - Форма просмотра запросов
Cвойство DataSource компонента DBGrid устанавливаем
соответственно модулю данных: DataModule1->Datasource7.
В обработчикe события OnClick компонента RadioButton :
__fastcall TForm8::RadioButton1Click(TObject
*Sender)
{->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
Автомобиль.Название, Автомобиль.Цвет, Автомобиль.Цена FROM
Автомобиль");->ADOQuery1->Open();
}
//---------------------------------------------------------------------------__fastcall
TForm8::RadioButton2Click(TObject *Sender)
{->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
Автомобиль.[ID автомобиля], Автомобиль.Название, Автомобиль.Мощность FROM
Автомобиль GROUP BY Автомобиль.[ID автомобиля], Автомобиль.Название,
Автомобиль.Мощность ORDER BY Автомобиль.Мощность;");->ADOQuery1->Open();
}
//---------------------------------------------------------------------------__fastcall
TForm8::RadioButton3Click(TObject *Sender)
{->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
Реализация.[ФИО клиента], Автомобиль.Название, Автомобиль.Цвет, Заказ.[Год
выпуска], Реализация.[ID менеджера]FROM Заказ INNER JOIN (Автосалон INNER JOIN
(Автомобиль INNER JOIN Реализация ON Автомобиль.[ID автомобиля] =
Реализация.[ID автомобиля]) ON Автосалон.[Название автосалона] =
Реализация.[Название автосалона]) ON Заказ.[Код заказа] = Реализация.[Код
заказа];");->ADOQuery1->Open();
}
//---------------------------------------------------------------------------__fastcall
TForm8::RadioButton4Click(TObject *Sender)
{->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
Клиенты.[ФИО клиента], Клиенты.[Паспортные данные], Реализация.[Дата
заказа]FROM Клиенты INNER JOIN (Автомобиль INNER JOIN Реализация ON
Автомобиль.[ID автомобиля] = Реализация.[ID автомобиля]) ON Клиенты.[Паспортные
данные] = Реализация.[Паспортные данные]ORDER BY Реализация.[Дата
заказа];");1->ADOQuery1->Open();
}
//-------------------------------------------------------------------------
Запросы при работе приложения представлены ниже
3.4 Создание отчетов
Отчетом называется организованная и отформатированная
информация, взятая из базы данных и предназначенная для вывода на печать. Он
может иметь вид таблицы или оформлен по разработанной пользователем свободной
форме. Отчет позволяет выбрать критерии, согласно которым извлекается информация
из базы данных. Его можно дополнить рисунками, диаграммами, комментариями.
Создавая форму для просмотра отчета, размещаем следующие
компоненты:
- Для подключения к
БД -
ADOConnection, ADOTable, DataSource;
- Для отображения отчета - QuickRep, QRBand, QRDBText, QRLabel, QRDBImage ( вкладка QReport);
Задаем свойство Caption компонента QRLabel в соответствии с
названиями столбцов таблицы в БД Access.
Рисунок 3.14. - Форма для просмотра отчета
Затем задаем свойство BandType-> rbDetail компонента
QRBand1 и BandType-> rbColumnHeader
компонента QRBand2. Свойство DataSet компонента QRDBText устанавливаем на имя
компонента ADOTable для связи с таблицей БД. Затем в свойстве DataField выбираем имя требуемого
поля таблицы. На форме работы с таблицей БД зараенее создана кнопка Каталог
автомобилей, которая будет отвечать за открытие отчета. В обработчике события OnClick этой кнопки:
__fastcall TForm1::Button2Click(TObject *Sender)
{->QuickRep1->Preview();
}
4. Тестирование приложения
4.1 Тест 1
Проверим работу приложения. Для этого запустим файл Project1.exe. После запуска
приложение отображает главную форму, содержащую главное меню (рис. 4.1.)
Рисунок 4.1. - Главная форма приложения
При выборе пункта меню "Автосалон" на экране
появляется следующая форма, представленная на рис 4.2. При нажатии на кнопку Close, возвращаемся в главное
меню приложения.
Рисунок 4.2. - Форма "Автосалон"
При нажатии на пункт меню "Автомобиль" на экране
появляется форма, представленная на рис 4.3.
Рисунок 4.3. - Форма "Автомобиль"
То же самое происходит при нажатии остальных пунктов меню.
Форма просмотра и поиска данных "Заказ" представлена на рис. 4.4.
Рисунок 4.4. - Форма "Заказ"
4.2 Тест 2
Выбрав пункт главного меню "Автосалон" произведем
поиск по адресу (рис. 4.5.). Стрелка в области данных переместилась на вторую
запись в соответствии с введенным критерием поиска. Произведем поиск по
названию автосалона (рис. 4.6.), введя требуемое название "Киа", так
же происходит перемещение по записям.
Рисунок 4.5. - Поиск данных по адресу
Рисунок 4.6. - Поиск данных по названию автосалона
При нажатии на запись в области данных в верхней части формы
отображается карта, соответствующая адресу автосалона (рис. 4.7.). Кнопки
"Открыть" и "Сохранить" позволяют загружать другие
изображения и сохранять их в существующей БД.
Рисунок 4.7. - Форма "Автосалон" с картой
месторасположения
Кнопка "Увеличить" открывает отчет с увеличенным
изображением карты (рис. 4.8.)
Рисунок 4.8. - Просмотр отчета
Рассмотрим работу формы Avto, вызываемую в главном
меню при нажатии на кнопку "Автомобиль". Здесь так же возможно осуществление
поиска по записям при введении определенных критериев. Кроме того, доступна
фильтрация данных по типу комплектации автомобиля (рис. 4.9.) Фильтрация
производится следующим образом: в выпадающем списке выбирается критерий
фильтрации и нажимается кнопка "ОК".
Рисунок 4.9. - Фильтрация данных
При нажатии в области данных на требуемую запись в правой
части отображается фото автомобиля (рис. 4.10.).
Рисунок 4.10. - Отображение фото выбранной записи таблицы
Возможно добавление и удаление записей с помощью компонента Navigator. На рисунке 4.11.
добавлена шестая запись с помощью кнопки "+", а также загружено
изображение с помощью кнопок "Открыть" и "Сохранить". Таким
образом, обеспечивается обновление данных каталога автомобилей.
Рисунок 4.11. - Обновление данных таблицы (добавление новой
записи и загрузка изображения)
4.3 Тест 3
Рисунок 4.12. - Отчет "Каталог автомобилей"
При нажатии на кнопку "Просмотр запросов" на экране
появляется форма просмотра запросов (рис. 4.13.)
Рисунок 4.13 - Форма просмотра запросов
При выборе параметров запросов данные моментально отображаются
в верхней области формы (рис. 4.14. а, б, в)
Рисунок 4.14 (а) - Форма просмотра запросов в различных
режимах
Рисунок 4.14 (б) - Форма просмотра запросов в различных
режимах
Рисунок 4.14 (в) - Форма просмотра запросов в различных
режимах
Кнопка "Close" закрывает данную форму.
Работа остальных режимов форм аналогична, снимки экрана
представлены в приложении В. Листинг программного кода представлен в приложении
Г.
Заключение
В результате выполнения курсовой работы разработана
информационная система "Автоматизация учета торговых операций в
автосалоне". Проектирование и разработка ИС осуществлялось в несколько
этапов:
- Проектирование БД (анализ, разработка и
описание предметной области);
- Разработка алгоритма на языке С++;
- Разработка пользовательского интерфейса
приложения;
- Осуществление программной реализации
приложения;
- Тестирование и отладка разработанного
приложения.
Выполнены поставленные цели и задачи: создана ИС
автоматизации учета торговых операций в автомобильном салоне, включающая в себя
БД и приложение, позволяющее вести учет и контроль за базой данных.
Разработанное приложение отвечает всем требованиям предметной области, таблицы
созданной базы данных отвечают требованиям нормализации, что позволяет
обеспечить целостность и непротиворечивость информации. В ходе проектирования
БД изучена сфера деятельности автосалона, собрана необходимая информация.
Назначение данной БД состоит в возможности вести учет торговых операций
компании, хранить и получать необходимые данные, а также обновлять их.
Существует возможность корректировки информации. Созданные формы, запросы и
отчеты позволяют быстро и эффективно обновлять данные, осуществлять поиск
нужных данных, анализировать данные. Таким образом, получены навыки
работы с автоматизированными системами в условиях, приближенных к реальным,
закреплены практические навыки разработки БД, запросов на языке SQL, прикладных программ в
среде визуального программирования Borland C++ Builder 6.0. Созданное
приложение позволяет сократить затраты времени и средств на хранение, обработку
и транспортировку информации, обеспечивает удобный доступ к ней, снижает объем
бумажного документооборота.
Список
используемых источников
1) Карпова Т.С.
Базы данных: модели, разработка. - СПб.: Питер, 2006,. - 304 с.
2) Лапина Т.И.
Управление данными [Текст]. - Юго-Зап. гос. ун-т, Курск, 2011. - 255 с.
3) Илюшечкин В.М. основы использования и
проектирования БД [Текст]: учебное пособие. - М.: Высшее образование, 2009. -
213с.
4) Хомоненко
А.Д. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А.Д.
Хомоненко. - СПб.: Корона-принт, 2005. - 416 с.
5) Верхова Г.В. Базы данных: учебное пособие. -
СПб.: Политехника, 2008. - 171с.
6) Горбаченко В. И., Убиенных Г. Ф., Бобрышева Г.
В. Создание функциональной модели информационной системы с помощью CASE-средства CA ERwin Process Modeler 7.3. - Пенза: ПГУ, 2010.
- 66 с.
7) Копейкин М.В., Спиридонов В.В., Шумова Е.О.
Базы данных. Концепция баз данных: Учеб. пособие. - СПб.: СЗТУ, 2004. - 116 с.
) Маркин А.В. Построение запросов и
программирование на SQL [Текст]: учебное пособие. - М.: Диалог - МИФИ, 2008. - 320с.
) Голицына О. Л. Программное обеспечение
[Текст] : учебное пособие. - 3-е изд., перераб. и доп. - М. : Форум, 2010.