на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: Кодирующее устройство для кода Файера


ü Покрытие операторов.

ü Покрытие решений.

ü Покрытие условий.

7.2. Результаты тестирования


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

Тестирование системы включало в себя:

-    тестирование ввода различных набора данных;

-    получение комбинаций для кода с любым образующим многочленом;

Тестирование ввода различных наборов кодовых комбинаций не показало ни одной исключающей ситуации.

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

8. Ограничения на разработку.


Для выполнения программы необходимо соблюдать некоторые требования, а именно:

1)   Программа может работать на персональных компьютерах с процессором не ниже  80486 .

2)   Для реализации интерфейса  необходимо иметь цветной монитор с адаптером не ниже VGA.

3)   RAM не ниже  8MB.

4)   Windows 95/98/NT

8.1. Инструкция пользователю.

      В программе разработан интерфейс, подходящий под  стандарты. Интерфейс реализован  в графическом режиме. Меню горизонтальное, с выпадающими окнами. Главное окно программы изображено на рис.. Приложения 2.

Главное меню программы содержит следующие пункты:

1.   О программе - дана краткая аннотация выполненной программы.

2.   Работа  - содержит подменю с пунктами:

1.   Ввод - позволяет пользователю ввод  соответствующих данных. Здесь предусмотрена защита от некорректного ввода. В этом пункте можно ввести  любую информационную комбинацию.

2.   Вывод - выполняется алгоритм построения образующей матрицы, с последующем  выводом  ее на экран.

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

Пункты меню активизируются нажатием клавиши <Enter>.

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

Передвижение по меню осуществляется клавишами перемещения курсора на клавиатуре. Также используется "горячая клавиша"  Esc. При нажатии на неё происходит автоматический выход из программы.

Заключение

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

Все  элементы принципиальной схемы имеют серии К155 или  К55. Это одни из самых распространенных и довольно не дорогих отечественных микросхем, легко доступная любому пользователю.

Программа реализована на языке Turbo Pascal 7.0. Это наиболее распространенный на сегодняшний день язык программирования. Поэтому в программе разобраться трудностей не будет.

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

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

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

Программа  является универсальной и может быть усовершенствована  любым пользователем, разбирающимся в языке программирования Pascal 7.0 .

Дана общая модульная структура программа, которая может помочь ползо-

вателю  разобраться в общей структуре программы и усовершенствовать программу.

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

1.   Тёмников Ф. Е..

Теоретические основы информационной техники:

Учеб.пособие для вузов-2-е изд., перераб. и доп.-М.:Энергия, 1979.-

 512 с., ил.

 

2. Липаев В.В.

Тестирование программ.- М.:     Радио и связь,1986. - 296 с.: ил.

3. Тутевич В. Н.

Телемеханика:

Учеб.пособие для студентов вузов спец. “Автоматика и

телемеханика”-2-е изд., перераб. и доп.-М.: Высш. Шк., 1985.-  423 с., ил.

4.  Зельдин Е. А.

Цифровые интегральные микросхемы в информационн-измерительной 

аппаратуре. –Л.: Энергоатомиздат. Ленингр. отд-ние, 1986.- 280 с.: ил.

Приложения.

 

Приложение 1.  Перечень элементов

Поз.

Обозн.

Наименование Кол Примечания

Конденсаторы

С3 К10-60 – 10 мКф + 10% 1
С1,С2 К10-17а – 0.1 мКф  +  0.1% 2

Микросхемы.

К555АГ3 1
К155ИР13 9
К555ТВ6 1
К555ИЕ10 2
К155ЛН1
К155ЛИ1

Резисторы

R1-R2 С2-29В 5Ком±0.1% 2
R4 МЛТ-0.125 – 30 Ком + 10% 1
R5 МЛТ-0.125 – 1.5Koм + 10% 1

Приложение 2.  Блок-схема алгоритма.


Приложение 3. Текст програмных модулей.

Uses Crt,Graph,AlexUnit;

Const

  _N = 33;

  _M = 10;

Type

  Delim_Mas = array[1 .. 100] of byte;

  Mass1 = array[1 .. _N+_M-1] of byte;

  Mass2 = array[1 .. _M] of byte;

  Mass3 = array[1 .. _M-1] of byte;

  Mas_Exit=array[1..2] of String;

  Two_Matrix=array[1 .. _N,1 .. _N+_M-1] of byte;

