43058

Разработка информационной системы по учёту продукции сети аптек

Дипломная

Информатика, кибернетика и программирование

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

Русский

2014-12-28

1001.5 KB

26 чел.

Пояснительная записка

Реферат

Пояснительная записка к дипломной работе содержит: ____страниц, ___таблиц, ___рисунков, ____формул, ____приложений.

Объектом разработки является подсистема учета медикаментов в распределенной системе.

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

Метод создания приложения: структурное и объектно-ориентированное программирование.

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

Область применения – сети аптек.

Explanatory note

Abstract

The explanatory note to degree operation maintains: ____ pages, ___ tables, ___ figures, ____ formulas, ____ applications.

The enhancement is a subsystem of accounting medicines in a distributed system.

The aim of the thesis is to develop an information system to integrate production network pharmacies.

The method of creating the application: structured and object-oriented programming.

The results of the thesis - a software tool that allows you to keep track of products, it is the Windows - application and has a user-friendly interface. The software tool allows you to view the data, add new data, change or delete existing data, as well as search for tables.

Scope - a network of pharmacies.

Пояснювальна записка

Реферат

Пояснювальна записка до дипломної роботи містить: ____сторінок, ___таблиць, ___малюнків, ____формул, ____додатків.

Об'єктом розробки є підсистема обліку медикаментів в розподіленої системі.

Метою дипломної роботи є розробка інформаційної системи з обліку продукції мережі аптек.

Метод створення програми: структурне і обєктно орієнтоване програмування.

Результати дипломної роботи - програмний засіб, за допомогою якого можна вести облік продукції, воно є Windows - додатком і має зручний інтерфейс. Програмний засіб дає можливість переглядати дані, додавати нові дані, змінювати і видаляти існуючі дані, а також здійснювати пошук за таблицями.

Область застосування - мережі аптек.

Сокращения

БД – база данных

БП – бизнес процесс

СУБД – система управления базой данных

ПК – персональный компьютер

ПО – программное обеспечение

ОС – операционная система

ООП – объектно-ориентированное программирование

ЭВМ – электронно-вычислительная машина

ПС – программное средство

СОДЕРЖАНИЕ

ВВЕДЕНИЕ           13

  1.  ОПИСАНИЕ И АНАЛИЗ СУЩЕСТВУЮЩЕГО СОСТОЯНИЯ РАССМАТРИВАЕМОЙ ПРОБЛЕМЫ      14
  2.  ОПИСАНИЕ И АНАЛИЗ СТРУКТУРНЫХ И ФУНКЦИОНАЛЬНЫХ ОСОБЕННОСТЕЙ ОБЪЕКТА ПРОЕКТИРОВАНИЯ И ЕГО ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ      19
    1.  Описание особенностей подсистемы обеспечения медикаментами   19
    2.  Структура системы обеспечения медикаментами      20
    3.  Постановка задачи         21
    4.  Разработка структуры БД        22
    5.  Разработка структуры реестра       23
    6.  Разработка схемы алгоритма и программного модуля   25
    7.  Обоснование выбора языка программирования     28
    8.  Оценка надежности         32
      1.  Классификация ошибок программы      32
      2.  Выбор расчетных моделей надежности программного продукта 33
  3.  ЗАКЛЮЧЕНИЕ          36
  4.  ПЕРЕЧЕНЬ ССЫЛОК         37

ВВЕДЕНИЕ

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

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

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

  1.  ОПИСАНИЕ И АНАЛИЗ СУЩЕСТВУЮЩЕГО СОСТОЯНИЯ РАССМАТРИВАЕМОЙ ПРОБЛЕМЫ

Услугами аптеки пользуются многие люди, они приобретают различные лекарства. Для улучшения качества обслуживания клиентов и увеличения скорости обработки данных, необходимо использовать автоматизированную систему учёта проданных товаров.

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

Такой способ обработки данных позволит почти полностью убрать бумажную роботу и позволит значительно увеличить скорость обработки данных (обслуживания клиентов).

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

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

Существуют некоторые системы для учета товаров, некоторые из них такие как ERP-система, Terrasoft XRM и WMS.

- Основные особенности ERP-системы:

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

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

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

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

- Основные особенности Terrasoft XRM:

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

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

Расширенные функциональные возможности Terrasoft XRM позволяют осуществлять управление взаимоотношениями не только с клиентами, но и работой с партнерами, поставщиками, организацию взаимоотношений внутри компании.

