Программный модуль для работы с базой данных "Магазин косметики"

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

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

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

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

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

Содержание

  • Введение
  • 1. Постановка задачи
  • 1.1 Техническое задание
  • 1.2 Анализ предметной области. Функциональная модель
  • 2. Логическая модель
  • 3. Физическая модель
  • 3.1 Описание структуры таблиц и связей между ними
  • 3.2 Описание индексов и ограничений
  • 4. Описание программы
  • 4.1 Выбор и обоснование средств программирования для решения поставленной задачи, их краткая характеристика
  • 4.2 Описание интерфейса, форм ввода и вывода данных
  • 4.3 Описание запросов и представлений данных
  • 4.4 Описание отчетов
  • 4.5 Описание хранимых процедур
  • 5. Руководство пользователя
  • 6. Справочная система
  • 7. Отладка и тестирование приложения
  • Заключение
  • Список использованных источников
  • Приложения
  • Приложение А Листинг программы
  • Приложение Б Схема организации таблиц базы данных

Введение

Базы данных использовались в вычислительной технике с незапамятных времен. В первых компьютерах использовались два вида внешних устройств - магнитные ленты и магнитные барабаны. Емкость магнитных лент была достаточно велика. Устройства для чтения-записи магнитных лент обеспечивали последовательный доступ к данным. Для чтения информации, которая находилась в середине или конце магнитной ленты, необходимо было сначала прочитать весь предыдущий участок. Следствием этого являлось чрезвычайно низкая производительность операций ввода-вывода данных во внешнюю память. Магнитные барабаны давали возможность произвольного доступа, но имели ограниченный объем хранимой информации.

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

История БД фактически началась с появлением магнитных дисков. Такие устройства внешней памяти обладали существенно большей емкостью, чем магнитная лента и барабаны, а также обеспечивали во много раз большую скорость доступа в режиме произвольной выборки. В отличие от современных систем управления, которые могут применяться для самых различных баз данных, подавляющее большинство ранее разработанных СУБД были тесно связаны с пользовательской базой для того, чтобы увеличить скорость работы, хоть и в ущерб гибкости.

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

Современные авторы часто употребляют термины "банк данных" и "база данных" как синонимы, однако в общеотраслевых руководящих материалах по созданию банков данных Государственного комитета по науке и технике (ГКНТ), изданных в 1982 г., эти понятия различаются.

Там приводятся следующие определения банка данных, базы данных и СУБД:

Банк данных (БнД) - это система специальным образом организованных данных - баз данных, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных.

База данных (БД) - именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области.

Система управления базами данных (СУБД) - совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

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

1. Постановка задачи

1.1 Техническое задание

Магазин косметики ведет учет приема товара, ищет и связывается с поставщиками, ведет подсчет выручки.

Автоматизированная система учета значительно улучшит и упростит качество работы с данными, а так же сведет вероятность потери информации к минимуму.

Основанием для разработки данного проекта является Задание к курсовому проекту по дисциплине "Базы данных и СУБД", разработанное на основании типовой учебной программы для учреждений, обеспечивающих получение среднего - специального образования по специальности: ПОИТ.

Функциональное назначение программного продукта включает в себя следующие функции:

ввод-вывод данных;

обработка данных;

редактирование данных;

поиск данных по различным критериям;

формирование отчета.

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

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

Приложение должно отвечать следующим требованиям к надежности:

предусматривать контроль вводимой информации;

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

обеспечивать целостность хранимой информации.

Программа должна отвечать следующим требования к программной документации:

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

программная система должна включать справочную информацию о работе и подсказки пользователю.

1.2 Анализ предметной области. Функциональная модель

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

Функциональная модель разрабатывается с целью выявления базовых функций и их взаимосвязи. Для этих целей посредством программного продукта BPWin 4.0 строятся диаграммы.

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

Для построения функциональной модели используется стандарт IDEF0 (Icam DEFinition). Функциональная модель по стандарту IDEF0 представляет собой совокупность иерархически упорядоченных и взаимосвязанных диаграмм. Модель содержит три типа диаграмм: контекстная; декомпозиции; дерева узлов.

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

