Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011 / 2011 / UP_MODPR_.RTF
Скачиваний:
38
Добавлен:
12.03.2015
Размер:
541.34 Кб
Скачать

3.2. Структура программы

Структура программы показана на рис. 3.1.

-----------------¬

¦ main - главная ¦

-----------T--+ программа +--T---------¬

¦ ¦ L-------T--------- ¦ ¦

_ 1 ¦ _ 2 ¦ _ 3

---------------¬ ¦ -------------------¬ ¦ ----------------¬

¦ vvodg ¦ ¦ ¦ pminc - поиск ¦ ¦ ¦ vyvodp - вывод¦

¦ - ввод графа ¦ ¦ ¦ кратчайшего цикла¦ ¦ ¦ цикла (пути) ¦

L--------------- ¦ L------------------- ¦ L----------------

¦ ¦

_ 4 _ 5

-------------------¬ -----------------¬

¦ vyvmsm - вывод ¦ ¦ vyvsoob - вывод¦

¦ матрицы смежности¦ ¦ сообщений ¦

L------------------- L-----------------

Рис. 3.1. Модульная структура программы

Программа состоит из четырех функционально-прочных модулей: main - главная программа, pminc - поиск кратчайшего цикла, vvodg - ввод графа, vyvodp - вывод цикла (пути).

Сопряжения модулей программы описаны в табл. 3.1. Все данные между модулями передаются только в виде параметров, глобальных переменных в программе нет. Модуль main сцеплен с модулями pminc и vyvmsm по формату, а с остальными модулями - по данным [3, 4]. Сцепления по формату избежать не удалось, т. к. при описании матрицы смежности графа как параметра должен указываться хотя бы размер строки.

Таблица 3.1

Сопряжения модулей

----T---------------------------T----------------------------¬

¦ N ¦ Вход ¦ Выход ¦

+---+---------------------------+----------------------------+

¦ 1 ¦ ¦ Количество вершин, матрица ¦

¦ ¦ ¦ смежности, код завершения ¦

¦ ¦ ¦ ¦

¦ 2 ¦ Количество вершин, матрица¦ Номера вершин цикла, длина ¦

¦ ¦ смежности ¦ цикла, код завершения ¦

¦ ¦ ¦ ¦

¦ 3 ¦ Количество и номера вершин¦ - ¦

¦ ¦ цикла (пути) ¦ ¦

¦ ¦ ¦ ¦

¦ 4 ¦ Количество вершин, матрица¦ - ¦

¦ ¦ смежности ¦ ¦

¦ ¦ ¦ ¦

¦ 5 ¦ Номер сообщения ¦ - ¦

L---+---------------------------+-----------------------------

Все модули транслировались отдельно. Их имена перечислены вместе с разработанной для данной программы библиотекой graf.lib в файле проекта pkrc.prj (см. приложение 1). Модули pminc, vvodg и vyvodp помещены в библиотеку объектных модулей graf.lib, и для их использования требуется включить в программу созданный в курсовой работе файл заголовков graf.h командой

#include "graf.h"

Тексты файла graf.h и программ всех модулей в алфавитном порядке приведены в приложении, а их описания - в разделе 3.3. Для записи алгоритмов использован псевдокод на базе языка Си.