Максимально гибко интегрируясь в существующую инфраструктуру компании, Terrasoft XRM обеспечивает непрерывность и слаженность всех, даже самых сложных, БП.

Решаемые задачи:

Управление бизнес-процессами

Управление контактами. История взаимодействия с клиентами

Планирование и управление продажами

Управление маркетингом

Управление ресурсами

Автоматизация документооборота

Управление проектами

Автоматизация сервиса

Управление рабочим временем

Отслеживание результатов работы и аналитика

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

Основные технологические преимущества Terrasoft XRM - это использование передовых технологий, поддержка популярных СУБД разного масштаба, функционала и стоимости (Microsoft SQL Server, Oracle и Firebird), проверенных стандартов и протоколов.

Эти и другие факторы обеспечивают высокую надежность, производительность и масштабируемость систем Terrasoft.

Программный продукт Terrasoft XRM показывает высокую эффективность работы в локальных и глобальных сетях. Возможно несколько вариантов развертывания в зависимости от структуры и потребностей компании.

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

- Основные особенности WMS:

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

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

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

При проведении инвентаризации специалисты с помощью терминалов для сбора данных (ТСД) считывают штрих-коды, которые автоматически заносятся в БД приборов.

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

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

  1.  ОПИСАНИЕ И АНАЛИЗ СТРУКТУРНЫХ И ФУНКЦИОНАЛЬНЫХ ОСОБЕННОСТЕЙ ОБЪЕКТА ПРОЕКТИРОВАНИЯ И ЕГО ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ

2.1 Описание особенностей подсистемы обеспечения медикаментами

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

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

  •  Учет клиентов, и заказов.
  •  Учет сотрудников предприятия.
  •  Время затрачиваемое на сбор информации о клиенте, о товаре и т.д.
  •  Время обработки информации, и принятие заказов.

Деятельность аптеки – обеспечение лекарствами различных физических лиц. Рассматриваемая в работе подсистема учета медикаментов и управления процессом обеспечения имеет склад и налаженные каналы закупки и перевозки. Однако не исключает появления новых контактов.

Имеет следующую структуру:

1) Торговый отдел

- менеджер по работе с розничными продажами

- менеджер по работе с оптовыми продажами

- менеджер по отслеживанию статистики и закупке товара   

- секретарь

- бухгалтер

2) Склад

- приход товара

- готовит заявки, работает на клиента

3) Бухгалтерия

4) Техническое обеспечение

- системный администратор

5) Торговый  филиал

2.2 Структура системы обеспечения медикаментами

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

Рисунок 2.1 - Структура предприятия

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

Характеристика задачи

2.3.1.  Цель, назначение, технико-экономическая сущность задачи, обоснование целесообразности ее решения.

Система позволит клиенту делать заказ на товар по сети, автоматизировать процесс принятия заявок клиентов, учет товара, учет сотрудников и учет клиентов.

2.3.2. Перечень объектов, при управлении которыми решается задача

Информационно-технологическая система.

2.3.3. Описание назначения и порядка использования выходной информации

На выходе из системы генерируется такой набор выходной информации:

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

2.3.4. Периодичность решения задачи.

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

2.3.5. Требования к организации сбора и передачи в обработку входной информации, порядку ее контроля и корректировки

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

2.3.6. Условия, при которых прекращается решение задачи автоматизированным способом

Задача может быть решена вручную, в случае, если:

  •  отсутствуют ПК;
  •  нет электроэнергии;
  •  программный инструментарий вышел из строя.

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

Информационно-технологическая система, администратор, оператор, мастер.

2.3.8. Распределение функций между персоналом и техническими средствами при различных ситуациях решения задачи

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

 

  1.  Разработка структуры БД

     

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

Пользователи базы данных не страдают от низкой производительности обработки. Во многих случаях ПО Oracle должно работать 24 часа в сутки, не имея периодов разгрузки, ограничивающих пропускную способность базы данных. В качестве работы с базой данных использовался сервер Wamp. Этот сервер широко используется с целью разработки, предоставления веб-сервисов. WAMP назван по первым буквам входящих в его состав компонентов:

  •  Windows операционная система от компании Microsoft;
  •  Apache — веб-сервер;
  •  MySQL — СУБД;
  •  PHP язык программирования, используемый для создания веб-приложений.

В ходе создания базы данных, была создана Диаграмма «сущность-связь». Диаграмма «сущность-связь» была разработана с использованием Case-средства ERWin Data Modeler r7 и на её основе была построена схема базы данных в Oracle и представлена на рисунке 2.4.1

