Автоматизированные системы управления

Анализ концепции построения комплекса средств автоматизации. Понятие базы данных. Достоинства и проблемы интеграции данных. Необходимость организации базы данных на автоматизированном рабочем месте. Функциональное назначение программ обработки запросов.

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

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

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

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

3.8.2 Требования по обеспечению удобства эксплуатации

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

3.9 Требования к операционной и программной совместимости

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

- информационную совместимость в части возможности замены ЭВМ РС/АТ на модель более высшего порядка, замену принтера на более производительный, и т.п.

3.9.1 Программная реализация. Постановка задачи

Задачей данной дипломной работы является разработка программ формирования и обработки запросов для трех форм представления БС и выдача их на экран монитора и принтер.

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

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

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

Исходя из соображений практического смысла были выбраны 3 формы представления БС: компактная-символическая, табличная, справочная (первая, вторая и третья формы представления БС соответственно).

Первая форма представления БС.

Первая форма представления БС приведена на рис.21 и позволяет выдавать на экран информацию о БС по всем разнотипным устройствам (по любому сочетанию устройств, по всем устройствам сразу, и т.д.)

1-5 поля - ключевые. Поле 6 - БС технических устройств в позиционном коде. Для каждого устройства определено фиксированное количество этих байтов (максимальное значение 4 группы или 4слова).

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

Вторая форма представления БС.

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

Третья форма представления БС.

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

Определение реализуемых функций программ обработки запросов для 3-х форм представления БС

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

Для первой формы представления БС:

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

по всей БД (дата и время не используются);

в едином интервале по дате и времени;

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

за один день в указанном интервале времени.

2. Расшифровка БС заданных оператором устройств, учитывая интервал поиска.

3. Выдача расшифрованных БС на монитор или принтер в первой форме представления. Как видно из описанного выше, первая форма представления БС выдается, на экран монитора в виде, представленном на рис. 21.

Для второй формы представления БС:

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

по всей БД;

в едином интервале по дате и времени;

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

за один день в указанном интервале времени.

Можно отметить, что варианты поиска по БД для первой и второй форм представления БС совпадают.

2. Расшифровка БС заданного оператором устройства, учитывая интервал поиска.

3. Выдача расшифрованных БС на экран монитора или принтер в форме представленной на рис. 23, причем вид экрана будет различным в зависимости от устройства, задаваемого оператором, т.к. устройства системы не идентичны и обладают конкретными свойственными лишь им характеристиками.

Для третьей формы представления БС:

1. Нахождение последней по времени или одной записи по конкретному устройству, заданному оператором,

2. Расшифровка БС заданного оператором устройства,

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

3.10 Описание программ

база данная автоматизация запрос

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

Программа обработки запроса для первой формы представления БС вызывается из программы формирования запроса со следующими аргументами: 1) “BS1_inq.exe”; 2) имя базы данных; 3) вариант выборки по дате и времени:

“0” - дата и время не используются, “1” - единый интервал по дате и времени, “2” - много интервалов - поиск производится в указанном интервале времени для каждого значения даты из числа входящих в интервал даты, “3” - единый интервал в течение одного дня (используется только первое значение даты); 4) интервал поиска по дате, например, “01/01/98-20/01/98”; 5) интервал поиска по времени, например, “06:00:00-09:00:00” и далее значения остальных полей БД.

Результат обработки запроса записывается в файл “inquiry.res” После окончания обработки должна быть вызвана программа “inq_out.exe” для отображения результатов на экран и принтер.

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

Функции поиска search1 (все записи в указанном интервале) и search2 (не более одного искомого значения по каждому полю) Поиск производится по максимальному номеру записи. Например, сначала просматривается поле, содержащее тип устройства и выбираются записи с номерами 5, 10, 36, 48. Затем производится поиск по виду сообщения. Если искомый вид сообщения находится лишь в 15-м поле, то все поля с 1-го по 36-е пропускаются и поиск начинается с 36-го поля. С помощью такого алгоритма производится минимизация времени поиска по БД. Как только искомые поля совпадают, то номер найденной записи фиксируется и управление передается программе recprint, которая форматирует найденную строку и записывает ее в файл.

