Автор работы: Пользователь скрыл имя, 29 Апреля 2013 в 16:48, курсовая работа
Целью данной курсовой работы является разработка информационной системы для учета продаж торговой фирмы.
Для достижения цели курсового проекта необходимо решить следующие задачи:
описать основные направления деятельности предприятия, его организационную структуру;
описать функции автоматизируемого подразделения, и создать схему информационных потоков автоматизируемых процессов;
создать функциональную модель автоматизируемых процессов в стандарте IDEF0;
описать требования и ограничения проектируемой ИС
Введение 3
1. Аналитическая часть 5
1.1. Анализ предметной области 5
1.2. Функции автоматизируемого подразделения и схема его информационных потоков 7
1.3. Функциональная модель автоматизируемых процессов 8
1.4. Требования и ограничения проектируемой ИС, выбор средств разработки и его обоснование 14
2. Проектная часть 17
2.1. Модель процессов ИС 17
2.2. Модель данных ИС с использованием стандарта IDEF1X 20
2.3. Программная реализация ИС 25
2.4. График выполнения проекта 32
2.5. Расчет основных экономических показателей 34
Заключение 38
Библиографический список 39
Рис.2.6. Логическая модель данных
Физическая модель данных зависит от конкретной СУБД, в ней содержится информация обо всех объектах базы данных. Поскольку стандартов на объекты базы данных не существует (например, нет стандарта на типы данных), физическая модель зависит от конкретной реализации СУБД и ее диалекта SQL.
Физическая модель базы данных представлена на рисунке 2.7.
Рис.2.7. Физическая модель данных
Основными объектами логической модели данных являются сущности, атрибуты и взаимосвязи. Физическая модель данных, как правило, создается на основе логической, поэтому каждому объекту логической модели соответствует объект физической модели (хотя соответствие может быть неоднозначным). В физической модели данных сущности логической модели данных соответствует таблица, экземпляру сущности – строка в таблице, а атрибуту – колонка таблицы.
Рассмотрим созданную физическую модель на основе описания, входящих в ее состав таблиц.
Таблица 2.1
Таблица «Provider»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_prov (ключевое) |
Содержит идентификационный номер поставщика |
integer |
2 |
Name_p |
Содержит название фирмы поставщика |
varchar(20) |
3 |
Address_p |
Содержит адрес поставщика |
varchar(20) |
Таблица 2.2
Таблица «TypeTov»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_type (ключевое) |
Содержит идентификационный номер категории товара |
integer |
2 |
Name_type |
Содержит название категории |
varchar(20) |
Таблица 2.3
Таблица «Zakaz»
№ |
Наименование поля |
Содержание |
Тип |
1 |
N_zakaz (ключевое) |
Содержит номер заказа |
integer |
2 |
Id_klient |
Содержит идентификационный номер из таблицы Klient |
integer |
3 |
Id_prod |
Содержит идентификационный номер из таблицы Product |
varchar(20) |
4 |
kolvo |
Содержит количество купленного товара |
integer |
5 |
Date_zak |
Содержит информацию о дате создания заказа |
datetime |
6 |
Id_emp |
Содержит идентификационный номер сотрудника, которым был создан заказ |
integer |
Таблица 2.4
Таблица «Klient»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_klient (ключевое) |
Содержит идентификационный номер заказчика |
integer |
2 |
Fam_k |
Содержит фамилию заказчика |
varchar(20) |
3 |
Name_k |
Содержит имя заказчика |
varchar(20) |
4 |
Otch_k |
Содержит отчество заказчика |
varchar(20) |
5 |
adress |
Содержит адрес заказчика |
varchar(20) |
6 |
Tel |
Содержит телефон для связи с заказчиком |
integer |
7 |
E_mail_k |
Содержит e-mail для связи с заказчиком |
varchar(20) |
Таблица 2.5
Таблица «Employee»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_emp (ключевое) |
Содержит идентификационный номер сотрудника |
integer |
2 |
Fam_e |
Содержит фамилию сотрудника |
varchar(20) |
3 |
Name_e |
Содержит имя сотрудника |
varchar(20) |
4 |
Otch_e |
Содержит отчество сотрудника |
varchar(20) |
5 |
Post |
Содержит информацию о должности |
varchar(20) |
Таблица 2.6
Таблица «Product»
№ |
Наименование поля |
Содержание |
Тип |
1 |
Id_prod (ключевое) |
Содержит идентификационный номер товара |
integer |
2 |
Name_prod |
Содержит название товара |
varchar(20) |
3 |
cost |
Содержит информацию о цене товара за штуку |
integer |
4 |
Id_prov |
Содержит информацию о названии фирмы поставщика |
varchar(20) |
5 |
Ed_izmer |
Содержит информацию о единицах измерения товара |
integer |
6 |
Id_type |
Содержит идентификационный номер категории, к которой относится товар |
integer |
7 |
Kolvo_skald |
Содержит информацию о количестве товара на складе |
integer |
Для разработки физической и логической моделей использовалось CASE-средство для проктирования баз данных AllFusion Erwin Data Modeler. Реализация физической модели была осуществлена в Microsoft SQL Server 2008 при помощи прямого проектирования.
Ниже приведен фрагмент SQL-кода, который создает связанные таблицы, а именно связывает таблицы товар, поставщик и категория товара:
CREATE TABLE Product
( id_prod integer NOT NULL ,
name_prod varchar(20) NULL ,
cost integer NULL ,
ed_izmer varchar(20) NULL ,
kolvo_sklad integer NULL ,
id_type integer NULL ,
id_prov integer NULL )
go
CREATE UNIQUE CLUSTERED INDEX XPKТовар ON Product
( id_prod ASC )
go
CREATE NONCLUSTERED INDEX XIF1Товар ON Product
( id_type ASC )
go
CREATE NONCLUSTERED INDEX XIF2Товар ON Product
( id_prov ASC )
go
На данном этапе окончательно выбираем средства для программной реализации создаваемой информационной системы.
С программой работает
персонал, принимающий заказы.
Персонал находится в одном помещении,
что позволяет использовать ресурсы локальной
сети и сервера, находящегося в том же
здании. Это обусловило выбор архитектуры
«клиент-сервер». Архитектура «клиент-сервер»
предполагает организацию технического
обеспечения и разделения обработки информации
между двумя компонентами, которые называются
клиентом рабочей станцией и сервером.
Обе части выполняются на разных по мощности
компьютерах, объединенных сетью. При
этом клиент посылает серверу запросы,
а сервер их обслуживает.
Средства MS Visual Studio для работы с БД можно разделить на 2 вида: инструментальные и компоненты. К инструментальным относятся специальные программы и пакеты, обеспечивающие обслуживание БД вне приложений. Компоненты предназначены для создания приложений, работающих с БД.
Для работы с БД из инструментальных средств MS Visual Studio возможно использование такой технологии доступа, как ADO.NET. В ADO.NET для представления данных в компьютере служит компонент набора данных DataSet.
Объект DataSet представляет
собой коллекцию одну или множество таблиц.
Таблицы в пределах набор данных DataSet представляют
собой самостоятельные объекты – DataTable.
Если DataSet заполняется информацией из
набора таблиц исходной базы данных, то
в нем будет сформировано и множество
объектов DataTable. То есть, каждый объект
DataTable обычно соответствует единственной
таблице исходной базы данных. Таким образом,
DataSet как бы имитирует структуру основной
базы данных.
В объекте DataSet также могут храниться процедуры
и реляционные связи между таблицами.
Поскольку DataSet может хранить набор таблиц и набор связей между ними, он является гибким инструментом, позволяющим представлять пользователям более сложные, иерархические наборы данных.
Объект DataGridView — автоматически генерирует код процедуры загрузки формы, в результате которого выполниться метод Fill (обновления) адаптеров данных таблиц для SQL Server.
ТableAdapter обеспечивает доступ к таблице БД; он создает набор данных, который передает все данные из физической таблицы БД с помощью ADO.NET.
Далее перейдем к рассмотрению разрабатываемой информационной системы. На рисунке 2.8 изображена функциональная модель информационной системы.
Модуль «Основное меню» является основным модулем. Его назначение - выбор дальнейшего действия. Он позволяет загрузить другие модули или осуществить выход из СУБД. Модуль «Выход», осуществляет завершение работы программы.
Модули редактирование «Данных о клиенте», «Данных о поставщике», «Данных о сотруднике», «Данных о товаре», «Данных о сотруднике» просматривают и редактируют соответствующие справочники, т.е. осуществляют добавление, удаление, изменение и сохранение записей справочника.
Модуль редактирование «Заказа» позволяет редактировать соответствующие записи, а также предусмотрен поиск, сортировка, фильтрация, запросы и формирование отчета.
Рассмотрим схему главного меню приложения (см. рис. 2.9):
Модулю «Основное меню» соответствует экранная форма «ИС «Берег»».
Форма содержит:
- кнопки перехода ко всем экранным формам;
- кнопку закрытия экранной формы;
Форма «ИС «Берег»» позволяет осуществить выбор необходимого модуля посредством нажатия соответствующей кнопки (см. рис.2.10).
Рис.2.10 Схема главного меню приложения
После нажатия кнопки на главной форме, появляется форма справочники, с соответствующей таблицей, в которой происходит редактирование ее данных при помощи (см. рис. 2.11 – 2.12). В открывшейся форме также возможен переход между существующими справочниками, они представлены компонентом TabControl (управление страницами), новые страницы - TabPage.
При нажатии на кнопку Заказы на главной форме открывается форма «Заказы». Данная форма является основной и предоставляет возможности (см. рис. 2.13):
Так как таблица «заказ» является операционной, то большинство полей содержат id-значения из других таблиц. Для отображения значений в объекте TableAdapter формируется следующий запрос:
SELECT zakaz.N_zakaz, product.name_prod, zakaz.date_zak, zakaz.kolvo, employee.fam_e, klient.Fam_k
FROM zakaz INNER JOIN
employee ON zakaz.id_emp = employee.id_emp INNER JOIN
klient ON zakaz.id_klient = klient.id_klient INNER JOIN
product ON zakaz.id_prod = product.id_prod
Для таблицы «Общая сумма заказа клиента» используется хранимая процедура:
ALTER PROCEDURE [dbo].[show_summ]
AS
BEGIN
SET NOCOUNT ON;
Select k.fam_k, sum(z.kolvo) as kolvo,sum(z.kolvo*p.cost) as sum_cost from klient k INNER JOIN
zakaz z ON k.id_klient = z.id_klient INNER JOIN
product p ON z.id_prod = p.id_prod
group by k.fam_k
END
Код для фильтрации (аналогичен для остальных форм): при выборе необходимой радиокнопки свойство Filter задает выражение используемое для фильтрации, в котором поле для фильтрации задается явно, а значение вводит сам пользователь.
If RBFiltEmp.Checked Then
Me.ZakazBindingSource.Filter = "fam_e='" + TBfiltr.Text + "'"
ElseIf RBFiltKlient.Checked Then
Me.ZakazBindingSource.Filter = "fam_k='" + TBfiltr.Text + "'"
ElseIf RBFiltDate.Checked Then
Me.ZakazBindingSource.Filter = "date_zak='" + DateTimePicker1.Text + "'"
ElseIf RBFiltKolvo.Checked Then
Me.ZakazBindingSource.Filter = "kolvo='" + TBfiltr.Text + "'"
ElseIf RBFiltTov.Checked Then
Me.ZakazBindingSource.Filter = "name_prod='" + TBfiltr.Text + "'"
ElseIf RBFiltNot.Checked Then
Me.ZakazBindingSource.Filter = ""
End If
Код для сортировки (аналигичен для остальных форм): при выборе радиокнопки фамилия ‘свойство sort задает имя столбца, используемого для сортировки.
Private Sub RBsortKlient_CheckedChanged(By
Me.ZakazBindingSource.Sort = "fam_k"
End Sub
Код для поиска работает по следующему принципу: при выборе необходимой радиокнопки свойство Find возвращает индекс заданного пареметра в объевленном столбце, которое присваивается свойству Position, которое в свою очередь отмечает данный элемент.
If RbFoundKl.Checked Then
Me.ZakazBindingSource.Position
= Me.ZakazBindingSource.Find("
ElseIf Me.RbFoundTov.Checked Then
Me.ZakazBindingSource.Position
= Me.ZakazBindingSource.Find("
ElseIf Me.RbFoundEmp.Checked Then
Me.ZakazBindingSource.Position
= Me.ZakazBindingSource.Find("
End If
Удаление строк из оперативной таблицы происходит с помощью следующего кода: сначала происходит подключение к базе данных и выолняется запрос удаления по выбранному id заказа, затем стока удаляется из DataGridView.
Dim sqlceCon As New SqlClient.SqlConnection
Информация о работе Проект информационной системы учета продаж торговой фирмы