Рисунок 2.4.1 – Модель сущность-связь

2.5 Разработка структуры реестра

 

Реестр был разработан с помощью объектно-ориентированного языка С++, он является защищенным от любого несанкционированного доступа и модификации файлов. Интерфейс реестра создавался с помощью библиотеки VCL. Это библиоте́ка визуа́льных компоне́нтов (англ. Visual Component Library, VCL) — объектно-ориентированная библиотека для разработки программного обеспечения, разработанная компанией Borland (на данный момент поддерживается Embarcadero) для поддержки принципов визуального программирования. VCL предоставляет огромное количество готовых к использованию компонентов для работы в самых разных областях программирования, таких, например, как интерфейс пользователя (экранные формы и элементы управления — т. н. «контролы», «контроли»), работа с базами данных, взаимодействие с ОС, программирование сетевых приложений и прочее.

Данный реестр обладает следующими ключевыми особенностями:

  •  Простота
  •  Объектно-ориентированность
  •  Распределенность
  •  Надежность
  •  Безопасность
  •  Независимость от архитектуры компьютеров
  •  Переносимость
  •  Интерпретируемость
  •  Многопоточность
  •  Динамичность

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

Также стоит отметить безопасность данного реестра, которая достигается путем следующих технологий, которые были реализованы на С++:

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

    - Сигнатурный метод, который защищает созданные записи в БД от новых вирусов.

Главной особенностью реестра является его способность определять пользователя вошедшего в систему, после чего предоставлять ему пароль, уникальный адрес, и список запросов SQL. Если пользователь является системным администратором, у него есть возможность использовать все виды запросов, которые ему необходимы при работе с базой данных. Остальным пользователям доступны следующие запросы и ключевые слова: Select(*), From, Where, And, Or, Having. Это дает возможность защиты базы данных от влияния пользователей, которым доступ ограничен, а также это дает возможность поддержки целостности базы данных.

Таблица 2.5.1 – структура реестра

Наименование поля

Имя поля

Тип поля

Длина в знаках

Реестр

Name

Password

Address

Connecting

Amount of Fields

Query

Varchar

Varchar

Varchar

Varchar

Varchar

Varchar

30

15

15

15

15

15

2.6 Разработка схемы алгоритма и программного модуля

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

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

Рисунок 2.6 – Схема алгоритма программы

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

2.7 Обоснование выбора языка программирования

Для решения поставленной задачи был выбран язык программирования С++.

Поддерживает такие парадигмы программирования как процедурное программирование, ООП, обобщённое программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает, в том числе, общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.

Достоинствами этого языка является:

C++ — чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. В частности:

- Поддерживаются различные стили и технологии программирования, включая традиционное директивное программирование, ООП, обобщённое программирование, мета программирование (шаблоны, макросы).

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

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

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

- Язык поддерживает понятия физической (const) и логической (mutable) константности. Это делает программу надёжнее, так как позволяет компилятору, например, диагностировать ошибочные попытки изменения значения переменной. Объявление константности даёт программисту, читающему текст программы дополнительное представление о правильном использовании классов и функций, а также может являться подсказкой для оптимизации. Перегрузка функций-членов по признаку константности позволяет определять изнутри объекта цели вызова метода (константный для чтения, не константный для изменения). Объявление mutable позволяет сохранять логическую константность при использовании кэшей и ленивых вычислений.

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

  •  Синтаксис, унаследованный от C, неудобен.
  •  Язык содержит слишком много возможностей, они могут быть опасны.
  •  Наоборот, язык не содержит некоторых возможностей.
  •  Языку присущи проблемы производительности.

Выбор СУБД – это один из важных этапов при разработке системы.

Структура хранения данных  состоит из единой области хранения данных. Для реализации подсистемы хранения данных использовалась СУБД Oracle.

Сервер Oracle Database обеспечивает эффективные и действенные решения для основных средств баз данных. Oracle поддерживает самые большие базы данных — потенциальным размером до сотен гигабайт. Чтобы обеспечить действенный контроль над использованием дорогостоящих дисковых устройств, он предоставляет полный контроль распределения пространства. Oracle поддерживает большое число пользователей, одновременно выполняющих разнообразные приложения, которые оперируют одними и теми же данными. Он минимизирует соперничество за данные и гарантирует согласованность данных. Oracle поддерживает все описанные выше возможности, при этом сохраняя высокую степень суммарной производительности системы. Пользователи базы данных не страдают от низкой производительности обработки. Во многих случаях ПО Oracle должно работать 24 часа в сутки, не имея периодов разгрузки, ограничивающих пропускную способность базы данных.

