Рефераты. Поиск кратчайшего пути в лабиринте

соответствие

8

Нажать клавишу‘Esc’


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

полное

соответствие

                   

                       Критерий тестирования: покрытие условий

9

Нажать клавишу <↑>

(вверх) и передвигать

курсор до тех пор,

пока не достигнет

границы  

§                     Курсор не выходит

за границы поля

полное

соответствие

10

Нажать клавишу<↓>

(вниз) и передвигать

курсор до тех пор,

пока не достигнет

границы

§                     Курсор не выходит

за границы поля

полное

соответствие

11

Нажать клавишу<←>

(влево) и передвигать

курсор до тех пор,

пока не достигнет

границы

§                     Курсор не выходит

за границы поля

полное

соответствие

12

Нажать клавишу<→>

(вправо) и передвигать

курсор до тех пор,

пока не достигнет

границы

§                      Курсор не выходит

за границы поля

полное

соответствие

Тестируемый модуль:

void Vvod(struct Lab* P, int* x1, int* y1, int* x2, int* y2)

{

 gotoxy(3,2);printf("Введите вход в лабиринт");        

 int x=1,y=1;                                                                    


 char a;

 do{

  a=getch();

  if(!a) a=getch();

  CursorHide(x,y);

  switch(a){

   case 80  :if (y<MY)  ++y ;break;

   case 72  :if (y>1 )  --y ;break;

   case 75  :if (x>1 )  --x ;break;

   case 77  :if (x<MX)  ++x ;break

   case 27  :exit(0);

 }

 if ((a==13) && (P->Map[y][x]==2)) break;

      }while(1);

  *x1=x;*y1=y;

 gotoxy(3,4);printf("Введите выход из лабиринта");

 do{0

  a=getch();

  if(!a) a=getch();

   switch(a){

   case 80  :if (y<MY)  ++y ;break;

   case 72  :if (y>1 )  --y ;break;

   case 75  :if (x>1 )  --x ;break; 

   case 77  :if (x<MX)  ++x ;break;

   case 27  :exit(0);

  }

 if ((a==13) && (P->Map[y][x]==2)) break;

 }while(1);

 *x2=x;*y2=y;

 gotoxy(3,5); printf("x2=%3i y2=%3i   ",x,y);

}

Ø                


Ø               Для этого модуля имеем следующие тесты (Таблица 2):

Таблица 2 – Тесты для модуля Vvod

 теста

        

   Действие

Предполагаемое поведение

Функции


Соответствие

§                                         

§                                           Критерий тестирования: покрытие решений

1

Нажать клавишу <↑>

(вверх)

курсор должен

переместиться вверх

полное

соответствие

2

Нажать клавишу<↓>

(вниз)

курсор должен

переместиться вниз

полное

соответствие

3

Нажать клавишу<←>

(влево)

курсор должен

переместиться влево

полное

соответствие

4

Нажать клавишу<→>

(вправо)

курсор должен

переместиться вправо

полное

соответствие

5

Нажать клавишу‘Esc’


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

полное

соответствие

                   

                       Критерий тестирования: покрытие условий

6

Нажать клавишу <↑>

(вверх) и передвигать

курсор до тех пор,

пока не достигнет

границы  

§                     Курсор не должен выходить

за границы поля

полное

соответствие

7

Нажать клавишу<↓>

(вниз) и передвигать

курсор до тех пор,

пока не достигнет

границы

§                     Курсор не должен выходить

за границы поля

полное

соответствие

8

Нажать клавишу<←>

(влево) и передвигать

курсор до тех пор,

пока не достигнет

границы

§                     Курсор не должен выходить

за границы поля

полное

соответствие

9

Нажать клавишу<→>

(вправо) и передвигать

курсор до тех пор,

пока не достигнет

границы

§                     Курсор не должен выходить

§                     за границы поля

полное

соответствие

10

навести курсор на

дверь и нажать

Enter


§                     Функция не будет реаги-

§                     ровать на ввод

полное

соответствие

11

навести курсор на

комнату и нажать

Enter


Функция должна попроси

ть ввести выход из лаби

ринта.

полное

соответствие


Тестируемый модуль: 

int Find(struct Lab *P,int x1,int y1,int x2, int y2)

  {

 int x,y,k=1,F=1;

 P->Put[y2][x2]=k;                                                 

 while(F)

 {

  F=0;

  for(x=1;x<=MX;x++)

  {

   for(y=1;y<=MY;y++)

   {

    if (P->Put[y][x]==k)

     {

      if (P->Map[y+1][x]!=0 && P->Put[y+1][x]==0)

          { P->Put[y+1][x]=k+1;F=1;}

      if (P->Map[y-1][x]!=0 && P->Put[y-1][x]==0)

          { P->Put[y-1][x]=k+1;F=1;}

      if (P->Map[y][x+1]!=0 && P->Put[y][x+1]==0)

          { P->Put[y][x+1]=k+1;F=1;}

      if (P->Map[y][x-1]!=0 && P->Put[y][x-1]==0)

          { P->Put[y][x-1]=k+1;F=1;}

       }

     }

   }

  k++;

  }

 if (P->Put[y1][x1]==0)

{

  gotoxy(3,7);printf("Путь не найден");

 }

 else

 {

  gotoxy(3,7);printf("Кратчайший путь найден");

}

В модуль должна передаваться карта поля и координаты двух вершин х1,y1

и х2,y2 полученые от функции Vvod, между которыми необходимо найти

кратчайший путь.

Ø               Для этого модуля имеем следующие тесты (Таблица 3):


Таблица 3 – Тесты для модуля Find

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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.