На основе контекстной диаграммы выполняется функциональная декомпозиция системы до достижения необходимого уровня подробности описания, представлено на рисунке 2, 3,4 и 5. Каждая диаграмма декомпозиции содержит блоки и дуги (стрелки). Блоки изображают функции, а дуги - информацию. Информация может представлять данные или объекты.

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

Функция изображается на диаграмме в виде прямоугольного блока. Все функции должны быть названы и определены. Имя функции задается сочетанием отглагольного существительного, обозначающего процесс. При создании новой модели автоматически создаётся контекстная диаграмма с единственной функцией, изображающей систему в целом. Стрелки на контекстной диаграмме служат для описания взаимодействия системы с внешним миром.

модуль приложение автоматизированная система

Рисунок 1 - "Контекстная диаграмма функциональной модели"

Рисунок 2 - "Контекстная диаграмма первого уровня функциональной модели"

Рисунок 3 - "Контекстная диаграмма второго уровня функциональной модели"

Рисунок 4 - "Контекстная диаграмма третьего уровня функциональной модели"

Рисунок 5 - "Контекстная диаграмма четвертого уровня функциональной модели"

2. Логическая модель

ERWin имеет два уровня представления модели - логический и физический. Логический уровень - это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире, например "Постоянный клиент", "Отдел" или "Фамилия сотрудника". Объекты модели, представляемые на логическом уровне, называются сущностями и атрибутами (подробнее о сущностях и атрибутах будет рассказано ниже). Логическая модель данных может быть построена на основе другой логической модели, например на основе модели процессов. Логическая модель данных является универсальной и никак не связана с конкретной реализацией СУБД. Логическая модель данных представлена на рисунке 6.

Рисунок 6 - "Логическая модель представления данных"

3. Физическая модель

Физическая модель данных, зависит от конкретной СУБД, фактически являясь отображением системного каталога. В физической модели содержится информация о всех объектах БД. Поскольку стандартов на объекты БД не существует (например, нет стандарта на типы данных), физическая модель зависит от конкретной реализации СУБД. Следовательно, одной и той же логической модели могут соответствовать несколько разных физических моделей. Если в логической модели не имеет значения, какой конкретно тип данных имеет атрибут, то в физической модели важно описать всю информацию о конкретных физических объектах - таблицах, колонках, индексах, процедурах и т.д. Физическая модель представления данных представлена на рисунке 7

Рисунок 7 - "Физическая модель представления данных"

3.1 Описание структуры таблиц и связей между ними

Разработанная база данных состоит из 8 таблиц.

Таблица "Товар" состоит из следующих полей:

ID_Товара - содержит идентификационный номер товара;

Наименование - содержит наименование товара;

Количество - содержит количество товара;

Цена - содержит цену товара;

Дата поступления - содержит дату поступления;

ID_отдела - идентификационный номер отдела;

Заказ - содержит номер заказа, если товар заказан.

Таблица "Покупка" состоит из следующих полей:

ID_Покупки - содержит идентификационный номер покупки;

ID_Товара - содержит идентификационный номер товара;

Дата покупки - содержит дату покупки;

Количество - содержит количество товара;

Цена - содержит цену товара;

Сумма - содержит общую сумму покупки.

Таблица "Поступление" состоит из следующих полей:

ID_Поступления - содержит идентификационный номер покупки;

Товар - содержит идентификационный номер товара;

Количество - содержит количество товара;

ID_Поставщика - содержит идентификационный номер поставщика.

Таблица "Поставщик" состоит из следующих полей:

ID_Поставщика - содержит идентификационный номер поставщика;

Адрес - содержит адрес поставщика;

Телефон - содержит телефонный номер поставщика.

Таблица "Заказ" состоит из следующих полей:

ID_Заказа - содержит идентификационный номер заказа;

Дата - содержит дату заказа;

Наименование - содержит наименование заказанного товара;

Цена - содержит цену товара;

Количество - содержит количество товара;

Сумма - содержит общую сумму сделанного заказа.

Таблица "Клиент" состоит из следующих полей:

ID_Клиента - содержит идентификационный номер клиента;

ID_Заказа - содержит идентификационный номер заказа;

ФИО - содержит ФИО клиента.

Таблица "Персонал" состоит из следующих полей:

ID_персонала - содержит идентификационный номер персонала;

ФИО - содержит ФИО персонала;

Должность - содержит должность персонала;

Категория - содержит категорию персонала.

Таблица "Отдел" состоит из следующих полей:

ID_Отдела - содержит идентификационный номер отдела;

Наименование - содержит наименование отдела;

Персонал - содержит идентификационный номер персонала.

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

Таблица 1 - "Типы связей данного программного модуля"

Название таблиц и ключевых полей

Тип связи

Товар - ID_Товара

Покупка - ID_Товара

1: М

Товар - ID_Товара

Поступление - Товар

1: 1

Товар - ID_Отдела

Отдел - ID_Отдела

1: М

Товар - Заказ

Заказ - ID_Заказа

1: М

Поступление - ID_Поставщика

Поставщик - ID_Поставщика

1: М

Заказ - ID_Заказа

Клиент - ID_Заказа

1: М

Отдел - Персонал

Персонал - ID_Персонала

1: М

3.2 Описание индексов и ограничений

Индекс представляет собой часть базы данных, в которой содержится информация об организации данных в таблицах БД.

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

Индекс содержит в себе уникальные идентификаторы записей и дополнительную информацию об организации данных. Поэтому если при выполнении запроса сервер или локальная СУБД обращается для отбора записи к индексу, то это занимает значительно меньше времени, т.к. понятно, что идентификатор, гораздо меньше самой записи. Кроме этого, индекс "знает", как организованы данные и может ускорять обработку за счет группирования

записей по сходным значениям параметров.

Создание для БД эффективного набора индексов является нетривиальной задачей.

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

В большинстве СУБД при создании индексов требуется только задать поля и название индекса, вся остальная работа выполняется автоматически.

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

осуществляется средствами SQL.

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

В данной программе используются следующие ключевые поля:

В таблице "Товар" первичный ключ установлен на поле "ID_Товара".

В таблице "Покупка" первичный ключ установлен на поле "ID_Покупки".

В таблице "Поступления" первичный ключ установлен на поле "ID_Поступления".

В таблице "Поставщики" первичный ключ установлен на поле "ID_Поставщика".

В таблице "Заказ" первичный ключ установлен на поле "ID_Заказа".

В таблице "Отдел" первичный ключ установлен на поле "ID_Отдела".

В таблице "Клиенты" первичный ключ установлен на поле "ID_Клиента".

В таблице "Персонал" первичный ключ установлен на поле "Персонала".

В данной программе предусмотрены следующие ограничения:

ограничения на ввод числовой информации в текстовое поле;

ограничения на ввод текстовой информации в числовое поле;

ограничения на ввод любой другой информации в поле datetime, кроме необходимой даты, времени.

4. Описание программы

4.1 Выбор и обоснование средств программирования для решения поставленной задачи, их краткая характеристика

В качестве целевой СУБД была выбрана Microsoft SQL Server 2005. SQL Server 2005 - это новейшая версия одной из систем управления базами данных, достигшая того непревзойдённого уровня развития, к которому она постепенно приближалась на протяжении двух десятилетий. Данная версия явилась результатом коренной переработки, которой подвергается этот программный продукт, начиная с версии 7.0. Но в программном обеспечении SQL Server 2005 удалось значительно улучшить совместимость компонентов и расширить набор средств, обеспечивающих взаимодействие с языком XML, инфраструктурой.net, определяемыми пользователем типами данных, а также многими другими дополнительными службами. Вообще говоря, SQL Server 2005 позволяет не только хранить данные, но и управлять ими, регламентировать типы данных, а также упрощать процесс получения этих данных. Если задача состоит в том, чтобы просто сохранить данные в надёжном месте, то достаточно воспользоваться практически любой системой хранения данных. Однако SQL Server 2005 как реляционная СУБД позволяет не только хранить данные, но и непосредственно задавать структуру данных, иными словами, устанавливать бизнес-правила, которым должны подчиняться данные.

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