Функция поиска search3 (более одного искомого значения хотя бы по одному полю) открывает массив буферов для поиска, его размерность равна количеству полей в таблице. Размерность каждого из массивов rec[i] равна количеству искомых значений по i-му полю таблицы. В каждый буфер заносится одно искомое значение по какому-либо полю таблицы. Каждому буферу rec[i] [j] соответствует элемент массива массивов z[i] [j], в котром хранится текущий номер найденной записи по данному буферу (т.е. записи, в соответствующем поле которой находится значение, равное значению, занесенному в буфер). Еще в одном массиве хранятся текущие номера найденных строк по каждому полю, где max - текущий номер записи при поиске, т.е. записи с номерами, меньше max уже просмотрены. Для каждого буфера находится запись со значением, равным занесенному в этот буфер и с номером, большим либо равным max. Найденные номера заносятся в соответствующие z[i] [j]. Затем для каждого поля определяется значение текущего номера найденных строк по каждому полю. Если хотя бы по одному полю произошел выход за пределы интервала поиска, значит, поиск закончен. Если же значения текущих номеров найденных строк совпадают по всем полям, значит, искомая запись найдена. Найденная строка форматируется и записывается в файл.

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

Программы обработки запросов для третьей формы представления БС находят последнюю по времени запись в БД и выдают преобразованные БС в файл. Тексты программ приведены в Приложении 1.

3.10.1 Оценка результатов работы программ

Результатом данного дипломного проекта является разработка программ формирования и обработки запросов для 3-х форм представления БС. Программы разработаны для технических средств АРМ РД и функционируют в составе специального ПО АРМ РД.

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

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

Требование удобства эксплуатации также является требованием, предъявляемым к специальному ПО АРМ РД вцелом и обеспечивается общей логикой организации пользовательского интерфейса.

Еще одно требование - это минимизация времени поиска по БД. Здесь нужно конкретизировать, что минимизация времени ответа на запрос осуществляется на нескольких уровнях:

“технологическом” - средства архивирования БД;

“логическом” - информация хранится в нескольких базах данных (см. п. 3.3.- одна из причин формирования подобных отношений - это минимизация времени поиска);

“программном” - выделение границ и интервалов поиска.

Кроме того, выбор формы представления, для которой формируется запрос и заданный интервал, будут влиять на время поиска записей. Если, например, оператор выбрал 1-ю форму представления и сформировал запрос по нескольким устройствам, причем задал вариант поиска по всей БД, то время ответа будет больше, чем, если бы оператор сформировал запрос для 3-й формы представления БС, которая обеспечивает поиск лишь одной записи в БД. Если для 3-й формы представления БС время ответа будет составлять 2-3 сек. то для сложных запросов может приближаться к десяткам секунд. Поэтому нельзя привести одно конкретное значение времени ответа на запрос оператора.

Приведем следующие рекомендации оператору АРМ РД: чем сложнее запрос и чем больше количество устройств, по которым сформирован запрос - тем дольше поиск. Если необходимо быстро получить информацию, то рекомендуется выбрать 3-ю или 2-ю форму представления, которые предназначены для получения информации по одному устройству. Если же количество записей в БД увеличилось настолько, что поиск занимает ощутимое время, то рекомендуется пользоваться средствами архивации.

4. Охрана труда

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

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

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

4.1 Характеристика помещения и факторы, действующие на оператора в процессе его труда

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

длина помещения: 6.5 м;

ширина помещения: 3.7 м;

высота помещения: 3.5 м;

число окон: 4;

число рабочих мест: 2;

освещение: естественное (через боковые окна) и общее искусственное;

вид выполняемых работ: непрерывная работа с прикладной программой в диалоговом режиме.

Напряжение зрения:

освещённость РМ, лк 300;

размеры объекта, мм 0.3 - 0.5;

разряд зрительной работы III - IV.

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

недостаточное освещение;

шум от работающих машин;

электромагнитное излучение;

выделение избытков теплоты.

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

Развитию утомляемости на производстве способствуют следующие факторы:

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

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

4.2 Расчёт освещения рабочего места оператора

Одним из основных вопросов охраны труда является организация рационального освещения производственных помещений и рабочих мест.