Const

  P : Mass2 = (1,0,1,1,0,0,1,0,1,1);

  Y_No : Mas_Exit = ('Да','Нет');

Var

   F,Cicle_Kod : Mass1; R : Mass1;

   Delimoe : Delim_Mas;

   Obraz_Matrix : Two_Matrix;

   Mas : Mass;

   grDriver,grMode,ErrCode: Integer;

   flag : boolean;

   _t,c,n,m,i,schot,N0,Code : integer;

Function Sum(F,P : Byte) : Byte;    {Суммирование по модулю 2}

  Var

    i : Byte;

  Begin

    If ((F=1) and (P=1)) or ((F=0) and (P=0)) Then Sum:=0

                                                                                                                             Else Sum:=1;

  End;

{-------------------------------}

Procedure Dopoln(Var F : Mass1); {Умножение на старшую степень образующего многочлена}

 Var

   i : Byte;

 Begin

   for i:=_N+1 to _N+_M-1 do F[i]:=0;

 End;

{--------------------------------}

Procedure Delenye(F : Mass1;P : Mass2); {Деление многочлен на многочлен}

  Var

         i,j,t : Byte; K : Mass1;

  Begin

    For i:=1 to _N do

      Begin

        IF F[i]=1 Then Begin

          t:=1;

          For j:=i to i+_M-1 do

            Begin

              K[j]:=Sum(F[j],P[t]);

              F[j]:=K[j];

              t:=t+1;

            End;

        End;

      End;

    t:=1;

    For i:=_N+1 to _N+_M-1 do

      Begin

        R[t]:=F[i];

        t:=t+1;

      End;

  End;

{----------------------------------------}

Procedure Ed_Matrix(Var A : Two_Matrix);  {Составление еденичной матрицы}

Var

  i : Integer;

  Begin

    For i:=1 to _N do

      Begin

        A[i,_N+1-i]:=1

      End;

  End;

{----------------------------------------}

Procedure Obr_Matrix(Var A : Two_Matrix); {Получение образующей матрицы}

  Var

         i,j,t,Schot,l,m : Byte; K : Mass1;

  Begin

    Delimoe[1]:=1;

    Schot:=1;

    For i:=1 to _N do

      Begin

        IF Delimoe[i]=1 Then Begin

          t:=1;

          For j:=i to i+_M-1 do

            Begin

              K[j]:=Sum(Delimoe[j],P[t]);

              Delimoe[j]:=K[j];

              t:=t+1;

            End;

          l:=1;

          For m:=i+1 to i+_M-1 do

            Begin

              A[Schot,_N+l]:=Delimoe[m];

              l:=l+1;

            End;

        End

           Else Begin

             l:=1;

             For m:=i+1 to i+_M-1 do

               Begin

                 A[Schot,_N+l]:=Delimoe[m];

                 l:=l+1;

               End;

           End;

        Schot:=Schot+1;

      End;

  End;

Procedure InitGrf;                    {Инициализация графики}

Begin

  grDriver := Detect;

  InitGraph(grDriver, grMode,'c:\sub\bp\bgi');

  if GraphResult <> grOk then  Begin

       Halt(1);

  End;

End;

