МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Автоматизированное рабочее место регистрации и документирования комплекса средств автоматизации

    Клавиатуру, манипулятор “мышь” следует располагать в оптимальной зоне –не более 300 - 400мм от точки опоры локтя оператора.








    1, 2





    Бланк данных

    Для оператора ввода данных документ (бланк) рекомендуется располагать на расстоянии 450-500 мм от глаз оператора, преимущественно слева, при этом угол между экраном АЦД и документом в горизонтальной плоскости не должен превышать 30-40 градусов.





    2, 3







    Кресло оператора

    Конструкция кресла оператора должна позволять сидеть, поддерживая тяжесть верхней части туловища не напряжением мышц спины, а путем опоры на спинку. Форма сиденья - квадратная со сторонами 400 мм, и с выемкой, по форме бедра. Наклон сиденья назад - 5-6 градусов, высота сиденья кресла от пола 400-450 мм. Если сиденье расположено выше, необходимо иметь подставку для ног. Спинка кресла должна иметь вогнутую форму, ширина спинки - 300 мм. Угол наклона спинки 5-10 градусов. При работе более 6ч на время отдыха угол наклона спинки можно изменить, но не более чем на 45 градусов.









    1, 2




    Устройства документи-

    Рования

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



    1, 3

    Продолжение табл. 1

    Элементы рабочего места оператора

    Технические характеристики, предъявляемые к элементу рабочего места оператора

    На какое требование влияет данная характеристика











    Окружаю-щее помещение

    Экран АЦД, документы, клавиатура пульта должны быть расположены так, чтобы перепад яркостей их поверхностей, зависящий от их расположения относительно источников света, не превышал 1:10 при рекомендуемом значении 1:3. При яркости изображения на экране 50-100 кд/м (номинальное значение) освещенность документа должна составлять 300-500 лк. Должны быть исключены слепящие яркости, блики и отображения от стекла экрана.

    При использовании экранов красновато-желтого цвета с яркостью свечения до 15кд/м2 стену, противоположную экранам, окрашивают в насыщенный темно-коричневый цвет с коэффициентом отражения =0.2, а остальные стены - в красно-коричневый цвет с =0.35. При восприятии информации на экране зеленого цвета стену, на которую направлен взгляд оператора, окрашивают в оливково-зеленый цвет с =0.4. Окраске поверхностей следует придавать матовую фактуру.












    1, 2, 3




    Заключение

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

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

    Объем памяти, занимаемый программой равен: V = 64 Кбайта.

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

    Договорная цена разработки составляет: Цд = 916 152 руб. в ценах 1998г.

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

    Значение информационной нагрузки оператора АРМ РД составляет 0.6 бит/с.

    В разделе “Гражданская оборона” были приведены требования по инженерной защите оператора и оборудования ПЭВМ от воздействия высоких температур при взрывах в ЧС мирного времени.

    В разделе “Эргономика” была произведена оценка рабочего места оператора и разработано оптимальное рабочее место оператора.

    Приложение 1

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






    Приложение 2

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


    // 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;

    }


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

    switch(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 <stdlib.h>

    #include <stdio.h>

    #include "pxengine.h"

    #include "def.h"


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

    {

    /*

    rec - массив массивов буферов для поиска,его размерность равна количеству полей в таблице. Размерность каждого из массивов rec[i] равна количеству искомых значений по i-му полю таблицы (то есть == х[i]). В каждый буфер заносится одно искомое значение ( например, в rec[3][0] - заносится первое искомое значение по 3-му полю таблицы).

    Каждому буферу ( rec[i][j] )соответствует элемент массива массивов z ( z[i][j] ), в котором хранится текущий номер

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

    В массиве s хранятся текущие номера найденных строк по каждому полю ( s[i] минимум из всех z[i][j] по этому i).

    max - текущий номер записи при поиске ( то есть записи с номерами меньше max уже просмотрены ).

    */

    RECORDHANDLE **rec;

    int i,j,k;

    int yes;

    char *c1,*c2;

    char arg[10];

    RECORDNUMBER *s,**z,max=low;

    int a;


    // выделение памяти под массивы rec,z,s

    // и открытие буферов

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

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

    z=(long **)calloc(nflds,sizeof(RECORDNUMBER *));


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

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.