Среди функций и это в тоже время является основным ее преимуществом,  следует выделить ее защищенность, так как система написана на объектно-ориентированном языке java, она является защищенной от любого несанкционированного доступа  и модификации файлов. А также следует выделить высокую производительность, которая была достигнута посредством компиляции кода, с помощью так называемого JIT-компилятора. Так как этот компилятор отслеживает, какой код может выполняться раньше, и оптимизирует по скорости только эту часть кода.

Также стоит отметить, так как в данной программе применяется СУБД Oracle,  это дает возможность пакетной обработки запросов с подтверждением. Транзакционный механизм позволяет не опасаться сбоев программной среды и оборудования. В случае успешного завершения обработки пакета SQL-команд сервер баз данных генерирует так называемый commit — подтверждение успешного выполнения, которое отсылается клиенту.

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

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

Данная система предназначается для таких крупных предприятий как Apple, и Microsoft. Эта система подходит для таких предприятий, так как в ней реализованы такие ключевые особенности:

- Защищенность

- Переносимость

- Независимость от архитектуры компьютеров

- Надежность

- Динамичность

- Многопоточность

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

Все эти особенности обеспечивают следующие функции, для которых создавалась данная система:

  •  Поддержка целостности БД
  •  Учет клиентов, и заказов.
  •  Учет сотрудников предприятия.
  •  Оптимизации размещения товаров на складе (информация о наличии товара на складе, его цена, тип, поставщик данного товара).

Также стоит отметить особенность поддержки целостности базы данных. Которая достигается путем создания БД в СУБД Oracle, и созданием реестра с помощью языка программирования С++. Реестр несет всю информацию о пользователях, которые вносят данные в систему, и следит, чтобы все данные были внесены корректно. Если данные были введены не правильно, будет ошибка, которая известит пользователя о том, что операцию необходимо начать заново.

2.8 Оценка надежности

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

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

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

2.8.1 Классификация ошибок программы

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

2.8.2 Выбор расчетных моделей надежности программного продукта

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

Наиболее простыми моделями для оценки надежности являются эмпирические модели, основанные на анализе накопленной информации о функционировании ранее разработанных программ. Так, приводятся данные, что к началу системного тестирования ПС на каждые 1000 операторов приходится 10 ошибок. Уровень надежности программного средства считается приемлемым для начала эксплуатации, если тому же объему операторов соответствует одна ошибка, то есть:

,                                               (2.1)

где   - число ошибок в программе;

- число операндов в программе.

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

,                                        (2.2)

где  - коэффициент пропорциональности;

- число операторов и операндов в программном средстве соответственно.

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

.                                  (2.3)

Уровень дефектности ПС связан с интенсивностью потока программных отказов у конкретного пользователя зависимостью:

,                                     (2.4)

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

Рассчитаем число ошибок, возникающих до начала эксплуатации программы, разработанной в дипломном проекте, по формулам, представленным выше.

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

- коэффициент пропорциональности для модели Холстеда:

;                                             (2.5)

- для формулы (2.2) число ошибок  не должно быть больше единицы на каждую тысячу операторов.

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

Для этого предварительно подсчитаем число операторов и операндов, содержащихся в программе. Мы определили, что число операторов   , а операндов - .

Осуществим расчет числа ошибок в программе по формуле (2.4):

.                                        

Исходя из полученного результата, можно сделать вывод: так как число ошибок не превышает 1, то для данного числа ошибок уровень надежности ПС является приемлемым.

Рассчитаем число ошибок в программе по методу Холстеда. Следует учитывать, что число ошибок не должно превышать 21.

       ;                                  (2.6)

, тогда

.

Исходя из полученного результата, можно сделать вывод, что в программе содержится допустимое количество ошибок (не превышает 21), что соответствует заданию по разработке дипломного проекта.

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

ЗАКЛЮЧЕНИЕ

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

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

 Программный модуль создан как Windows-приложение, имеет удобный пользовательский интерфейс, который позволяет работать на  непрофессиональном уровне.  Язык программирования, использованный для разработки – С++. Подсистема позволяет: обрабатывать запросы по  списку поставщиков;  выдает пользователю соответствующую информацию на монитор.  