Для освещения помещения, в котором работает оператор, используется смешанное освещение, т.е. сочетание естественного и искусственного освещения.

Естественное освещение - осуществляется через окна в наружных стенах здания.

Искусственное освещение - используется при недостаточном естественном освещении и осуществляется с помощью двух систем: общего и местного освещения. Общим называют освещение, светильники которого освещают всю площадь помещения. Местным называют освещение, предназначенное для определённого рабочего места.

Для помещения, где находится рабочее место оператора, используется система общего освещения.

Нормами для данных работ установлена необходимая освещённость рабочего места ЕН=300 лк (для работ высокой точности, когда наименьший размер объекта различения равен 0.3 - 0.5 мм).

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

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

коэффициент отражения побелённого потолка Rп=70%;

коэффициент отражения от стен, окрашенных в светлую краску Rст=50%;=0.7,

где hП - высота помещения = 3.5 м. Тогда по табл. 7 [16] находим (для люминесцентных ламп i=0.7) h=0.38.

Наиболее приемлемыми для помещения ВЦ являются люминесцентные лампы ЛБ (белого света) или ЛТБ (тёпло-белого света), мощностью 20, 40 или 80 Вт.

Световой поток одной лампы ЛТБ40 составляет F1=3100 лм. Таким образом, необходимо установить 10 ламп ЛТБ40.

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

Расчёт местного светового потока не производится, т.к. в данном случае рекомендуется система общего освещения во избежание отражённой блёсткости от поверхности стола и экрана монитора.

Равномерность распределения яркости в поле зрения. Характеризуется отношением (данное отношение считается оптимальным) или. В данном случае, следовательно отношение.

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

В данном разделе дипломной работы был произведён расчёт освещённости рабочего места (с выбором типа ламп и их количества), а также оценка информационной нагрузки.

Кроме того, необходимо в течение 8-ми часового рабочего дня предусмотреть один часовой перерыв на обед, 5-ти минутные перерывы каждые полчаса и 15-ти минутные перерывы каждые 1.5 - 2 часа. Работу необходимо организовать таким образом, чтобы наиболее сложные задачи решались с 11:00 до 16:00 - в период наибольшей активности человека, а не в начале дня, когда оператор ещё не достиг максимальной активности, и не в конце дня, когда уже развивается утомление.

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

Время

Вид работы и её интенсивность

9:00 Начало работы

9:00 - 9:30 Вход в систему, решение общих организационных задач

9:30 - 9:35 5-ти минутный перерыв

9:35 - 10:10 Решение несложных задач, формирование запросов к системе

10:10 - 10:15 5-ти минутный перерыв

10:15 - 10:45 Решение несложных задач, изучение литературы

10:45 - 11:00 15-ти минутный перерыв

11:00 - 11:55 Решение логических, наиболее трудоёмких задач

11:55 - 12:00 5-ти минутный перерыв

12:00 - 13:00 Решение наиболее сложных и трудоёмких задач, требующих максимального умственного напряжения

13:00 - 14:00 Перерыв на обед

14:00 - 14:40 Наблюдение полученных результатов, исправление ошибок

14:40 - 14:45 5-ти минутный перерыв

14:45 - 15:10 Выполнение механических действий, анализ результатов, исправление ошибок

15:10 - 15:30 20-ти минутный перерыв

15:30 - 16:10 Анализ результатов, исправление ошибок

16:10 - 16:15 5-ти минутный перерыв

16:15 - 17:10 Выполнение механических действий, оформление отчётов, подведение результатов

17:10 - 17:15 5-ти минутный перерыв

17:15 - 18:00 Выход из системы, подготовка к следующему рабочему дню (план работ и т.д.)

18:00 Конец работы.

4.3 Режим труда и отдыха оператора

Устанавливается работодателем по взаимной договоренности в соответствии с Кодексом законов о труде РК, Отраслевым тарифным соглашением, Коллективным договором между работниками организации и работодателем и закрепляется трудовым договором (контрактом) между работодателем и оператором или приказом организации.

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

время на подготовительно-заключительные работы, обслуживание рабочего места, отдых (включая физкультпаузы) и личные надобности должно составлять до 14% рабочего (оперативного) времени;