В версии SQL Server 2005 предусмотрено много инструментальных средств проектирования, которые существенно изменились по сравнению с предыдущими версиями. К сожалению, методология создания диаграмм, предусмотренная в этих программных средствах, не соответствует ни одному из общепринятых стандартов формирования ER-диаграмм. Тем не менее эти инструментальные средства формирования диаграмм обеспечивают выполнения всех "обязательных" операций; по крайней мере, с их помощью можно приступить к освоению соответствующих методов.

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

Клиентское приложение было разработано в среде Microsoft Visual Studio 2008. Эта среда использует технологию программирования.net, которая вместе со связанной с ней средой.net Framework, является одной из самых важных технологий для разработчиков ПО за много лет.net спроектирована как новая среда, в рамках которой можно разработать практически любое приложение для Windows. Данная версия среды Visual Studio использует.net Framework 2.0 - третья версия этой среды. Далее мы вкратце перечислим преимущества технологии.net перед другими технологиями разработки:

Объектно-ориентированное программирование - и среда.net Framework изначально полностью базировалась на объектно-ориентированных принципах.

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

Независимость от языка - с.net код всех языков компилируется в общий язык промежуточного уровня - Intermediate Language. Это значит, что ранее все эти языки обладают возможностями взаимодействия, как никогда ранее.

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

Повышенная безопасность - каждая сборка также может содержать встроенную информацию безопасности, которая в точности описывает, кому и каким пользователем или процессов какие методы каких классов разрешено вызывать.

C# - новый объектно-ориентированный язык, предназначенный для применения с.net.

Заметим, что Visual Studio 2005 использует.net Framework 2.0. Эта среда также имеет некоторые преимущества по сравнению с предыдущими версиями.net Framework, а именно:

Интеграция с SQL Server. Для нас важно прежде всего то, что Visual Studio 2005,.net Framework 2.0 и SQL Server 2005 тесно связаны между собой в том смысле, что реализованы в сочетании.

Поддержка 64-разрядных вычислений. Сегодня больше и больше предприятий переходят на современные 64-разрядный процессоры. А среда Visual Studio 2005 может компилировать код так, чтобы он работал на любых процессорах.

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

4.2 Описание интерфейса, форм ввода и вывода данных

Ввод данных осуществляется в каждую таблицу отдельно. Для ввода и вывода данных используются компоненты: dataGridView, textBox, richTextBox, menuStrip, printDocument, printPreviewDialog, bindingNavigatorAddNewItem.

Кнопка "Добавить" добавляет новую строчку в таблицу.

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

Элемент меню "File" - "New" очищает содержимое окна редактирования.

Элемент меню "File" - "Open" открывает для просмотра и редактирования файлы формата RTF files и Text files.

4.3 Описание запросов и представлений данных

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

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

В данном программном модуле представление используется для отображения результатов поиска в таблице "Товар". Представление включает в себя следующий запрос:

SELECT [Id товара], Наименование, Количество, Цена, [Дата поступления], [Id отдела], Заказ FROM dbo. Товар WHERE Наименование = @Наименование.

4.4 Описание отчетов

На вкладку "Отчет" главной формы встроен текстовый редактор, с помощью которого пользователю предлагается составить отчет самостоятельно. Редактор позволяет открывать сохраненные ранее и создавать новые документы в формате TXT и RTF. Редактор также осуществляет вывод документа на печать. Вариант отчета представлен на рисунке 8.

Рисунок 8 - "Вариант отчета. "

4.5 Описание хранимых процедур

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

В данном программном модуле с помощью хранимых процедур организовано обновление таблиц базы данных. Запрос на обновление таблицы "Товар" имеет следующую структуру:

UPDATE [dbo]. [Товар] SET [Id товара] = @Id_товара, [Наименование] = @Наименование, [Количество] = @Количество, [Цена] = @Цена, [Дата поступления] = @Дата_поступления, [Id отдела] = @Id_отдела, [Заказ] = @Заказ WHERE ( ([Id товара] = @Original_Id_товара) AND ([Наименование] = @Original_Наименование) AND ([Количество] = @Original_Количество) AND ([Цена] = @Original_Цена) AND ([Дата поступления] = @Original_Дата_поступления) AND ([Id отдела] = @Original_Id_отдела) AND ( (@IsNull_Заказ = 1 AND [Заказ] IS NULL) OR ([Заказ] = @Original_Заказ)));

