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

void vyvod(int x, int y) - функция рисует рамочку белого цвета, служащую курсором для расстановки и удаления комнат и дверей а также служащую для ввода входа и выхода в лабиринте.

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

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

(вниз)

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

полное

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

3

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

(влево)

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

полное

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

4

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

(вправо)

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

вправо

полное

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

5

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

(ребро)

на карте поля

отобразилось значение `1'

полное

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

6

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

(вершину)

на карте поля

отобразилось значение `2'

полное

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

7

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

значение`1'или`2' и

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

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

на карте поля

отобразилось значение `0'

вместо значения`2'или`1'

полное

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

8

Нажать клавишу`Esc'

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

полное

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

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

9

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

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

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

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

границы

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

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

полное

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

10

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

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

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

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

границы

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

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

полное

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

11

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

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

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

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

границы

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

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

полное

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

12

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

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

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

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

границы

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

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

полное

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

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



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