доля регламентированных перерывов на отдых должна составлять до 8-10% рабочего (оперативного) времени;

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

Рекомендуемый режим труда и отдыха оператора ПК приведен в приложении 3 к настоящей Инструкции.

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

Заключение

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

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

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

В проектной части дипломной работы рассматриваются требования, предъявляемые к специальному ПО АРМ РД, программная реализация, постановка задачи, описание программ, оценка результатов работы программ.

В части охрана труда рассмотрены общие требования по охране труда при работе на ПЭВМ, а также рекомендации по режиму труда и отдыха оператора.

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

Список литературы

1. Глушков В. М. “Основы безбумажной информатики”, М. Наука, 1997 г.

2. “Человек и вычислительная техника” под ред. Глушкова В.М., М., 1991 г.

3. “Организационные вопросы автоматизации управления” (перевод с английского) Глушкова В.М., М., Экономика, 1992 г.

4. Мартин Дж. “Организация баз данных в вычислительных системах”, М. Мир, 2000 г.

5. Бойко В.В., Савинков В.М. “Проектирование баз данных информационных систем”, М., Финансы и статистика, 1989 г.

6. Шураков В.В. “Надежность программного обеспечения систем обработки данных”, М., Финансы и статистика, 2001 г.

7. Уинер Р. “Язык Турбо СИ”, М. Мир, 2003 г.

8. Paradox Engine. Документация: описание, список функций для создания и работы с БД.

9. “Турбо СИ++. Описание редактора, стандартные и графические функции”, изд. Иститута проблем информатики, М., 1999 г.

10. Хьюз Дж., Мичтом Дж. “Структурный подход к программированию”. Изд. Мир, М., 2000 г.

11. “Выполнение организационно-экономической части дипломных проектов”. Учебное пособие, изд. МИРЭА, 2004 г.

12. “Выполнение организационно-экономической части дипломных проектов”. Учебное пособие, изд. МИРЭА, 2005 г.

13. “Сетевые графики в планировании”. Разумов И.М., Белова Л.Д., и др., М. Высшая школа, 2001 г.

14. “Основы финансового менеджмента. Как управлять капиталом?” Балабанов И.Т., М. “Финансы и статистика”, 2004 г.

15. Мотузко Ф.Я. “Охрана труда”, М. Высшая школа, 1999 г.

Приложение

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

// inquiry.prj

//INQUIRY\inquiry.c

// main(),initsearch(),mem_args()

// программа обработки запросов

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <fcntl.h>

#include <sys/stat.h>

#include <io.h>

#include <dos.h>

#include <alloc.h>

#include "pxengine.h"

TABLEHANDLE tblh; // дескриптор таблицы

RECORDNUMBER low,high; // границы интервала поиска

int nflds; // кол-во полей в таблице

int nformat; // формат результата

int handle; // дескриптор файла

void interval(long date1,long date2,char *time1, char *time2); // определение границ интервала поиска

void search3(char *argv[],int *x); // поиск с перечислениями

void search2(char *argv[],int *x,int n); // поиск без перечислений

void search1(void); // поиск только по дате и времени

void initsearch(char *argv[],int *x,int p,int n); // выбор варианта поиска

void recprint(int nformat); // расшифровка записи БД в строку и запись этой строки в файл

char sag[7][81]={

" ДАТА ВРЕМЯ ТЕКСТ СООБЩЕНИЯ \r\n",

" ДАТА ВРЕМЯ НАПР-Е А N РР ИСТ ВС ТЕКСТ СООБЩЕНИЯ \r\n",

" ДАТА ВРЕМЯ НАПР-Е N РР ТЕКСТ СООБЩЕНИЯ \r\n",

" ДАТА ВРЕМЯ НАПР-Е К-ВО ВС 1СЛ 2СЛ 3СЛ 4СЛ ТЕКСТ СООБЩЕНИЯ \r\n",

" ДАТА ВРЕМЯ ТИП-У П ВС ТЕКСТ СООБЩЕНИЯ \r\n",

" ДАТА ВРЕМЯ КСУМ0 КСУМ1 КСУМ2 КСУМ3 \r\n",

" ДАТА ВРЕМЯ КСУП1 КСУС1 КСУП2 КСУС2 КСУП3 КСУС3 \r\n"

}; // шапки таблиц

