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

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
Создание программного продукта начинается с исследования предметной области, постановки и решения задач, необходимых для реализации эффективного его функционирования, при этом для достижения максимальной эффективности очень важно учитывать все особенности информационной среды, в которой будет происходить эксплуатация программного продукта.
Сферой деятельности магазина «228» является реализация населению широкого спектра цифровой техники.
Главной задачей менеджера является продажа сотовых телефонов и аесессуаров. Тем самым менеджер обязан оперативно предоставить покупателю исчерпывающую информацию о наличии того или иного вида товара, его характеристиках, стоимости, провести наглядную сравнительную оценку различных вариантов в случае затруднения с выбором.
В последнее время состав ассортимента телефонов в салоне-магазине «Телефон 228» заметно расширился, в связи с этим усложняется процесс предоставления полезных для клиента сведений о необходимой ему товаре из-за отсутствия единой базы, включающей в себя исчерпывающую информацию по ассортименту.
Автоматизация учета ассортимента телефонов в последние годы явилась одним из рычагов для активного развития данной отрасли. Ее внедрение способствует обеспечению высокой скорости и оперативности работы и, что особенно важно, повышению прибыли в условиях постоянной конкуренции. Кроме того, достаточно большая часть информации в настоящее время появляется в электронном виде, что в сегодняшних условиях развития коммуникаций обеспечивает ей более высокую мобильность, доступность и массовость.
Отсутствие быстрого доступа к данным о цифровой техники из-за их разбросанности по разным базам данных или многочисленные ошибки в учете ассортимента из-за неправильных записей в журналах учета, а также при вводе данных затрудняют работу персонала.
Для разрабатываемого приложения к базе данных по учету ассортимента цифровой техники магазина «Телефон 228» сформулированы следующие требования:
От грамотного подхода к планированию разработки любого программного продукта зависит как качество полученной разработки, так и время, затраченное на разработку ПП.
При формировании структуры базы данных по учету ассортимента цифровой техники магазина «Телефон 228» была выделена основная сущность Товары (техника). Для нормализации БД были выделены следующие таблицы-сущности: Производители, Типы товаров, Торговые марки. Связь между этими сущностями отображена на рисунке 2.1. При этом каждая таблица БД представляется как совокупность строк и столбцов, где строки соответствуют экземпляру объекта, конкретному событию или явлению, а столбцы - атрибутам (признакам, характеристикам, параметрам) объекта, события, явления.
Составляющими базу данных являются семь таблиц, из них одна основная СП_Телефон содержит информацию о товарах и пять второстепенных:
Ниже описана структура таблиц:
СП_Телефонов
Таблица 2.1
Наименование поля таблицы |
Назначение |
Тип поля |
Свойства поля |
ID_Телефон |
Первичный ключ |
Счётчик |
Включить режим «Ключевое поле» |
id_марки |
Определяет связь с таблицей «СП_Марок» |
Числовой |
Индексированное поле: Да (допускаются совпадения) |
Цена |
Указывает цену товара |
Текстовый |
Размер поля: 5 |
Год |
Содержит информацию о годе |
Текстовый |
Размер поля: 20 |
СП_Аксессуаров
Таблица 2.2
Наименование поля таблицы |
Назначение |
Тип поля |
Свойства поля, отличные от заданных по умолчанию |
ID_Аксессуары |
Первичный ключ |
Счётчик |
Включить режим «Ключевое поле» |
Наименование |
Содержит наименование аксессуара |
Текстовый |
Размер поля: 20 |
Фирма |
Содержит наименование фирмы |
Текстовый |
Размер поля: 25 |
Цена |
Содержит информацию о цене |
Текстовый |
Размер поля: 20 |
СП_Сотрудников
Таблица 2.3
Наименование поля таблицы |
Назначение |
Тип поля |
Свойства поля, отличные от заданных по умолчанию |
ID_Сотрудник |
Первичный ключ |
Счётчик |
Включить режим «Ключевое поле» |
Фамилия |
Фамилия сотрудника |
Текстовый |
Размер поля: 30 |
Имя |
Имя сотрудника |
Текстовый |
Размер поля: 30 |
Отчество |
Отчество сотрудника |
Текстовый |
Размер поля: 30 |
Год_Рождения |
Содержит год сотрудников |
Дата/время |
_ |
Должность
Таблица 2.4
Наименование поля таблицы |
Назначение |
Тип поля |
Свойства поля, отличные от заданных по умолчанию |
ID_Должность |
Первичный ключ |
Счётчик |
Включить режим «Ключевое поле» |
Наименование |
Название должности |
Текстовый |
Размер поля: 30 |
Паспортные Данные
Таблица 2.5
Наименование поля таблицы |
Назначение |
Тип поля |
Свойства поля, отличные от заданных по умолчанию |
ID_Паспорт |
Первичный ключ |
Счётчик |
Включить режим «Ключевое поле» |
Серия |
Содержит серию паспорта |
Числовой |
Индексированное: Да (Допускаются совпадения» |
Номер |
Содержит номер паспорта |
||
Кем_выдан |
Информация о месте выдачи паспорта |
Текстовый |
Размер поля: 30 |
Код_подраздиления |
Код подраздиления |
Числовой |
Индексированное: Да (Допускаются совпадения» |
id_Сотрудник |
Соединяет с ID_Сотрудник |
Числовой |
Индексированное: Да (Допускаются совпадения» |
Таблица 2.6
В структуре разрабатываемого приложения к базе данных по учету ассортимента цифровой техники магазина «Телефон 228» планируется выделить следующие функциональные модули:
Рис. 2.1. Структура таблиц базы данных по учету ассортимента компьютерной техники в салоне-магазине «Стэк»
Выводы
В качестве среды разработки приложения к базе данных по учету ассортимента цифровой техники магазина «Телефон 228» была выбрана система объектно-ориентированного приложения Borland Delphi 7.
Среди разработчиков программных продуктов под Windows особой популярностью пользуется среда быстрой разработки приложений Delphi. Эта популярность завоевана, прежде всего, ее простотой, легкостью в использовании.
Среда Delphi обладает практически всеми возможностями современных систем управления базами данных. Она имеет встроенную поддержку языка структурированных запросов SQL. SQL (Structured Query Language) это сокращённое название структурированного языка запросов, предоставляющего средства создания и обработки данных в реляционных БД.
Базы данных считаются основным достоинством Delphi. Это действительно так. Хотя и язык не создавался специально под эту предметную область программирования, но реализация работы с данными просто поражает. Даже специализированные языки, которые предназначены для работы с базами данных (такие как MS Visual FoxPro), явно уступают Delphi по простоте и мощи программирования.
Delphi скрывает все сложности и в тоже время предоставляет широчайшие возможности при создании баз данных. Практически любую задачу можно реализовать средствами Delphi, причем за довольно короткий промежуток времени. Главное здесь то, что реализация приложения очень удобна и проста в понимании.
Для работами с базами данных в Delphi есть несколько наборов компонент. Каждый набор очень хорошо работает для решения определенного круга задач. Все компоненты используют разные технологии доступа к данным и отличаются по своим возможностям.
Фирма Borland предоставила разнообразные средства, работающие через разные технологии, и не ограничивает программиста только своими разработками. Такое положение вещей дает громадные преимущества, а главное свободу выбора.
Графический интерфейс приложения организован способом SDI (Single Document Interface). В данном способе не существует родительского окна, содержащего меню или панели инструментов, по отношению к активному. Каждое окно несет в себе эти элементы. SDI основан на использовании главного окна интерфейса как единого, появляющегося каждый раз при загрузке приложения и закрывающегося только при выходе из программы.
Главная форма приложения «Учет ассортимента цифровой техники магазина «Телефон 228», предоставляющая возможность просмотра ассортимента компьютерной техники, имеющегося на складе магазина имеет вид, представленный на рисунке 3.1.
Менеджер по продажам имеет возможность добавлять, редактировать или удалять информацию о товаре. Если на складе появился новый товар, продавец выполняет команду Добавить товар главного меню приложения, и вносит информацию о новом товаре в базу данных Чтобы изменить запись о товаре, нужно выполнить команду Редактировать товар. Добавление и редактирование данных о товаре выполняется с использованием одной формы (рис. 3.2). Если на складе не осталось товара, то его удаление из базы осуществляется командой главного меню Удалить товар. Удаление происходит лишь после его подтверждения (рис. 3.3). Все команды главного меню Редактирование дублируются соответствующими кнопками панели инструментов (рис. 3.4).
При нажатии кнопки Прайс-лист выполняется экспорт в Excel полного перечня компьютерной техники, сгруппированного по типам (рис. 3.5).
Следующие три формы, представленные в рисунках 3.6, 3.7, 3.8, позволяют редактировать информацию о типе товара, производителе или торговой марке.
Для формирования состава заказа менеджер выбирает нужный товар в списке товаров, нажимает кнопку «Выбрать».
Общая структура модулей приложения, назначение компонентов
Общая структура проекта приложения представлена на рисунке 3.12.
Назначение компонентов модуля DataModuleUnit (рис. 3.13):
Структура формы «Учет ассортимента цифровой техники магазина «Телефон 228», модуль Unit1.
Структура формы «Редактирование данных», модуль Unit2:
Структура формы «Типы товаров», модуль Unit3:
Структура формы «Торговые марки», модуль Unit5:
Структура формы «Результаты поиска», модуль Unit6:
Структура формы «Form8» с использованием компонентов Quick Report, модуль Unit8 (рис. 3.14):
Программная реализация приложения к БД
Для подключения к базе данных по учету ассортимента компьютерной техники салона-магазина «Стэк» средствами системы ООП Borland Delphi 7 была использована технология ADO (Active Data Objects). Это технология доступа к данным, разработанная корпорацией Microsoft. Очень хорошая библиотека, но использовать ее желательно только с базами данных Microsoft, а именно MS Access или MS SQL Server.
Подключение к базе данных выполняется с помощью компонента ADOConnection путем настройки его свойства ConnectionString.
Для отображения ассортимента товаров используется сетка DBGrid формы «Учет ассортимента компьютерной техники в салоне-магазине «Стэк», подключенная с помощью компонента DataSource к запросу ADOQuery. Для редактирования содержимого ассортимента используются такие методы компонента ADOTable, как Insert (добавить запись в таблицу), Delete (удалить запись из таблицы), Post (сохранить изменения записи), Cancel (отменить изменения записи). Диалоговое окно запроса подтверждения удаления записи выводится на экран с помощью кода, представленного в листинге 3.1.
Листинг 3.1
if Application.MessageBox(PCHar('Вы действительно хотите удалить '
+ DataModule2.ADOTable1Tovar.AsString),'Внимание!!!', MB_OKCANCEL)=id_Ok then DataModule2.ADOTable1.Delete;
Для одновременного перемещения указателя по запросу ADOQuery1 и по таблице ADOTable1, было использовано событие OnCellClick компонента DBGrid (листинг 3.2).
Листинг 3.2
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var i: integer;
begin
DataModule2.ADOTable1.First;
for i:=1 to DataModule2.ADOTable1.RecordCount-1 do
begin
if DataModule2.ADOTable1.Fields.Fields[0].AsInteger = DataModule2.ADOQuery1.Fields.Fields[0].AsInteger
then Break;
DataModule2.ADOTable1.Next;
end;
end;
Сортировка содержимого таблиц выполняется путем настройки свойства Sort соответствующего компонента ADOTable (листинг 3.4).
Листинг 3.3
DataModule2.ADOTable1.Sort := 'Цена ASC';
Экспорт данных в Excel для печати прайс-листа ассортимента компьютерной цифровой техники магазина «Телефон 228» выполняет код листинга 3.5.
Листинг 3.4
var XLApp,Sheet,Colum:Variant;
index,i,x,y:Integer;
begin
XLApp:=CreateOleObject('excel.application');
XLApp.visible:=true;
XLApp.workbooks.add(-4167);
XLApp.workbooks[1].worksheets[1].name:='Отчет';
Colum:=XLApp.workbooks[1].worksheets['Отчет'].columns;
Colum.columns[1].columnwidth:=20;
Colum.columns[2].columnwidth:=20;
Colum.columns[3].columnwidth:=20;
Colum.columns[4].columnwidth:=20;
Colum.columns[5].columnwidth:=20;
Colum:=XLApp.workbooks[1].worksheets['Отчет'].rows;
Colum.rows[2].Font.bold:=True;
Colum.rows[1].Font.bold:=True;
Colum.rows[1].Font.color:=clblue;
Colum.rows[1].Font.size:=14;
Sheet:=XLApp.workbooks[1].worksheets['Отчет'];
Sheet.cells[1,2]:='Прайс-лист';
Sheet.cells[2,1]:='Название товара';
Sheet.cells[2,2]:='Цена';
Sheet.cells[2,3]:='Поставщик';
index:=3;
DataModule2.ADOtable2.First;
for i:=0 to DataModule2. ADOtable2.RecordCount-1 do
begin
Sheet.cells[index,1].Interior.Color:=RGB(120,100,120);
Sheet.cells[index,1]:=DataModule2. ADOTable2.Fields.Fields[1].AsString;
Sheet.cells[index,1].Font.bold:=True;
inc(index);
DataModule2.ADOQuery1.First;
for x:=0 to DataModule2. ADOQuery1.RecordCount-1 do
begin
if DataModule2. ADOQuery1.Fields.Fields[2].AsString = DataModule2. ADOTable2.Fields.Fields[1].AsString then
begin
Sheet.cells[index,1]:=DataModule2. ADOQuery1.Fields.Fields[1].AsString;
Sheet.cells[index,2]:=DataModule2. ADOQuery1.Fields.Fields[5].AsString;
Sheet.cells[index,3]:=DataModule2. ADOQuery1.Fields.Fields[6].AsString;
inc(index);
end;
DataModule2. ADOQuery1.Next;
end;
DataModule2. ADOtable2.Next;
end;;
end;
Добавление выбранного вида компьютерной техники в состав заказа выполняет код, приведенный в листинге 3.6.
Листинг 3.5
DataModule2.ADOTable7.Insert;
DataModule2.ADOTable7.Fields[1].AsString:=DataModule2.ADOTable1.Fields[0].AsString;
DataModule2.ADOTable7.Fields[2].AsString:=DataModule2.ADOTable1.Fields[1].AsString;
DataModule2.ADOTable7.Fields[3].AsString:=DataModule2.ADOTable1.Fields[4].AsString;
Инструкция пользователя построена в виде справочной системы, которая была реализована с использованием приложения HTML HelpWorkshop. Подключение к справке выполняет код, приведенный в листинге 3.7.
Листинг 3.6
ShellExecute(Application.Handle, 'open', 'C:\Windows\hh.exe', 'Справка\Help.chm', nil, SW_SHOW)
Рис. 3.1. Главная форма «Учет ассортимента цифровой техники магазина «Телефон 228»
Рис. 3.2. Форма «Редактирование товара»
Рис. 3.3. Запрос на подтверждение удаления записи
Рис. 3.4. Меню Редактирование
Рис. 3.5. Экспорт прайс-листа в MS Excel
Рис. 3.6. Форма «Товары»
Рис. 3. 7. Форма «Аксессуары»
Рис. 3. 8. Форма «Сотрудники».
Рис. 3.9. Кнопка «выход»
Рис. 3.12. Общая структура проекта
Рис. 3.13. Компоненты модуля подключения к данным
Выводы
В процессе разработки каждого из модулей и функций проекта проводилось тестирование корректности их работы.
В ходе проверки были выявлены ошибки, связанные с экспортом прайс-листа ассортимента цифровой техники магазина «Телефон 228» в MS Excel.
Экспорт данных организован с использованием трех вложенных циклов с параметром, с помощью которых организован перебор всех записей в следующих связанных таблицах: «СП_типов_товаров», «СП_торговых_марок», «СП_товаров». При этом во избежание дублирования выводимых данных проводится проверка, соответствует ли, например, поле id_типа_товара из таблицы «СП_торговых_марок» одноименному полю из таблицы «СП_типов_товаров». После этого был выведен первый в таблице тип товара «Смартфон», затем были выведены товары всех типов, потом многократно был выведен следующий по списку тип товара «Планшетный ПК».
Для решения проблемы был организован дополнительный вложенный цикл со счетчиком по таблице с наименованиями типов товара, в котором проводилась проверка, соответствует ли содержимое поля «Наим_типа_товара» из запроса ADOQuery1 содержимому одноименного поля из таблицы ADOTable2 (листинг 4.1).
Листинг 4.1
Ошибки были обнаружены также в результатах вычисления общей стоимости выбранных товаров при формировании состава заказа.
Для вычисления общей стоимости был организован цикл со счетчиком, в котором для каждой выбранной записи к общей стоимости товаров прибавлялось значение поля «Цена» из таблицы ADOTable1. Результаты при этом не соответствовали действительности.
Для исправления ошибки был использован цикл со счетчиком, в котором переменной Price (цена) было присвоено значение поля «Цена», перечислялась общая стоимость (листинг 4.2).
Листинг 4.2
Для более полного охвата предметной области в дальнейшем имеет смысл дополнить состав базы данных таблицами, содержащими информацию о сотрудниках магазина «Телефона 228», о поставщиках и составах поставок товаров. При этом следует использовать расширенные данные при формировании имеющихся отчетов.
Функционал приложения можно расширить добавлением возможности поиска заказов по дате оформления, соответствующей указанному диапазону дат для формирования отчета по продажам за период времени, возможностью учета проведения акций с предоставлением скидок на покупку компьютерной техники.
База данных это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области.
Безопасность данных защита данных от несанкционированной случайной или намеренной модификации, разрушения или раскрытия.
Данные это описание любого явления (или идеи), которое представляется достаточно ценным, чтобы его сформулировать и точно зафиксировать.
Жизненный цикл это непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации.
Информационная система система, служащая для сбора, накопления, преобразования и использования данных или, по-другому, информации.
Информационная технология процесс, использующий совокупность средств и методов сбора, обработки и передачи данных для получения информации нового качества о состоянии объекта, процесса или явления.
Информационное общество общество, в котором большинство работающих занято производством, хранением, переработкой и реализацией информации.
Информация это приращение знаний, которое может быть выведено на основе данных.
Нормализация отношений формальный аппарат ограничений на формирование таблиц, позволяющий устранить дублирование, обеспечить непротиворечивость хранимых в базе данных.
Пользовательский интерфейс это комплекс правил и средств, организующих взаимодействие пользователя с устройствами или программами.
Программа законченный алгоритм, реализованный на языке программирования и в полной мере решающий поставленную задачу.
Программное обеспечение совокупность программ для ЭВМ, обеспечивающее пользователя функциями, необходимыми для полноценного взаимодействия и использования ЭВМ.
Система управления базами данных набор программных средств, обеспечивающих хранение и обработку данных в базе данных.
Сопровождение процесс изменения программного обеспечения после поставки с целью исправления ошибок, повышения производительности или для адаптации к изменившимся условиям.
Спиральный тип процесса разработки процесс разработки программного обеспечения, суть которого заключается в том, что на каждой итерации строится очередная версия программного обеспечения на основе его предыдущей версии.
Схема данных графическое или формальное описание логической структуры базы данных.
Тестирование процесс многократного выполнения программы с целью обнаружения ошибок.
Целостность данных полнота и корректность хранимых в базе данных.
Целостность базы данных свойство базы данных, при выполнении которого база данных содержит полную и непротиворечивую информацию, необходимую и достаточную для корректного функционирования приложений; это свойство сохраняется при всех манипуляциях с данными.
Эффективность качество выполнения требуемых функций при минимальных затратах аппаратных и программных ресурсов. Для корректной оценки эффективности требуется провести тестирование программного обеспечения на наличие ошибок.
ADO ActiveX data objects
DFD Data flow diagrams
ERD Entity-relationship diagrams
IDE Integrated development environment
MS Microsoft
SDI Single document interface
RAD Rapid application development
SQL Structured query language
QBE Query by example
VCL Visual component library
БД База данных
ИС Информационная система
ОС Операционная система
ПО Программное обеспечение
ПП Программный продукт
ПС Программное средство
СУБД Система управления базами данных
ЖЦ Жизненный цикл