ПЕРЕЧЕНЬ ССЫЛОК

  1.  А.П. Быков А. М. Кончуров. Автоматизация учета и статистики в крупном универсальном магазине с помощью ЭВМ- М: Статистика, 1976.- 147с.оооо
  2.  Сальников Е. Н. Автоматизированные системы управления предприятием. Справочное пособие. – М.: Энергия, 1980.-224с.
  3.  Бакис К. Я. Эффективность автоматизации производства (Методические оценки планирования, оценки, анализа). – М.: Энергия, 1985.-104с
  4.   Киевский С.В. «Самоучитель по работе с программой «1С:Бухгалтерия» Доля пользователей локальных и сетевых версий: 5.0 и Проф-2.0 для DOS,
  5.  Бабич В.В., Свидерский Е.И Бухгалтерский учет на предприятиях малого бизнеса в Укране. 3-е изд-е, Мир,доп К: ОНПИ ЛИБРА, 1993г
  6.  Пономарева Проектирование программных средств: М.; Высш.шк., 1990.
  7.  Тейер Т., Липов М. Надежность программного обеспечения : М.Мир, 1981.
  8.  Липаев В.В. Проектирование программных средств: М.; Высш.шк., 1990.
  9.  Тейер Т., Липов М. Надежность программного обеспечения : М.Мир, 1981.К.В., Кузьмин Л.Г. Информационное обеспечение АСУ: Учеб. Для сред. спец. учеб. заведений. – 2-е изд., перераб. и доп. М.: Высш. шк., 1991. – 222 с.
  10.  Крейг Хант. Персональные компьютеры в сетях TCP/IP. Перев. С англ. – ВНV  – Киев,197.
  11.  Олифер В. Г. Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы. – СПб.: Питер,2001-672с.  

Липаев В.В.

Приложение А

Текст программы


МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ

«УТВЕРЖДАЮ»

руководитель дипломной работы

 доцент каф. СТ

В.Г. Иванов____________________

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ

«Разработка подсистемы учета медикаментов в распределенной системе»

Текст программы

ЛИСТ УТВЕРЖДЕНИЯ

ГЮИК

РАЗРАБОТАЛ:

ст. гр. КН-09-1

Шай А.А.

2013


МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ

УТВЕРЖДЕН ГЮИК

«Разработка подсистемы учета медикаментов в распределенной системе»

Текст программы

ГЮИК

Листов _6_

2013

Unit1.cpp

#include <string.h>

#include <stdio.h>

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)

{

String pr,dpr;

pr="MSDataShape.1";

dpr="Microsoft.Jet.OLEDB.4.0";

String tmp = ExtractFilePath(Application->ExeName) + "Учёт продаж товаров в аптеке.mdb";

const String ConnStr = "Provider=%s;Data Provider=%s;Data Source=%s";

if (!ADOConnection1->Connected) {

 ADOConnection1->ConnectionString = Format (ConnStr,

  ARRAYOFCONST((pr,dpr,tmp)));

 }

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form3->Show();

}

void __fastcall TForm1::Image1Click(TObject *Sender)

{

Show();

}

void __fastcall TForm1::Button2Click(TObject *Sender)

{

char sql[255];

ADOQuery1->Filtered=false;

ADOQuery1->Close();

ADOQuery1->SQL->Clear();

sprintf(sql,Edit1->Text.c_str());

ADOQuery1->SQL->Add(sql);

ADOQuery1->Open();

}

void __fastcall TForm1::Button4Click(TObject *Sender)

{

       ADOQuery1->Filter=Edit3->Text;

       ADOQuery1->Filtered=true;

}

void __fastcall TForm1::Button3Click(TObject *Sender)

{

ADOQuery1->Locate(ComboBox1->Text,Edit2->Text,TLocateOptions() << loCaseInsensitive);

}

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Form2->Show();

}

void __fastcall TForm1::ComboBox2Change(TObject *Sender)

{

AnsiString str="select * from " + ComboBox2->Items->Strings[ComboBox2->ItemIndex];

ADOQuery1->Filtered=false;

ADOQuery1->Close();

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(str);

ADOQuery1->Open();

}

Unit2.cpp

#include <stdio.h>

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

AnsiString str[ 10];

__fastcall TForm2::TForm2(TComponent* Owner)

       : TForm(Owner)

