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

             void maska (int x, int y) – функция скрывает(закрашивает) курсор.

 

             void Vvod(struct Lab *P, int *x1, int *y1, int *x2,int *y2) – функция запрашивает ввести вход в лабиринт, после чего с помощью клавиш управления курсором и клавиши Enter функция считывает  вход, далее функция запрашивает ввести выход.

 

             int Find(struct Lab *P, int x1, int y1, int x2,int y2) – выполняет поиск пути.


             void Puty(struct Lab *P, int x1, int y1, int x2,int y2) – функция прорисовывает путь.


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

 

Необходимы следующие технические средства:

486 DX-4 100 MHz процессор  и выше;

8 Мб ОЗУ и выше;

Монитор, мышь и клавиатура.


Вызов и загрузка

Вызов программы осуществляется посредством запуска файла sapr_kyrsovik.exe. Программа занимает 40 байт.


Входные данные

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

чтобы ввести  комнату необходимо нажать клавишу <к>;

чтобы ввести дверь  необходимо нажать клавишу <д>;

чтобы удалить комнату или дверь необходимо нажать клавишу <я>.

Выходные данные

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

ПРИЛОЖЕНИЕ Б

(справочное)


 

Описание применения

Назначение программы

Программа “Поиск кратчайшего пути” находит кратчайший путь в лабиринте.


Условия применения


Необходимы следующие технические средства:

1)  486 DX4 100 процессор и выше;

8 Мбайта ОЗУ и выше;

Монитор, Клавиатура.

Программа предназначена для работы в ОС  Windows 9x.


Описание задачи


Программа “Поиск кратчайшего пути” находит кратчайший путь в лабиринте.


Входные и выходные данные


Входные данные:

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

чтобы ввести  комнату необходимо нажать клавишу <к>;

чтобы ввести дверь  необходимо нажать клавишу <д>;

чтобы удалить комнату или дверь необходимо нажать клавишу <я>.

Выходные данные:

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

Приложение В.

(обязательное)


Программа и методика испытаний

    


Объект испытаний


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



 Цель испытаний

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



 Требования к программе

    

     Во время испытаний необходимо проверить соответствие требований на программу, указанных в “Техническом задании”, а именно:

1) “Требования к функциональным характеристикам”;

2) “Требования к надёжности”;

3) “Требования к составу и параметрам технических средств”;

4) “Требования к информационной и программной совместимости”.



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


     На испытание должен быть предъявлен следующий состав программной документации:

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

программа и методика испытаний;

описание программы;

описание применения;

 Средства и порядок  испытаний


Испытания будут проводиться в несколько этапов. Первый этап – проверка правильности работы отдельных модулей программы. Второй этап – проверка работы всех модулей вместе.

         Испытания должны проходить при следующих технических и программных средствах:

486 DX4 100 процессор и выше;

8 Мбайта ОЗУ и выше;

Монитор, Клавиатура.

Программное обеспечение: оболочка Borland C 3.1.  


 Методы испытаний


     При испытании программы будет использоваться стратегия “чёрного ящика” в частности следующие методы:

эквивалентное разбиение;

предположение об ошибке;

Эквивалентное разбиение:

 1) Для неправильного класса эквивалентности необходимо проверить следующие тесты:

ввести клавиши ‘g’, ’d’, ‘v’,…1, 2, 3, ….

Результат: программа не риагирует на введённые клавиши.

2) Для правильного класса эквивалентности необходимо проверить следующие тесты:

ввести клавиши ‘к’, ’д’

Результат: на мониторе отображаются комнаты и двери.

 Предположение об ошибке

Для функции «Rasstan», испытание необходимо проводить по методу «Предположение об ошибке». Для испытания данной функции необходимо выполнить следующие действия:

Проверка №1:

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

Результат:На экране появилась точка, которая обозначает комнату.

Проверка №2:

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

Результат:На экране появился отрезок, обозначающий дверь.

Проверка №3:

Нажать клавишу <я>, на комнате;

Результат:Изображение комнаты исчезло, а на его месте будет пусто.

Для функции «Vvod», испытание необходимо проводить по методу «Предположение об ошибке». Для испытания данной функции необходимо выполнить следующие действия:

Проверка №1:

При запросе входа в лабиринт нажать клавишу <enter> на пустом           месте;

Результат:Ничего не произойдет

Проверка №2:

При запросе выхода из лабиринта нажать клавишу <enter> на  двери;

Результат:Ничего не произойдет

 Проверка №3:

При запросе входа в лабиринт нажать клавишу <enter> на комнате;

Результат:Программа попросит ввести выход.

Тесты  для программы:

1) ввести отдельно стоящие, не связанные комнаты и ввести вход и выход. Программа выдаёт результат

Результат: Путь не найден.

2) ввести правильный лабиринти найти путь между входом и выходом. Программа выдаёт результат

Результат: Кратчайший путь найден.

Испытания по методу “белого ящика”:

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

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

 void Rasstan(struct Lab* P)

{                                                              

 int x=1 , y=1;

 char a;

 do{

  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 'z' :P->Map[y][x]=0 ;

                  break;                                           

   case 'x' :P->Map[y][x]=1 ;

                  break;

   case 'c' :P->Map[y][x]=2 ;

                  break;

   case 27  : exit(0);

    }

      }while(a!=13);

 }

Этот модуль должен получать карту поля из структуры лабиринта, создадим её .

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


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

 теста


       Действие        


           Событие


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

§                                         

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

1

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

(вверх)

курсор переместился

вверх

полное

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

2

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

(вниз)

курсор переместился вниз

полное

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

3

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

(влево)

курсор переместился влево

полное

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

4

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

(вправо)

курсор переместился

 вправо

полное

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

5

ввести клавишу’х’

(ребро)

на карте поля

отобразилось значение ‘1’

полное

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

6

ввести клавишу’с’

(вершину)

на карте поля

отобразилось значение ‘2’

полное

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

7

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

значение‘1’или‘2’ и

ввести клавишу’z’

(т.е.удалить)

на карте поля

отобразилось значение ‘0’

вместо значения‘2’или‘1’

полное

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



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