char *inqstr; // строки запроса

/* строка аргументов функции main:

argv[1] - имя файла БД; или "!", означающий, что строка аргументов передается через память;

argv[2] - вариант поиска; 0 - поиск по всей БД, 1 - поиск в едином интервале по дате и времени, 2 - поиск в интервале времени по каждому дню интервала дат, 3 - поиск за один день в интервале времени;

argv[3] - дата;

argv[4] - время;

argv[5] и далее - искомые значения полей БД (argv[5] - третьего поля, argv[6] - четвертого поля и т.д.); "-" обозначает любое значение данного поля; в случае нескольких искомых значений по одному полю (перечисление) они разделяются запятыми; пробелы в значениях заменены на '_'. */

void main(int argc,char *argv[])

int *x; // x[i] - количество искомых значений по i-му полю

int n=0; / количество полей, для которых заданы значения для поиска

int p=0; // количество полей c перечислениями

// значения x,n,p определяются без учета полей даты и времени

char *name[]={"all_inf","opi","shk","sbkdg","fk","ksum","ksum0"};

// имена баз данных

long date1,date2; // граничные значения интервала дат

int a,i,j,k;

char *c;

char **mem_args(void);

RECORDHANDLE rech;

RECORDNUMBER num;

// Получение аргументов в случае их передачи через память

if(argv[1][0]=='!')

{

argv=mem_args();

for(argc=0;argv[argc]!=NULL;++argc);

}

// определение формата записи для базы данных, к которой

// произведен запрос

for(i=0;i<=6;++i)

if(!strcmp(name[i],argv[1]) || !strcmp(name[i],argv[1]+5))

{ nformat=i;break;}

// открытие файла результатов запроса (inquiry.res) и

// запись в него строк запроса и шапки таблицы

for(i=argc-1;argv[i][0]=='-';--i) argc--;

handle=open("inquiry.res",

O_CREAT | O_TRUNC | O_WRONLY,S_IREAD | S_IWRITE);

for(i=1,j=0;i<argc;)

{

inqstr=(char *)calloc(82,1);

memset(inqstr+1,' ',79);

inqstr[79]='\r';

inqstr[80]='\n';

inqstr[81]='\0';

for(c=inqstr;i<argc;++i)

{

if(strlen(inqstr)+strlen(argv[i])>78+j)

{

if(strlen(argv[i])>50 && (strlen(inqstr)<70 || strlen(argv[i])>78))

{

for(k=j+77-strlen(inqstr);argv[i][k]!=',';--k);

strcat(c," ");

strncat(c,argv[i]+j,k+1-j);

j=k+1;

break;

}

strcat(c," ");

strcat(c,argv[i]+j);

j=0;

}

inqstr[strlen(inqstr)]=' ';

_write(handle,inqstr,81);

free(inqstr);

}

_write(handle,sag[nformat],81);

// инициализация работы с БД

j=coreleft()/1024-50;

if(j>256) j=256;

if(a=PXSetDefaults(j,1,30,MAXLOCKHANDLES,3,SortOrderAscii)) printf("\n%s",PXErrMsg(a));

if(a=PXInit()) printf("\n%s",PXErrMsg(a));

if(a=PXTblOpen(argv[1],&tblh,0,0)) printf("\n%s",PXErrMsg(a));

PXRecNFlds(tblh,&nflds);

x=(int *)calloc(argc+1,sizeof(int));

// разбор аргументов запроса

for(i=5;i<argc;++i)

{

if(argv[i][0]=='-') continue;

++n;

for(c=argv[i],j=1;*c!='\0';++c)

{

if(*c==',') ++j;

if(*c=='_') *c=' ';

}

x[i-2]=j;

if(j>1)++p;

}

// главный блок

(argv[2][0])

{

case '0': low=1;PXTblNRecs(tblh,&high);

initsearch(argv,x,p,n);

break;

case '1':

PXDateEncode(atoi(argv[3]),atoi(argv[3]+3),atoi(argv[3]+6),&date1);

PXDateEncode(atoi(argv[3]+11),atoi(argv[3]+14),atoi(argv[3]+17),&date2);

interval(date1,date2,argv[4],argv[4]+9);

initsearch(argv,x,p,n);

break;

case '2':

PXDateEncode(atoi(argv[3]),atoi(argv[3]+3),atoi(argv[3]+6),&date1);

PXDateEncode(atoi(argv[3]+11),atoi(argv[3]+14),atoi(argv[3]+17),&date2);

interval(date1,date2,argv[4],argv[4]+9);

if(low==1 && !high) break;

if(low==1)

{

PXRecBufOpen(tblh,&rech);

PXRecGet(tblh,rech);

PXGetDate(rech,1,&date1);

PXRecBufClose(rech);

}

PXTblNRecs(tblh,&num);

if(high==num)

{

PXRecBufOpen(tblh,&rech);

PXRecLast(tblh);

PXRecGet(tblh,rech);

PXGetDate(rech,1,&date2);

PXRecBufClose(rech);

}

for(;date1<=date2;++date1)

{

interval(date1,date1,argv[4],argv[4]+9);

if(low>high) continue;

initsearch(argv,x,p,n);

}

break;

case '3':

PXDateEncode(atoi(argv[3]),atoi(argv[3]+3),atoi(argv[3]+6),&date1);

interval(date1,date1,argv[4],argv[4]+9);

initsearch(argv,x,p,n);

}

free(x);

if(a=PXTblClose(tblh)) printf("\n%s",PXErrMsg(a));

PXExit();

close(handle);

}