SELECT [Id товара], Наименование, Количество, Цена, [Дата поступления], [Id отдела], Заказ FROM Товар WHERE ([Id товара] = @Id_товара).

5. Руководство пользователя

После запуска программы откроется главная форма, представленная на рисунке 9.

Рисунок 9 - "Главная форма программы"

На форме отображена таблица "Покупка". Для добавления, просмотра и редактирования данных необходимо выбрать таблицу, в которой, мы хотим произвести изменения (просмотреть). Для этого необходимо выбрать вкладку с названием интересующей нас таблицы, после чего та откроет, содержащую в себе таблицу и средства редактирования. Результат выбора вкладки "Отдел", представлен на рисунке 10.

Рисунок 10 - "Вкладка "Отдел”"

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

Рисунок 11 - "Добавление данных"

После добавления, данные необходимо сохранить. Для этого на форме имеется кнопка "Сохранить", после нажатия, на которую данные в таблице обновятся. Расположение кнопки "Сохранить" представлено на рисунке 12.

Рисунок 12 - "Расположение кнопки сохранения данных"

Для удаления строки необходимо нажать на кнопку "Удалить", расположенную рядом с кнопкой "Добавить" на навигаторе форме, после чего строчка будет удалена. Результат удаления строки представлен на рисунке 13.

Рисунок 13 - "Результат удаления строки из таблицы"

Для перемещения по данным таблицы можно использовать кнопки перемещения, навигатора формы.

Для поиска данных о пациенте поликлиники необходимо перейти на вкладку "Поиск" главной формы. Вкладка "Отчет" представлена на рисунке 14.

Рисунок 14 - "Вкладка "Отчет ” "

Для выполнения поиска необходимо в текстовую строку ввести наименование товара и нажать на кнопку "Искать". Результат выполнения поиска представлен на рисунке 15.

Рисунок 15 - "Результат поиска товара"

6. Справочная система

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

Главное окно справочной системы представлено на рисунке 16.

Рисунок 16 - "Окно справки"

7. Отладка и тестирование приложения

Тестирование программного модуля производится в два этапа:

Проверка вводимых данных и соответствие интерфейса требованиям пользователя.

Если при нажатии кнопок "Добавить" и "Поиск" в текстовые поля не были введены данные, появится сообщение, предупреждающее о не корректном обращении с программой.

Программный модуль имеет простой и понятный интерфейс.

Таблица 2 - Отчет выполнения тестирования

п/п

Этап тестирования

Ошибки

Отметка об исполнении

1

Тестирование функциональности

Нет

Выполнено

2

Тестирование применимости

Нет

Выполнено

3

Тестирование устойчивости

Нет

Выполнено

4

Тестирование работы основных компонентов программы

Нет

Выполнено

Заключение

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

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

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

1. Ишкова, Э.А. С++. Начала программирования / Э.А. Ишкова. - М.: "Бином", 2000. - 304 с.

2. Культин, Н.Б. С/С++ в задачах и примерах / Н.Б. Культин. - СПб.: БХВ-Петербург, 2002. - 592 с.

3. Павловская, Т.А. С/С++. Программирование на языке высокого уровня: учебник / Т.А. Павловская. - СПб.: Питер, 2006. - 461 с.

4. Павловская, Т.А. С/С++. Структурное программирование: практикум / Т.А. Павловская, Ю.А. Щупак - СПб.: Питер, 2003. - 240 с.

5. Подбельский, В.В. Язык С++: учеб. пособие / В.В. Подбельский - М.: 2005. - 560с.

6. Шелест, В.Д. Программирование / В.Д. Шелест - СПб: БХВ - Петербург, 2002. - 288 с.

7. Шилдт, Г. Программирование на BORLAND C++ для профессионалов: пер. с англ. / Г. Шилдт - Минск.: Попурри, 1998. - 800 с.

8. Шилдт, Г. Теория и практика С++: пер. с англ. / Г. Шилдт. - СПб.: БХВ-Петербург, 2001. - 416 с.

9. Методические рекомендации для учащихся по выполнению курсового проекта по дисциплине "базы данных и системы управления базами данных", 2011

Приложения

Приложение А Листинг программы

using System;