Procedure Visual(Var sa:mass);  {Ввод информационных символов}

 Var i,x,y,k,Fon,Color,a:Integer;

     Code: Integer;

     ch,chi:Char;

     Stop:Boolean;

     Elm : String;

 Begin

  moveto(20,465);

  SetTextJustify(0,1);

  SetColor(0);

  outtext('Нажмите Enter');

  x:=30;

  y:=225;

  k:=17;

  Fon:=1;

  Color:=14;

  Window_(30,150,610,260,1,'Ввод нформационных символов');

  SetTextStyle(1,0,4);

  SetColor(Fon);

  For i:=1 to _N Do

   Begin

    MoveTo(x+i*k,y);

    Str(Sa[i],Elm);

    OutText(Elm);

   End;

  SetTextStyle(0,0,1);

  MoveTo(x+17,y-20);

  Str(_N,Elm);

  OutText(Elm);

  MoveTo(x+_N*17,y-20);

  Str(0,Elm);

  OutText(Elm);

  SetTextStyle(1,0,4);

   i:=1;

   MoveTo(x+i*k,y);

   Setcolor(Color);

   Str(Sa[i],Elm);

   OutText(Elm);

   Stop:=False;

   Repeat

    Begin

     ch:=ReadKey;

     Case ch Of

     #75:Begin

        Setcolor(Fon);

          MoveTo(x+i*k,y);

          Str(Sa[i],Elm);

          OutText(Elm);

          i:=i-1;

          if(i<1)then i:=_N;

          SetColor(Color);

          MoveTo(x+i*k,y);

          Str(Sa[i],Elm);

          OutText(Elm);

        Stop:=False;

        End;{влево}

     #77:Begin

          SetColor(Fon);

          MoveTo(x+i*k,y);

          Str(Sa[i],Elm);

          OutText(Elm);

          i:=i+1;

          if(i>_N)then i:=1;

          SetColor(Color);

          MoveTo(x+i*k,y);

          Str(Sa[i],Elm);

          OutText(Elm);

          Stop:=False;

         End;{вправо}

      '1':Begin

           SetColor(7);

           MoveTo(x+i*k,y);

           Str(Sa[i],Elm);

           OutText(Elm);

           SetColor(Color);

           MoveTo(x+i*k,y);

           sa[i]:=1;

           F[i]:=Sa[i];

           Str(Sa[i],Elm);

           OutText(Elm);

         Stop:=False;

        End;

      '2':Begin

           SetColor(7);

           MoveTo(x+i*k,y);

           Str(Sa[i],Elm);

           OutText(Elm);

           SetColor(Color);

           MoveTo(x+i*k,y);

           sa[i]:=0;

           F[i]:=Sa[i];

           Str(Sa[i],Elm);

           OutText(Elm);

           Stop:=False;

        End;

     #13:Begin Stop:=True; End;

     End;

    End;

   Until(Stop);

   SetTextStyle(0,0,1);

 End;

{---------------------------------------}

{Вывод образующей матрицы}

Procedure OutPutObr_Matrix(x,y : Integer;Obr_Matr : Two_Matrix  );

 Var k,i,j : Integer;

     Elm : String;

 Begin

   k:=12;

   For i:=1 to _N Do

     Begin

       For j:=1 to _N Do

         Begin

           MoveTo(x+j*k,i*10+y);

           Str(Obr_Matr[i,j],Elm);

           OutText(Elm);

         End;

    End;

   SetColor(4);

   For i:=1 to _N Do

     Begin

       For j:=_N+1 to _N+_M-1 Do

         Begin

           MoveTo(x+j*k,i*10+y);

           Str(Obr_Matr[i,j],Elm);

           OutText(Elm);

         End;

    End;

 End;

{----------------------------------}

{Вывод полученной кодовой комбинации}

Procedure OutPut(x,y : Integer;F,A : Mass1);

 Var k,s : Integer;

     Elm : String;

  Begin

    MoveTo(x+10,y-20);

    Str(_N+_M-1,Elm);

    OutText(Elm);

    MoveTo(x+(_N+_M)*12-3,y-20);

    Str(0,Elm);

    OutText(Elm);

    k:=12;

    For i:=1 to _N Do Cicle_Kod[i]:=F[i];

    s:=1;

    For i:=_N+1 To _N+_M-1 Do

     Begin

      Cicle_Kod[i]:=A[s];

      s:=s+1;

     End;

    For i:=1 to _N Do

      Begin

        MoveTo(x+i*k,y);

        Str(Cicle_Kod[i],Elm);

        OutText(Elm);

      End;

    SetColor(4);

    For i:=_N+1 to _N+_M-1 Do

      Begin

        MoveTo(10+x+i*k,y);

        Str(Cicle_Kod[i],Elm);

        OutText(Elm);

      End;

  End;

{---------------------------------}

{выход из программы}

Function _Exit(Fon,Color : Integer;Col_Simv : Byte) : integer;

 Var x,y,k : Integer;

     Stop : Boolean;

     Ch : Char;