{

str[0]="SELECT p.[КодПоставщика], p.[Обращение], p.[Должность], p.[Телефон] from Поставщики p where p.[Город]='%s' and p.[Город] not in (select Город from Потребители pr where p.[Город]=pr.[Город])";

str[1]="SELECT p.[КодПоставщика], t.[Марка] from Поставщики p, Товары t where p.[КодПоставщика]=t.[КодПоставщика] and t.[КодТовара] in (select t.[КодТовара] from Товары t, Типы tp where t.[КодТипа]=tp.[КодТипа] and [Категория]='%s')";

str[2]="select t.[КодТипа], count(*) from Товары t, Типы tp where t.[ЕдиницаИзмерения] in (select ЕдиницаИзмерения from Товары where [ЕдиницаИзмерения]='1 кг') and [Категория]='%s' and t.[КодТипа]=tp.[КодТипа] group by t.[КодТипа]";

str[3]="select p.[Название], t.[Марка], zk.[Количество], zk.[Цена]  from Товары t, Заказы z, Заказано zk, Потребители p where t.[КодТовара]=zk.[КодТовара] and zk.[КодЗаказа]=z.[КодЗаказа] and z.[КодКлиента]=p.[КодКлиента] and p.[Название]='%s'";

str[4]="select p.[Название], t.[Марка] from Поставщики p, Товары t where t.[КодПоставщика]=p.[КодПоставщика] and [Должность] not in (select Должность from Поставщики where [Должность]='Директор') and [Город]='%s'";

str[5]="Select Название, zak.[КодТовара], Марка from Потребители p, Товары t, Заказано zak, Заказы z where zak.[КодТовара]=t.[КодТовара] and zak.[КодЗаказа]=z.[КодЗаказа] and z.[КодКлиента]=p.[КодКлиента] and [Адрес]='%s'";

str[6]="select Марка, i.[Количество] from Инвентаризация i, Товары t, Поставщики p where t.[ЕдиницаИзмерения]='1 кг' and i.[КодТовара]=t.[КодТовара] AND t.[КодПоставщика]=p.[КодПоставщика] and p.[Название]='%s'";

str[7]="select p.[Название], t.[Марка], zak.[Количество] from Заказано zak, Товары t, Поставщики p where [Марка] in(select Марка from Товары where [Марка]='%s') and zak.[КодТовара]=t.[КодТовара] and t.[КодПоставщика]=p.[КодПоставщика]";

str[8]="select Имя, s.[Должность] from Сотрудники s, Заказы z, Потребители p where s.[КодСотрудника]=z.[КодСотрудника] and z.[КодКлиента]=p.[КодКлиента] and p.[Название] in (select p.[Название] from Потребители p where p.[Название]='%s')";

str[9]="select pt.[Название], [Категория]='%s'  from Потребители pt, Товары t, Заказы z, Заказано zak, Типы tp where z.[КодКлиента]=pt.[КодКлиента] and z.[КодЗаказа]=zak.[КодЗаказа] and zak.[КодТовара]=t.[КодТовара] and tp.[КодТипа]=t.[КодТипа]";

Form1->ADOConnection1;

Form1->ADOQuery1;

Form1->DataSource1;

Form1->DBGrid1;

}

void __fastcall TForm2::Button1Click(TObject *Sender)

{

char sql [255];

Form1->ADOQuery1->Filtered=false;

Form1->ADOQuery1->Close();

Form1->ADOQuery1->SQL->Clear();

sprintf(sql, str[ComboBox1->ItemIndex].c_str(), Edit1->Text);

Form1->ADOQuery1->SQL->Add(sql);

Form1->ADOQuery1->Open();

}

Unit3.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm3 *Form3;

__fastcall TForm3::TForm3(TComponent* Owner): TForm(Owner)

{

}

void __fastcall TForm3::Button1Click(TObject *Sender)

{

Form1->Close();

}

void __fastcall TForm3::Button2Click(TObject *Sender)

{

Form3->Close();

Form1->Show();

}

void __fastcall TForm3::Image1Click(TObject *Sender)

{

Show();

}

Приложение B

ГРАФИЧЕСКИЙ МАТЕРИАЛ К ДИПЛОМНОЙ РАБОТЕ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОННИКИ

Кафедра  Системотехники

ГРАФИЧЕСКИЙ МАТЕРИАЛ

К ДИПЛОМНОЙ РАБОТЕ НА ТЕМУ:

Разработка подсистемы учета медикаментов в распределенной системе ”  

Разработал:

Студент группы КН-09-1

________________             А,А. Шай

«___»_____________________2013г.

Руководитель дипломной работы:

доцент кафедры Системотехники

____________________ В.Г. Иванов

«___» ___________________ 2013 г.

Харьков 2013


Разраб.

Шай А.А.

Подпись

Структурная схема предприятия мелкооптовой торговли

Провер.