// initsearch

// выбор функции поиска

void initsearch(char *argv[],int *x,int p,int n)

{

if(low>high) return;

if(p) search3(argv+5,x);

else if(n) search2(argv,x,n);

else search1();

}

// Функция mem_args возвращает адрес строки параметров в случае ее передачи через память

#include "conn_mem.h"

char **mem_args()

{

char ***dat;

dat=(char ***)conn_mem();

return dat[ARGS_OFF/4];

}

// bs2_inq.prj

//INQUIRY\interval.c

// interval()

// определение граничных номеров интервала поиска

#include <stdio.h>

#include <stdlib.h>

#include "pxengine.h"

#include "def.h"

void interval (long date1,long date2,char *time1,char *time2)

{

RECORDHANDLE rech;

itoa(atoi(time2+6)+1,time2+6,10);

PXRecBufOpen(tblh,&rech);

PXPutDate(rech,1,date2);

PXPutAlpha(rech,2,time2);

if(PXRecInsert(tblh,rech))printf("error");

PXRecNum(tblh,&high);

--high;

PXRecDelete(tblh);

PXPutDate(rech,1,date1);

PXPutAlpha(rech,2,time1);

if(PXRecInsert(tblh,rech))printf("error");

if(PXRecNum(tblh,&low))printf("error");

PXRecDelete(tblh);

PXRecBufClose(rech);

}

// inquiry.prj

//INQUIRY\recprint.c

// recprint()

// форматирование и запись в файл найденной строки

#include <stdio.h>

#include <mem.h>

#include <io.h>

#include <dos.h>

#include "pxengine.h"

#include "def.h"

#include "disp.h"

void recprint()

{

long date;

int month,day,year;

int format[7][7]= { {21,0,0,0,0,0,0},{21,28,30,35,38,42,46},

{21,29,34,37,0,0,0},{ 21,29,35,38,43,48,53 },

{ 21,27,29,33,0,0,0 },{ 21,28,35,42,49,0,0 },

{ 21,28,35,42,49,56,63 } };

static char string[82]; // результирующая строка

RECORDHANDLE rech;

union REGS r;

int a,i;

memset(string,' ',82);

PXRecBufOpen(tblh,&rech);

PXRecGet(tblh,rech);

PXGetDate(rech,1,&date);

PXDateDecode(date,&month,&day,&year);

sprintf(string,"%.02d\\%.02d\\%.04d ",month,day,year);

PXGetAlpha(rech,2,10,string+11);

for(i=3;i<=nflds;++i)

PXGetAlpha(rech,i,sizeof(string)-format[nformat][i-2],

string+format[nformat][i-3]-1);

for(i=0;i<=80;++i) if(string[i]=='\0') string[i]=' ';

string[79]='\r';

string[80]='\n';

_write(handle,string,81);

PXRecBufClose(rech);

// передача управления диспетчеру

// (только для передачи cимвола на принтер!)

// после каждой найденной записи

r.h.ah=1;

int86(DISP,&r,&r);

}