Begin

  Window_(250,200,450,300,1,'Выход');

  x:=225;

  y:=260;

  k:=80;

  SetTextStyle(0,0,1);

  SetColor(Col_Simv);

  For i:=1 to 2 do

    Begin

      MoveTo(x+i*k,y);

      OutText(Y_No[i]);

    End;

  i:=1;

  SetFillStyle(1,Fon);

  Bar(x+i*k-30,y-15,x+i*k+30,y+15);

  MoveTo(x+i*k,y);

  Setcolor(Color);

  OutText(Y_No[i]);

  Stop:=False;

  Repeat

   ch:=ReadKey;

     Case ch Of

     #75:Begin

          SetFillStyle(1,7);

          Bar(x+i*k-30,y-15,x+i*k+30,y+15);

        Setcolor(Col_Simv);

          MoveTo(x+i*k,y);

          OutText(Y_No[i]);

          i:=i-1;

          if(i<1)then i:=1;

          SetFillStyle(1,Fon);

          Bar(x+i*k-30,y-15,x+i*k+30,y+15);

          SetColor(Color);

          MoveTo(x+i*k,y);

          OutText(Y_No[i]);

        Stop:=False;

        End;{влево}

     #77:Begin

          SetFillStyle(1,7);

          Bar(x+i*k-30,y-15,x+i*k+30,y+15);

          Setcolor(Col_Simv);

          MoveTo(x+i*k,y);

          OutText(Y_No[i]);

          i:=i+1;

          if(i>2)then i:=2;

          SetFillStyle(1,Fon);

          Bar(x+i*k-30,y-15,x+i*k+30,y+15);

          SetColor(Color);

          MoveTo(x+i*k,y);

          OutText(Y_No[i]);

          Stop:=False;

         End;{вправо}

     #13:Begin Stop:=True; _Exit:=i End;

     End;{Case}

  Until Stop;

  SetTextStyle(0,0,0);

End;

{---------------------------------}

{ОСНОВНАЯ ПРОГРАММА               }

{---------------------------------}

Begin

 InitGrf;