Иванов В.Г.

Н. Контр.

Иванов В.Г.

КН-09-1

Лист 1    

Утверд.

Петров Э.Г.

СТ

Листов 1

Разраб.

Шай А.А.

Подпись

Модель сущность-связь

Провер.

Иванов В.Г.

Н. Контр.

Иванов В.Г.

КН-09-1

Лист 1    

Утверд.

Петров Э.Г.

СТ

Листов 1

Наименование поля

Имя поля

Тип поля

Длина в знаках

Реестр

Name

Password

Address

Connecting

Amount of Fields

Query

Varchar

Varchar

Varchar

Varchar

Varchar

Varchar

30

15

15

15

15

15

Разраб.

Шай А.А.

Подпись

Структура реестра

Провер.

Иванов В.Г.

Н. Контр.

Иванов В.Г.

КН-09-1

Лист 1    

Утверд.

Петров Э.Г.

СТ

Листов 1

Разраб.

Шай А.А.

Подпись

Схема алгоритма программы

Провер.

Иванов В.Г.

Н. Контр.

Иванов В.Г.

КН-09-1

Лист 1    

Утверд.

Петров Э.Г.

СТ

Листов 1

Разраб.

Шай А.А.

Подпись

Экранная форма список товаров

Провер.

Иванов В.Г.

Н. Контр.

Иванов В.Г.

КН-09-1

Лист 1    

Утверд.

Петров Э.Г.

СТ

Листов 1

Разраб.

Шай А.А.

Подпись

Экранная форма поставщики

Провер.

Иванов В.Г.

Н. Контр.

Иванов В.Г.

КН-09-1

Лист 1    

Утверд.

Петров Э.Г.

СТ

Листов 1

Разраб.

Шай А.А.

Подпись

Экранная форма заказы

Провер.

Иванов В.Г.

Н. Контр.

Иванов В.Г.

КН-09-1

Лист 1    

Утверд.

Петров Э.Г.

СТ

Листов 1

Разраб.

Шай А.А.

Подпись

Экранная форма сотрудники

Провер.

Иванов В.Г.

Н. Контр.

Иванов В.Г.

КН-09-1

Лист 1    

Утверд.

Петров Э.Г.

СТ

Листов 1

Unit1.cpp

#include <string.h>

#include <stdio.h>

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)

{

String pr,dpr;

pr="MSDataShape.1";

dpr="Microsoft.Jet.OLEDB.4.0";

String tmp = ExtractFilePath(Application->ExeName) + "Учёт продаж товаров в аптеке.mdb";

const String ConnStr = "Provider=%s;Data Provider=%s;Data Source=%s";

if (!ADOConnection1->Connected) {

 ADOConnection1->ConnectionString = Format (ConnStr,

  ARRAYOFCONST((pr,dpr,tmp)));

 }

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form3->Show();

}

void __fastcall TForm1::Image1Click(TObject *Sender)

{

Show();

}

void __fastcall TForm1::Button2Click(TObject *Sender)

{

char sql[255];

ADOQuery1->Filtered=false;

ADOQuery1->Close();

ADOQuery1->SQL->Clear();

sprintf(sql,Edit1->Text.c_str());

ADOQuery1->SQL->Add(sql);

ADOQuery1->Open();

}

void __fastcall TForm1::Button4Click(TObject *Sender)

{

       ADOQuery1->Filter=Edit3->Text;

       ADOQuery1->Filtered=true;

}

void __fastcall TForm1::Button3Click(TObject *Sender)

{

ADOQuery1->Locate(ComboBox1->Text,Edit2->Text,TLocateOptions() << loCaseInsensitive);

}

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Form2->Show();

}

void __fastcall TForm1::ComboBox2Change(TObject *Sender)

{

AnsiString str="select * from " + ComboBox2->Items->Strings[ComboBox2->ItemIndex];

ADOQuery1->Filtered=false;

ADOQuery1->Close();

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(str);

ADOQuery1->Open();

}

Unit2.cpp

#include <stdio.h>

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

AnsiString str[ 10];

__fastcall TForm2::TForm2(TComponent* Owner)

       : TForm(Owner)