using System. Collections. Generic;

using System.componentModel;

using System. Data;

using System. Drawing;

using System. Linq;

using System. Text;

using System. IO;

using System. Drawing. Printing;

using System. Windows. Forms;

namespace WindowsFormsApplication1

{

public partial class Form1: Form

{

public Form1 ()

{

InitializeComponent ();

}

// / <summary>

// / Открытие существующего файла

// / </summary>

private void MenuFileOpen ()

{

if (openFileDialog1. ShowDialog () ==

System. Windows. Forms. DialogResult. OK &&

openFileDialog1. FileName. Length > 0)

{

try

{

richTextBox1. LoadFile (openFileDialog1. FileName,

RichTextBoxStreamType. RichText);

}

catch (System. ArgumentException ex)

{

richTextBox1. LoadFile (openFileDialog1. FileName,

RichTextBoxStreamType. PlainText);

}

this. Text = "Файл [" + openFileDialog1. FileName + "] ";

}

}

// / <summary>

// / Сохранение документа в новом файле

// / </summary>

private void MenuFileSaveAs ()

{

if (saveFileDialog1. ShowDialog () ==

System. Windows. Forms. DialogResult. OK &&

saveFileDialog1. FileName. Length > 0)

{

richTextBox1. SaveFile (saveFileDialog1. FileName);

this. Text = "Файл [" + saveFileDialog1. FileName + "] ";

}

}

// / <summary>

// / Настройка параметров страницы

// / </summary>

private void MenuFilePageSetup ()

{

pageSetupDialog1. ShowDialog ();

}

private void menuFilePageSetup_Click (object sender,

System. EventArgs e)

{

MenuFilePageSetup ();

}

// / <summary>

// / StringReader для печати содержимого редактора текста

// / </summary>

private StringReader m_myReader;

// / <summary>

// / Номер текущей распечатываемой страницы документа

// / </summary>

private uint m_PrintPageNumber;

// / <summary>

// / Предварительный просмотр перед печатью документа

// / </summary>

private void MenuFilePrintPreview ()

{

m_PrintPageNumber = 1;

string strText = this. richTextBox1. Text;

m_myReader = new StringReader (strText);

Margins margins = new Margins (100,50,50,50);

printDocument1. DefaultPageSettings. Margins = margins;

printPreviewDialog1. ShowDialog ();

m_myReader. Close ();

}

// / <summary>

// / Печать документа

// / </summary>

private void MenuFilePrint ()

{

m_PrintPageNumber = 1;

string strText = this. richTextBox1. Text;

m_myReader = new StringReader (strText);

Margins margins = new Margins (100,50,50,50);

printDocument1. DefaultPageSettings. Margins = margins;

if (printDialog1. ShowDialog () == DialogResult. OK)

{

this. printDocument1. Print ();

}

m_myReader. Close ();

}

// / <summary>

// / Обработка события PrintPage

// / </summary>

private void PrintPageEventHandler (object sender,

System. Drawing. Printing. PrintPageEventArgs e)

{

int lineCount = 0; // счетчик строк

float linesPerPage = 0; // количество строк на одной странице

float yLinePosition = 0; // текущая позиция при печати по

// вертикальной оси

string currentLine = null; // текст текущей строки

// Шрифт для печати текста

Font printFont = this. richTextBox1. Font;

// Кисть для печати текста

SolidBrush printBrush = new SolidBrush (Color. Black);

// Размер отступа слева

float leftMargin = e. MarginBounds. Left;

// Размер отступа сверху

float topMargin = e. MarginBounds. Top +

3*printFont. GetHeight (e. Graphics);

// Вычисляем количество строк на одной странице с учетом отступа

linesPerPage = (e. MarginBounds. Height -

6*printFont. GetHeight (e. Graphics)) /

printFont. GetHeight (e. Graphics);

// Цикл печати всех строк страницы

while (lineCount < linesPerPage &&

( (currentLine=m_myReader. ReadLine ())! = null))

{

// Вычисляем позицию очередной распечатываемой строки

yLinePosition = topMargin + (lineCount *

printFont. GetHeight (e. Graphics));

// Печатаем очередную строку

e. Graphics. DrawString (currentLine, printFont, printBrush,

leftMargin, yLinePosition, new StringFormat ());

// Переходим к следующей строке

lineCount++;

}

// Печать колонтитулов страницы

// Номер текущей страницы

string sPageNumber = "Page " + m_PrintPageNumber. ToString ();

// Вычисляем размеры прямоугольной области, занимаемой верхним

// колонтитулом страницы

SizeF stringSize = new SizeF ();

stringSize = e. Graphics. MeasureString (sPageNumber, printFont,

e. MarginBounds. Right - e. MarginBounds. Left);

// Печатаем номер страницы

e. Graphics. DrawString (sPageNumber, printFont, printBrush,

e. MarginBounds. Right - stringSize. Width, e. MarginBounds. Top,

new StringFormat ());

// Печатаем имя файла документа

e. Graphics. DrawString (this. Text, printFont, printBrush,

e. MarginBounds. Left, e. MarginBounds. Top, new StringFormat ());

// Кисть для рисования горизонтальной линии,

// отделяющей верхний колонтитул

Pen colontitulPen = new Pen (Color. Black);

colontitulPen. Width = 2;

// Рисуем верхнюю линию

e. Graphics. DrawLine (colontitulPen,

leftMargin,

e. MarginBounds. Top + printFont. GetHeight (e. Graphics) + 3,e. MarginBounds. Right, e. MarginBounds. Top +

printFont. GetHeight (e. Graphics) + 3);

// Рисуем линию, отделяющую нижний колонтитул документа

e. Graphics. DrawLine (colontitulPen,

leftMargin, e. MarginBounds. Bottom - 3,e. MarginBounds. Right, e. MarginBounds. Bottom - 3);

// Печатаем текст нижнего колонтитула

e. Graphics. DrawString (

"SimpleNotepad, (c) Александр Фролов, http://www.frolov. pp.ru",

printFont, printBrush,

e. MarginBounds. Left, e. MarginBounds. Bottom, new StringFormat ());

// Если напечатаны не все строки документа,

// переходим к следующей странице

if (currentLine! = null)

{

e. HasMorePages = true;

m_PrintPageNumber++;

}

// Иначе завершаем печать страницы

else

e. HasMorePages = false;

// Освобождаем ненужные более ресурсы

printBrush. Dispose ();

colontitulPen. Dispose ();

}

private bool m_DocumentChanged = false;

// / <summary>

// / Установка стиля символов Bold

// / </summary>

private void SetBold ()

{

if (richTextBox1. SelectionFont! = null)

{

System. Drawing. Font currentFont = richTextBox1. SelectionFont;

System. Drawing. FontStyle newFontStyle;

if (richTextBox1. SelectionFont. Bold == true)

{

newFontStyle = FontStyle. Regular;

}

else

{

newFontStyle = FontStyle. Bold;

}

richTextBox1. SelectionFont = new Font (

currentFont. FontFamily, currentFont. Size, newFontStyle);

}

}

// / <summary>

// / Установка стиля символов Bold

// / </summary>

// / <summary>

// / Установка стиля символов Italic

// / </summary>

private void SetItalic ()

{

if (richTextBox1. SelectionFont! = null)

{

System. Drawing. Font currentFont = richTextBox1. SelectionFont;

System. Drawing. FontStyle newFontStyle;

if (richTextBox1. SelectionFont. Italic == true)

{

newFontStyle = FontStyle. Regular;

}

else

{

newFontStyle = FontStyle. Italic;

}

richTextBox1. SelectionFont = new Font (

currentFont. FontFamily, currentFont. Size, newFontStyle);

}

}

// / <summary>

// / Установка стиля символов Underline

// / </summary>

private void SetUnderline ()

{

if (richTextBox1. SelectionFont! = null)

{

System. Drawing. Font currentFont = richTextBox1. SelectionFont;

System. Drawing. FontStyle newFontStyle;

if (richTextBox1. SelectionFont. Underline == true)

{

newFontStyle = FontStyle. Regular;

}

else

{

newFontStyle = FontStyle. Underline;

}

richTextBox1. SelectionFont = new Font (

currentFont. FontFamily, currentFont. Size, newFontStyle);

}

}

// / <summary>

// / Установка стиля символов Strikeout

// / </summary>

private void SetStrikeout ()

{

if (richTextBox1. SelectionFont! = null)

{

System. Drawing. Font currentFont = richTextBox1. SelectionFont;

System. Drawing. FontStyle newFontStyle;

if (richTextBox1. SelectionFont. Strikeout == true)

{

newFontStyle = FontStyle. Regular;

}

else

{

newFontStyle = FontStyle. Strikeout;

}

richTextBox1. SelectionFont = new Font (

currentFont. FontFamily, currentFont. Size, newFontStyle); }

}

private void сохранитьToolStripButton_Click (object sender, EventArgs e)

{

try

{

покупкаTableAdapter. Update (nastayDataSet);

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, "Юля - солнце!!!");

}

}

private void сохранитьToolStripButton1_Click (object sender, EventArgs e)

{

try

{

товарTableAdapter. Update (nastayDataSet);

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, "Юля - солнце!!!");

}

}

