Разработка структуры программы

 

Исходя из требований к программе, рациональней всего разделить ее на модули, взаимодействие которых показано на рисунке 3.5.1

     
 

 

Спецификация модулей

Модуль создания и прорисовки сетки лабиринта

Входные данные: отсутствуют

Выходные данные: карта поля

Функции: создание карты поля

Модуль ввода и корректировки данных

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

Выходные данные: карта поля

Функции - ввод данных и предоставление пользователю возможности их редактирования.

Модуль считывания и сохранения структуры лабиринта

Входные данные: команды, карта поля

Выходные данные: карта поля, файл

Внешние эффекты: загрузка сохраненного лабиринта, также модуль сохраняет файл на диске.

Функции - считывание и сохранения структуры лабиринта.

Модуль визуализации

Входные данные: координаты комнат и дверей

Выходные данные: отсутствуют

Внешние эффекты: на экране монитора появляется лабиринт и путь прохождения.

Функции – вывод на экран монитора информации.

Модуль расчета кратчайшего пути лабиринта

Входные данные: карта поля

Выходные данные: карта прохождения

Функции – нахождение путей прохождения и поиск кратчайшего.

 

Переход к тексту программы

 

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

Написание программного кода будет проводиться с использованием среды программирования Borland C++.

Реализация функций программы зависит полностью от программиста.

Рабочий проект

 

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

 

Исходя из требований к программному обеспечению, программа кодировалась в среде программирования Borland C++ для функционирования в операционной системе Windows 9x. (Смотрите приложение В)

 

Тестирование программы

 

Тестирование программы заключается в проверке работы основных функций. Была разработана и проведена серия тестовых примеров для программы. Программа и ме­тодика испытаний приведены в приложении В. Результаты тес­тирования показали работоспособность программы и его соот­ветствие предъявляемым требованиям.

Предложенное ПО тестировалось как во время разработки, так и после её завершения.

Для тестирования делались попытки ввода недействитель­ных данных и попытки выполнить недопустимые действия как при программировании, так и в режиме взаимодействия с поль­зователями. Предложенное ПО адекватно реагировало на такие действия.

Заключение

 

 

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

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

    Разработана спецификация функций программы, описано поведение программы в критических ситуациях, приводится спецификация модулей. В документации также приведены результаты тестирования программы
ПРИЛОЖЕНИЕ А

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


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

 

Общие сведения

 

Наименование программы: “Поиск кратчайшего пути”

Для функционирования программы необходима Операционная Система Windows 9x.

Кодировка производилась в среде программирования Borland C++.

 

                                     Функциональное назначение

 

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

 

                           Описание логической структуры

 

Программа имеет главную функцию main, которая описана в файле sapr_kyrsovik.cpp, с которой начинается выполнение программы. Также программа имеет библиотечные функции, которые описаны в заголовочном файле head.h. Заголовочный файл содержит все остальные функции, используемые в пограмме. Программа имеет структуру с именем Lab, которая содержит двухмерный массив карты лабиринта (Мар[MY][MX]) и двухмерный массив карты прохождения (Put[MY][MX]). В эту структуру производится запись координат комнат и дверей лабиринта.

 Программа состоит из следующих функций:

 

int Grin(struct Lab *P)

Она выполняет:

инициализацию графики: очищается экран, включается графический режим

рисует сетку лабиринта

инициализацию масивов структуры P

 

  void Rasstan(struct Lab *P) – функция расставляет комнаты и двери на карте поля, а также удаляет их, это реализуется с помощью клавиш управления курсором (< > - вверх, < > - вниз, < > - вправо, < > - влево) и клавиш специального назначения (например, при помощи клавиши <к> происходит ввод комнаты, при помощи клавиши <д> происходит ввод двери, при помощи клавиши <я> можно удалять комнаты или двери). Эта функция вызывает дополнительные две функции:

 

        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) – функция прорисовывает путь.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: