Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Из опыта создания универсальных тестовых редакторов

nd;
        else                  Begin
                                Writeln('2')
                                Writeln(b1,’2’);
                                End;
        Readln;
        Write('Фамилия: '); {вписывание фамилии}
        Readln(a);
        d:=length(a); {выставление пробелов}
        Write(b1,a); {запись в файл}
        For i:=1 to 14-d do Write(b1,' ');
        Write('Имя: '); {вписывание имени, процедура повторяется}
        Readln(a);
        Write(b1,a);
        d:=length(a);
        For i:=1 to 11-d do Write(b1,' ');
        Write('Отчесчтво: '); {вписывание отчества, процедура повторяется }
        Readln(a);
        Write(b1,a);
        d:=length(a);
        For i:=1 to 17-d do Write(b1,' ');
        Write(b1,f);
        d:=length(f);
        For i:=1 to 8 do Write(b1,' ');
        GetDate(g1,g2,g3,g4);   {проставление даты}
        Writeln(b1,g3,'.',g2,'.',g1);
        close(b1);
        Window(15,10,50,19);
        TextBackGround(black);
        clrscr;
   Программа  рассчитывает  количество  правильных  ответов  по  формуле,  в
соответствии с этим выставляет оценку, спрашивает ваши ФИО, записывает их  в
файл,  проставляет  название  теста  и  дату  его  прохождения.   При   этом
используется  метод  работы  со   строками:   конкатенация(слияние)   строк.
Проблемой стало корректное вписывание в  файл  строки,  так  как  количество
букв может быть разным, поэтому программа проставляет пробелы в  файл  между
данными, используя данные о длине строк фамилии, имени, отчества  и  вычитая
их из постоянного числа
                          Таймер, системное время.
   Таймер был  разработан  для  отсчета  времени  на  тест,  время  вводится
предварительно  составителем  теста.  Кроме  того,  параллельно  с   выводом
времени  на  тест  выводится  текущее  системное  время.  Действие   таймера
основано  на  переменной-счетчике,  которая  через  определенные  промежутки
времени уменьшает свое значение на  1(секунду).  Системное  время  выводится
благодаря процедуре GetTime.
Repeat              {цикл счетчика времени}
        Window(60,20,70,21); {окно вывода времени}
        TextBackGround(black);
        clrscr;
        z2:=z2-1; {обратный отсчет секунд}
        If z2<0 Then Begin       {обнуление счетчика}
                      z1:=z1-1;
                     z2:=60;
                     End;
        If (z1=0)and(z2=0) Then GoTo l1; {проверка исхода времени}
        GetTime(g1,g2,g3,g4); {вывод таймера и текущего времени}
        Writeln(z1,':',z2); {вывод времени на экран}
       Write(g1,':',g2,' ',g3);
        Delay(1000);
        until keypressed;
Объявляется переменная, из которой каждую секунду вычитается 1. Так
осуществляется обратный отсчет. С исходом времени программа автоматически
переходит к выставлению оценки.
                          Оконная система диалога.
   Поскольку прошлая моя работа была посвящена диалоговым системам,  я  учел
тот опыт, но в этой программе сделал нововведение, приблизившее программу  к
современному «оконному» виду.
   Над оформлением окна пришлось посидеть не один час, так как обычное  окно
в виде квадрата на экране совсем не привлекательно. Я изучил  строение  окон
в среде MS-DOS и попытался воссоздать дизайн окна в  своей  программе.  Если
вы когда-либо видели схему окна в MS-DOS, то заметили, что окно  обрамляется
двойной рамкой, наверху которой находится название окна. Здесь  мне  помогло
хитрое решение. Я заглянул в таблицу символов ASCII и нашел  символ  двойной
рамки! Далее  все  просто:  открывается  окно,  закрашивается,  по  краям  с
помощью циклов рисуется рамка и выводится название окна. Но это еще не  все.
Внутри окна открывается другое окно того же  цвета,  чтобы  было  незаметно.
Теперь при вводе или  выводе  данных  рамка  не  будет  двигаться  вместе  с
текстом, разрываться и т. д. Мы получаем полноценное окно.
Я  сделал  оформление  окна  в  виде  процедуры,  необходимо   лишь   ввести
координаты окна и его название. Ниже приведен код оформления окна:
Procedure windows(x,y,x1,y1:integer; b:string);
    Var a,t:integer;
    Begin
    Window (x+1,y+1,x1+1,y1+1);   {рисование тени от окна}
    TextBackGround(black);
    clrscr;
    Window(x,y,x1,y1); {рисование окна}
    TextBackGround(blue);
    clrscr;
    TextColor(darkgray); {цвет текста}
    Write(' ');
    Write(chr(201)); {рисование уголка}
    For a:=1 to 4 do Write(chr(205)); {рисование полосы}
    Write(' ');
    TextColor(green); {цвет текста}
    Write(b); {вывод названия окна}
    Write(' ');
    TextColor(darkgray); {цвет текста}
    For a:=1 to (x1-x-9-length(b)) do Write(chr(205)); {рисование линии}
    Writeln(chr(187)); {рисование уголка}
    For a:=1 to (y1-y-1) do Begin   {рисование линий по бокам}
                      Write(' ');
              &nb
12345След.
скачать работу

Из опыта создания универсальных тестовых редакторов

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