Repeat

  flag:=false;

  Fon(3,2,GetMaxX-3,30);

  setcolor(0);

  moveto(20,465);

  SetTextJustify(0,1);

  outtext('Esc -  Выход');

  Menu(3,'Работа','О программе','Помощь','','','');

  Case t Of

     1:Begin

         Repeat

           SetFillStyle(1,7);                     {Строка состтояния}

           Bar(3,450,getmaxx-3,getmaxy-3);

           SetColor(15);

           Line(3,450,getmaxx-3,450);

           Line(3,450,3,getmaxy-3);

           SetColor(0);

           Line(3,getmaxy-3,getmaxx-3,getmaxy-3);

           Line(getmaxx-3,450,getmaxx-3,getmaxy-3);

           {moveto(20,465);

           SetTextJustify(0,1);

           SetColor(0);

           outtext('Нажмите любую клавишу ...');}

           VerMenu(3,'Ввод комбинации','Образующая матрица','Выход','','','');

           Case Np Of

             1 : Begin

                   Visual(Mas);

                   Dopoln(F);

                   Delenye(F,P);

                   Window_(30,300,610,410,1,'Закодированное сообщение. Красные   

                   символы - контрольные.');

                   OutPut(40,370,F,R);

                   ReadKey;

                   SetFillStyle(1,3);

                   Bar(30,150,610,410);

                 End;

             2 : Begin

                   Window_(30,50,610,445,1,'Образующая матрица');

                   Ed_Matrix(Obraz_Matrix);

                   Obr_Matrix(Obraz_Matrix);

                   OutPutObr_Matrix(40,90,Obraz_Matrix);

                   ReadKey;

                   SetFillStyle(1,3);

                   Bar(30,50,610,450);

                 End;

             3 : Begin

                  Case _Exit(1,15,0) of

                   1 : begin

                         Np:=3;

                         flag:=true;

                       end;

                   2 : Flag:=False;

                  end

                 End;

           End;

         Until (Np=3) or (Np=4);

         Ramka_Off(x1,y1,x2,y2);

       End;

     2:Begin

         SetFillStyle(1,7);                     {Строка состтояния}

           Bar(3,450,getmaxx-3,getmaxy-3);

           SetColor(15);

           Line(3,450,getmaxx-3,450);

           Line(3,450,3,getmaxy-3);

           SetColor(0);

           Line(3,getmaxy-3,getmaxx-3,getmaxy-3);

           Line(getmaxx-3,450,getmaxx-3,getmaxy-3);

         Window_(100,80,510,400,1,'О программе');

         moveto(130,130);

         SetTextJustify(0,1);

         outtext('Данная программа является курсовой работой');

         moveto(300,145);

         SetTextJustify(1,1);

         outtext('по курсу :');

         moveto(300,160);

         SetTextJustify(1,1);

         outtext('" Передача информации " ');

         moveto(120,200);

         SetTextJustify(0,1);

         outtext('Задание : Построить кодирующее устройство');

         moveto(185,220);

         outtext('для кода Файра.Кодируемых сообщений 63,');

         moveto(185,240);

         outtext('число обнаруживаемых ошибок Br=4, число');

         moveto(185,260);

         outtext('исправляемых ошибок Bs=3.');

         moveto(120,290);

         outtext('Студент :        Иванов А. Е.');

         moveto(120,310);

         outtext('Группа  :        BM-1-97');

         moveto(120,330);

         outtext('Преподаватель :  Каевченко .');

         moveto(300,380);

         SetTextJustify(1,1);

         outtext('СМОЛЕНСК  1999 г.');

        moveto(20,465);

        SetTextJustify(0,1);

        SetColor(0);

        outtext('Нажмите любую клавишу ...');

        Readkey;

        Ramka_Off(x1,y1,x2,y2);

       End;

     3:Begin

         SetFillStyle(1,7);                     {Строка состтояния}

           Bar(3,450,getmaxx-3,getmaxy-3);

           SetColor(15);

           Line(3,450,getmaxx-3,450);

           Line(3,450,3,getmaxy-3);

           SetColor(0);

           Line(3,getmaxy-3,getmaxx-3,getmaxy-3);

           Line(getmaxx-3,450,getmaxx-3,getmaxy-3);

           Window_(100,50,500,350,1,'Помощ');

         moveto(120,110);

         SetTextJustify(0,1);

         outtext('<--  -->  ПЕРЕДВИЖЕНИЕ ПО ГОРИЗОНТАЛЬНОМУ МЕНЮ.');

         moveto(120,130);

         outtext('‑  |');

         moveto(120,135);

         outtext('|  |     ПЕРЕДВИЖЕНИЕ ПО ВЕРТИКАЛЬНОМУ МЕНЮ.');

         moveto(120,140);

         outtext('|  ­');

         moveto(114,150);

         moveto(114,155);

         outtext('<Enter>       АКТИВАЦИЯ ПУНКТА МЕНЮ.');

         moveto(140,200);

         outtext('В программе использованы соотношения :');

         moveto(120,220);

         outtext('L >= Bs       c >= Bs+Br-1');

         moveto(160,235);

         outtext('L');

                         moveto(120,240);

         outtext('e = 2 -1       m = c + L');

         moveto(120,260);

         outtext('n = НОК(e,c)');

         moveto(120,280);

         outtext('После расчетов получили образующий многочлен');

         moveto(120,300);

         outtext('Файра : P(x)=1011001011');

         moveto(20,465);

         SetTextJustify(0,1);

         SetColor(0);

         outtext('Нажмите любую клавишу ...');

         ReadKey;

         Ramka_Off(x1,y1,x2,y2);

       End;

  End; {Case}

Until flag;

closegraph;

End.

Оглавление.

Аннотация

Введение

1. Теоретическое введение

1.1. Постановка задачи.
1.2. Понятие двоичных циклических кодов.
1.2.1. Общие понятия и определения.

            1.2.2. Методы построения циклических кодов.

1.3.Технические средства кодирования для двоичных

      циклических кодов.

1.4. Коды Файра.

  2. Разработка схемы кодирующего устройства.

2.1. Построение кода Файра.
2.2. Структурная схема кодирующего устройства.

 3. Анализ технического задания.  

 4. Работа устройства

  5.Выбор узлов принципиальной схемы.

5.1. Расчет генератора тактовых импульсов
5.2. Счетчик К555 ИЕ10
5.3. Тригер К555 ТВ6
5.4. Регистр К155ИР13.

 6. Описание разработки системы.

6.1. Модульная структура системы.
6.2. Организация пользовательского интерфейса  .
6.2.1. Меню системы.
6.2.2. Обработка ошибочных ситуаций.
6.3. Спецификация на программные модули.

 7 . Тестирование.

7.1. Выбор методики тестирования.
7.2. Результаты тестирования

  8. Ограничения на разработку.

8.1.  Инструкция пользователя

 Заключение.

 

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

 

 Приложения

 

Приложение 1.  Перечень элементов.

 

Приложение 2. Блок схема алгоритма.

 

Приложение 3. Текст программных модулей.

 

    Приложение 4. Экранные формы.

 


Страницы: 1, 2, 3


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

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


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