// inquiry.prj

//INQUIRY\search12.c

// search1(),search2(),(search3() см в файле search3.c)

// search1 - все записи в заданном интервале

// search2 - задано не более одного искомого значения по каждому полю

// search3 - более одного искомого значения xотя бы по одному полю

/* исходные данные:

int *x;,где x[i] - количество искомых значений по i-му полю (только для search2)

char *argv[] - см. комментарии в inquiry.c (только для search2)

RECORDNUMBER low,high; - границы интервала поиска */

#include <stdlib.h>

#include "pxengine.h"

#include "def.h"

void search2(char *argv[],int *x,int n)

{

int a,i,j=0,*y;

int yes;

char *c,*c2;

char arg[10];

RECORDHANDLE *rec;

RECORDNUMBER *s,max=low;

s=(long *)calloc(n,sizeof(RECORDNUMBER));

rec=(unsigned int *)calloc(n,sizeof(RECORDHANDLE));

y=(int *)calloc(n,sizeof(int));

for(i=3;j<n;++i)

{

if(!x[i]) continue;

PXRecBufOpen(tblh,rec+j);

PXPutAlpha(rec[j],i,argv[i+2]);

y[j++]=i;

}

while(1)

{

for(i=0;i<n;++i)

{

if(max==1)

{

if (!(a=PXSrchFld(tblh,rec[i],y[i],SEARCHFIRST)))

PXRecNum(tblh,&s[i]);

}

else

if(s[i]<max)

{

PXRecGoto(tblh,max-1);

if(!(a=PXSrchFld(tblh,rec[i],y[i],SEARCHNEXT)))

PXRecNum(tblh,&s[i]);

}

if(a||s[i]>high)

{

free(s);free(rec);free(y);

return;

}

}

for(i=1,yes=1,max=s[0];i<n;++i)

{

if(s[i]!=max) yes=0;

if(s[i]>max) max=s[i];

}

if(yes) { ++max;recprint(); }

}

}

void search1(void)

{

RECORDNUMBER i;

for(i=low;i<=high;++i)

{

recprint();

PXRecNext(tblh);

}

}

// inquiry.prj

//INQUIRY\search3.c

// search3()

// поиск

/* исходные данные:

int *x; где x[i] - количество искомых значений по i-му полю

char *args[] - искомые значения полей БД (args[0] - третьего поля, argv[1] - четвертого поля и т.д.);

RECORDNUMBER low,high; - границы интервала поиска */

// search1 - все записи в заданном интервале

// search2 - не более одного искомого значения по каждому полю

// search3 - более одного искомого значения xотя бы по одному полю

#include "pxengine.h"

void search3(char *args[],int *x)

{

/*

Размещено на Allbest.ru


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

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

    презентация [17,1 K], добавлен 19.08.2013

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

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

  • Понятие базы данных, модели данных. Классификация баз данных. Системы управления базами данных. Этапы, подходы к проектированию базы данных. Разработка базы данных, которая позволит автоматизировать ведение документации, необходимой для деятельности ДЮСШ.

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

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

    курсовая работа [4,6 M], добавлен 22.05.2012

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

    контрольная работа [486,7 K], добавлен 29.10.2013

  • Автоматизированные базы данных в учебном процессе. Создание базы данных для МОУ СОШ № 12 с целью помощи в обеспечении централизованного управления, хранения информации об учениках. Требования к программе, условия эксплуатации. Программный код базы данных.

    дипломная работа [2,0 M], добавлен 25.03.2014

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

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

  • База данных как основа автоматизации. Разработка, описание и реализация программного обеспечения "Точность и правильность методов и результатов измерений для центральной заводской лаборатории ОАО "Акрилат". Листинг, исходные коды программы и базы данных.

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

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

    лабораторная работа [345,5 K], добавлен 20.12.2011

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

    курсовая работа [573,5 K], добавлен 21.02.2015

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