{

str[0]="SELECT p.[КодПоставщика], p.[Обращение], p.[Должность], p.[Телефон] from Поставщики p where p.[Город]='%s' and p.[Город] not in (select Город from Потребители pr where p.[Город]=pr.[Город])";

str[1]="SELECT p.[КодПоставщика], t.[Марка] from Поставщики p, Товары t where p.[КодПоставщика]=t.[КодПоставщика] and t.[КодТовара] in (select t.[КодТовара] from Товары t, Типы tp where t.[КодТипа]=tp.[КодТипа] and [Категория]='%s')";

str[2]="select t.[КодТипа], count(*) from Товары t, Типы tp where t.[ЕдиницаИзмерения] in (select ЕдиницаИзмерения from Товары where [ЕдиницаИзмерения]='1 кг') and [Категория]='%s' and t.[КодТипа]=tp.[КодТипа] group by t.[КодТипа]";

str[3]="select p.[Название], t.[Марка], zk.[Количество], zk.[Цена]  from Товары t, Заказы z, Заказано zk, Потребители p where t.[КодТовара]=zk.[КодТовара] and zk.[КодЗаказа]=z.[КодЗаказа] and z.[КодКлиента]=p.[КодКлиента] and p.[Название]='%s'";

str[4]="select p.[Название], t.[Марка] from Поставщики p, Товары t where t.[КодПоставщика]=p.[КодПоставщика] and [Должность] not in (select Должность from Поставщики where [Должность]='Директор') and [Город]='%s'";

str[5]="Select Название, zak.[КодТовара], Марка from Потребители p, Товары t, Заказано zak, Заказы z where zak.[КодТовара]=t.[КодТовара] and zak.[КодЗаказа]=z.[КодЗаказа] and z.[КодКлиента]=p.[КодКлиента] and [Адрес]='%s'";

str[6]="select Марка, i.[Количество] from Инвентаризация i, Товары t, Поставщики p where t.[ЕдиницаИзмерения]='1 кг' and i.[КодТовара]=t.[КодТовара] AND t.[КодПоставщика]=p.[КодПоставщика] and p.[Название]='%s'";

str[7]="select p.[Название], t.[Марка], zak.[Количество] from Заказано zak, Товары t, Поставщики p where [Марка] in(select Марка from Товары where [Марка]='%s') and zak.[КодТовара]=t.[КодТовара] and t.[КодПоставщика]=p.[КодПоставщика]";

str[8]="select Имя, s.[Должность] from Сотрудники s, Заказы z, Потребители p where s.[КодСотрудника]=z.[КодСотрудника] and z.[КодКлиента]=p.[КодКлиента] and p.[Название] in (select p.[Название] from Потребители p where p.[Название]='%s')";

str[9]="select pt.[Название], [Категория]='%s'  from Потребители pt, Товары t, Заказы z, Заказано zak, Типы tp where z.[КодКлиента]=pt.[КодКлиента] and z.[КодЗаказа]=zak.[КодЗаказа] and zak.[КодТовара]=t.[КодТовара] and tp.[КодТипа]=t.[КодТипа]";

Form1->ADOConnection1;

Form1->ADOQuery1;

Form1->DataSource1;

Form1->DBGrid1;

}

void __fastcall TForm2::Button1Click(TObject *Sender)

{

char sql [255];

Form1->ADOQuery1->Filtered=false;

Form1->ADOQuery1->Close();

Form1->ADOQuery1->SQL->Clear();

sprintf(sql, str[ComboBox1->ItemIndex].c_str(), Edit1->Text);

Form1->ADOQuery1->SQL->Add(sql);

Form1->ADOQuery1->Open();

}

Unit3.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm3 *Form3;

__fastcall TForm3::TForm3(TComponent* Owner): TForm(Owner)

{

}

void __fastcall TForm3::Button1Click(TObject *Sender)

{

Form1->Close();

}

void __fastcall TForm3::Button2Click(TObject *Sender)

{

Form3->Close();

Form1->Show();

}

void __fastcall TForm3::Image1Click(TObject *Sender)

{

Show();

}


ЗАПУСК ПРОГР-МЫ

СОЗД. НОВУЮ ЗАПИСЬ

ВОД Т

ЗАПИСЬ В БД

Редактировать

КОРРЕКЦИЯ ДАННЫХ

ПОИСК

ВВОД ДАННЫХ

ПОИСК В БД

Да

Нет

Начало

Конец

Нет

Да

Нет

Да

ЗАПУСК ПРОГР-МЫ

СОЗД. НОВУЮ ЗАПИСЬ

ВВОД Т

ЗАПИСЬ В БД

Редактировать

КОРРЕКЦИЯ ДАННЫХ

ПОИСК

ВВОД ДАННЫХ

ПОИСК В БД

Да

Нет

Начало

Конец

Нет

Да

Нет

Да