Материал: Разработка информационно-поисковой системы для формирования технологического оборудования для сборочно-монтажных работ

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

символьные: char, wchar_t (char16_t и char32_t, в стандарте C++11);

- целочисленные знаковые: signed char, short int, int, long int (и long long int, в стандарте C++11);

целочисленные беззнаковые: unsigned char, unsigned short int, unsigned int, unsigned long int(и unsigned long long int, в стандарте C++11);

с плавающей точкой: float, double, long double;

- логический: bool, имеющий значения true и false.++ - чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. Достоинствами С++ является:

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

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

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

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

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

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

возможность имитации расширения языка для поддержки парадигм, которые не поддерживаются компиляторами напрямую. Например, библиотека Boost.Bind позволяет связывать аргументы функций;

возможность создания встроенных предметно-ориентированных языков программирования. Такой подход использует, например библиотека Boost.Spirit, позволяющая задавать EBNF-грамматику парсеров прямо в коде C++;

используя шаблоны и множественное наследование можно имитировать классы-примеси и комбинаторную параметризацию библиотек. Такой подход применён в библиотеке Loki, класс SmartPtr которой позволяет, управляя всего несколькими параметрами времени компиляции, сгенерировать около 300 видов «умных указателей» для управления ресурсами;

кроссплатформенность: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ. Для определения реальных свойств системы выполнения в стандартной библиотеке присутствуют соответствующие возможности (например, std::numeric_limits <T>)[10]. Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем;

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

имеется возможность работы на низком уровне с памятью, адресами;

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

3.2 Разработка алгоритма работы программы

Алгоритм работы программы состоит из нескольких частей:

алгоритм работы части «Окно авторизации» », приложения информационно-поисковой системы (рис. 3.1);

алгоритм работы части «Главное окно программы» », приложения информационно-поисковой системы (рис. 3.2);

алгоритм работы части «Окно открытие файла БД» », приложения информационно-поисковой системы (рис. 3.3).

Рисунок 3.1 - Алгоритм работы части «Окно авторизации», приложения информационно-поисковой системы

В основе части «Окно авторизации», приложения информационно-поисковой системы лежит создание модального диалогового окна авторизации пользователя (класс CDialogAuto, производный от CDialog). Создание шаблона окна производится при помощи редактора ресурсов (ресурс «Dialog»). Создаются классы работы с БД и с записями БД (CAutoData, CAutoRecord производные от CDatabase и CRecordset) и реализуется функция связывания БД и класса работы записей (void CRecordset::DoFieldExchange(…){}). При инициализации диалогового окна происходит подключение к БД, созданной методами СУБД MS Access и запрос на выборку из таблицы «Users». Введенные в поля (Edit control) данные пользователя приложения сравниваются с полученными из БД, и если они идентичны авторизация происходит успешно, иначе - пользователь получает соответствующее сообщение.

Рисунок 3.2 - Алгоритм работы части «Главное окно программы», приложения информационно-поисковой системы

В основе части «Главное окно программы» приложения информационно-поисковой системы, лежит создание главного окна программы (класс CMainWindow) функцией BOOL CFrameWnd::Create(…){} определение его стиля. Подключение к окну ресурса «Menu», созданного при помощи редактора ресурсов и создание обработчиков пунктов меню, а также подключение панели инструментов (создание изображения кнопок, объявление объекта панели инструментов и т.д.). Оглашение карты сообщений (DECLARE_MESSAGE_MAP()) для обработки сообщений закрытия окна, перерисовки, пунктов меню и т.д. Создание обработчиков сообщений таких как void OnClose(){ }, которая выводит окно сообщение, функция int WinApi::MessageBox(…){}, для вывода информации (об ошибке, предупреждении и т.д.) пользователю приложения. После чего происходит разъединение с БД.

Рисунок 3.3 - Алгоритм работы части «Окно открытие файла БД», приложения информационно-поисковой системы

В основе части «Окно открытие файла БД», приложения информационно-поисковой системы лежит создание модального диалогового окна открытия файла с записями БД о технологическом оборудовании (класс CDialogData, производный от CDialog). Создание шаблона окна при помощи редактора ресурсов (ресурс «Dialog»). Создается класс работы с записями БД (C4Data производный от CRecordset) и реализуется функция связывания БД и класса работы записей (void CRecordset::DoFieldExchange(…){}). При инициализации диалогового окна происходит подключение к БД, производится запрос к таблицам связанных с технологическим оборудованием. После реализуются функции показа записей, навигации и редактирования данных (для администратора), а так же функция поиска по заданному параметру.

3.3 Разработка интерфейса информационно-поисковой системы для формирования технологического оборудования для сборочно-монтажных работ

Разработка оконного интерфейса производится при помощи средств Visual Studio и библиотеки MFC.

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