private void сохранитьToolStripButton2_Click (object sender, EventArgs e)

{

try

{

заказTableAdapter. Update (nastayDataSet);

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, "Юля - солнце!!!");

}

}

private void сохранитьToolStripButton3_Click (object sender, EventArgs e)

{

try

{

клиентTableAdapter. Update (nastayDataSet);

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, "Юля - солнце!!!");

}

}

private void сохранитьToolStripButton4_Click (object sender, EventArgs e)

{

try

{

отделTableAdapter. Update (nastayDataSet);

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, "Юля - солнце!!!");

}

}

private void сохранитьToolStripButton5_Click (object sender, EventArgs e)

{

try

{

персоналTableAdapter. Update (nastayDataSet);

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, "Юля - солнце!!!");

}

}

private void сохранитьToolStripButton6_Click (object sender, EventArgs e)

{

try

{

поступленияTableAdapter. Update (nastayDataSet);

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, "Юля - солнце!!!");

}

}

private void сохранитьToolStripButton7_Click (object sender, EventArgs e)

{

try

{

поставщикиTableAdapter. Update (nastayDataSet);

}

catch (Exception ex)

{

MessageBox. Show (ex. Message, "Юля - солнце!!!");

}

}

private void bindingSource2_CurrentChanged (object sender, EventArgs e)

{

}

private void button1_Click (object sender, EventArgs e)

{

string Tov;

Tov = Convert. ToString (textBox1. Text);

view1TableAdapter1. FillBy (nastayDataSet2. View1, Tov);

}

private void button2_Click (object sender, EventArgs e)

{

Form2 f = new Form2 ();

f. ShowDialog ();

}

private void справкаToolStripButton_Click (object sender, EventArgs e)

{

Form2 f = new Form2 ();

f. ShowDialog ();

}

private void справкаToolStripButton1_Click (object sender, EventArgs e)

{

Form2 f = new Form2 ();


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

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

    курсовая работа [612,6 K], добавлен 18.07.2012

  • Разработка клиентского приложения для работы с базой данных (БД) санатория. Классификации БД и приложений для работы с ними. Алгоритмическое и программное конструирование БД. Описание объектов предметной области, их атрибутов и связей между ними.

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

  • Выделение основных сущностей проектируемой системы, описание их взаимосвязи. Построение базы данных и приложений: разработка таблиц и связей между ними, локальных представлений данных, форм, запросов, меню. Инструкция для работы пользователя с программой.

    курсовая работа [380,9 K], добавлен 06.04.2015

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

    курсовая работа [399,1 K], добавлен 26.08.2019

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

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

  • Функциональные зависимости и нормализация отношений. Ограничения целостности данных. Описание таблиц на языке SQL. Интерфейс пользователя и надёжность программ обработки данных. Обработка данных с помощью запросов. Работа с данными из внешних источников.

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

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

    отчет по практике [3,7 M], добавлен 29.06.2014

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

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

  • Информационные системы и базы данных. Обоснование выбора системы управления базой данных. Язык запросов SQL. Построение информационной модели. Разработка базы данных по продаже автомобилей в Microsoft Access. Организация связей между таблицами.

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

  • Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.

    курсовая работа [867,9 K], добавлен 16.07.2013

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