Рисунок 3.4 - Иерархия связей основных классов MFC

Класс CWinApp - базовый класс, от которого наследуется объект windows-приложения. Объект приложения обеспечивает методы для инициализации и выполнения приложения.

Каждое приложение, которое использует Microsoft Foundation Classes, может только содержать только один объект, полученный из CWinApp. Этот объект создается, когда другие объекты глобальные объекты C++ создаются, и уже доступен, когда Windows вызывает функцию WinMain, которая обеспечена Microsoft Foundation Class Library.

Класс приложения CWinApp имеет только одну функцию - virtual BOOL CWinApp::InitInstance(), которая инициализирует объект приложения, в случае удачного выполнения возвращает - TRUE, в других случаях - FALSE.

Класс CFrameWnd - обеспечивает функциональные возможности так называемого однодокументного интерфейса Windows SDI (Single Document Interface), и обеспечивает функции окна.

Функция BOOL CFrameWnd::Create(…) - отвечает за создание окна. Функция имеет структуру, представленную в табл. 3.1.

Таблица 3.1 - Структура функции BOOL CFrameWnd::Create(…)

Параметр

Описание

LPCTSTR lpszClassName

Имя класса окна (с параметрами окна)

LPCTSTR lpszWindowName

Заголовок окна

WORD dwStyle

Стиль окна

const RECT&

Позиция и размер окна

CWnd* pParentWnd

Показатель на родительское окно, имеет значение NULL если текущее окно - основное окно программы

LPCTSTR lpszMenuName

Показатель на меню окна

DWORD dwExStyle

Определение расширенных стилей

CCreateContext* pContex

Дополнительные контекстные структуры


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

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

Диалоговые окна делятся на:

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

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

Функция CDialog::DoModal() - функция, вызова модального диалогового окна.

Функция CDialog::OnInitDialog() - функция, определяющая установку фокуса ввода к одному из элементов управления в диалоговом окне.

Класс CDatabase - класс, инкапсулирующий соединение с источником данных.

Функция CDatabase::OpenEx(…) - функция, для установления соединения с базой данных. Структура функции представлена в табл. 3.2.

Таблица 3.2 - Структура функции CDatabase::OpenEx(…)

Параметр

Описание

Значения

LPCTSTR lpszConnectString

Строка подключения, в которой параметры разделены знаком «;»

DSN (data sourse name - имя источника данных); UID (имя пользователя); PWD (пароль); DRIVER (драйвер ODBC)

DWORD dwOptions

Набор битовых флагов, объединенных логическим «ИЛИ»

CDatabase::openReadOnly - открыть БД в режиме «только для чтения»; CDatabase::noOdbcDialog - никогда не выводить диалог, запрашиваемый дополнительную информацию про соединение; и т.д.


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

4. ОХРАНА ТРУДА

4.1 Анализ условий труда на рабочем месте разработчиков

Разработка информационно-поисковой системы для технологического оборудования для сборочно-монтажных работ проводится в лаборатории. Параметры лаборатории: длинна - 4м, ширина - 6,5м, высота - 3м. Три рабочих места, оснащенными тремя ПК, один из которых выступает сервером, и мониторами Dell UltraSharp U2312HM. Электрическая сеть, проведенная к лаборатории: трехфазная четырехпроводная сеть напряжением 380/220В переменного тока, частота 50 (±1)Гц, глухо-заземленная нейтраль.

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

Для выявления потенциально опасных вредных производственных факторов составлена система «Человек-Машина-Среда»[14][15].

Система "Человек - Машина - Среда" (Ч - М - С), в рамках проектирования информационно-поисковой системы для формирования технологического оборудования для сборочно-монтажных работ в лаборатории представлена на рис. 4.1, описание связей системы представлены в табл.4.1.

Первым элементом системы Ч - М - С, является "человек", условно разделим его на такие функциональные части:

Ч1 - человек, который выполняет управление ЭВМ, проектирует информационно-поисковую систему, путем создания исходного кода приложения (в данном случае программист-проектировщик);

Ч2 - человек, который рассматривается с точки зрения непосредственного влияния на окружающую среду, в данном случае на лабораторию (за счет выделения тепла, поглощения кислорода, влаговыделения и т.д.);

Ч3 - человек, который рассматривается с точки зрения его физиологического состояния под влиянием факторов, влияющих на него во время проектирования информационно-поисковой системы.

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

М1 - элемент, выполняющий основную технологическую функцию;

М2 - элемент функции аварийной защиты (защита ЭВМ от перегрева процессора, различного вида критические ошибки);

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

Рисунок 4.1 - Система Ч - М - С в рамках проектирования, в лаборатории, информационно-поисковой системы

Таблица 4.1 - Перечень связей системы Ч - М - С, страница 1