- •Д.Г. Хохлов
 - •Оглавление
 - •Предисловие
 - •1. Основные понятия
 - •2. Проектирование программы
 - •2.1. Постановка и анализ задачи
 - •2.2. Внешнее проектирование
 - •2.2.1. Методика внешнего проектирования
 - •2.2.2. Внешнее представление данных
 - •2.3. Проектирование структуры программы
 - •2.4. Проектирование модуля
 - •2.4.1. Этапы проектирования модуля
 - •2.4.2. Стиль программирования
 - •2.4.3. Пример проектирования модуля
 - •3. Отладка программы
 - •3.1. Планирование отладки
 - •3.2. Проектирование тестов
 - •3.3. Отладочные средства
 - •5.1.2. Файл проекта
 - •6.2. Выполнение и оформление работы
 - •6.2.1. Задание
 - •6.2.2. Описание применения
 - •6.2.3. Описание программы
 - •6.2.3. Подготовка к отладке программы
 - •6.2.4. Отладка программы
 - •6.2.5. Заключение
 - •6.2.6. Общие правила оформления
 - •Список литературы
 - •Приложение. Пример выполнения курсовой работы
 - •1. Задание
 - •2. Описание применения
 - •2.1. Постановка задачи
 - •2.2. Обращение к программе
 - •2.3. Входные данные
 - •2.4. Выходные данные
 - •2.5. Сообщения
 - •2.5.1. Информационные сообщения
 - •2.5.2. Сообщения об ошибках
 - •3. Описание программы
 - •3.1. Метод решения задачи
 - •3.2. Структура программы
 - •3.3. Описание модулей
 - •3.3.1. Main - главный модуль
 - •3.3.2. Pminc - поиск минимального цикла
 - •3.3.3. Vvodg - ввод графа
 - •3.3.4. Vyvodp - вывод пути
 - •4. Подготовка к отладке программы
 - •4.1. План отладки
 - •4.2. Проектирование тестов
 - •4.2.1. Тесты черного ящика
 - •4.2.2. Тесты белого ящика
 - •4.3. Отладочные средства
 - •1. Отладка программы
 - •3. Заключение
 - •Список литературы
 - •Приложение 1. Системные файлы проекта
 - •Приложение 2. Текст программы модуля main
 - •Приложение 3. Текст программы модуля pminc
 - •Приложение 4. Текст программы модуля vvodg
 - •Приложение 5. Текст программы модуля vyvmsm
 - •Приложение 6. Текст программы модуля vyvodp
 - •Приложение 7. Текст программы модуля vyvsoob
 - •Приложение 8. Текст отладочной программы драйвера dvvodg
 - •Приложение 9. Результаты тестирования программы
 - •Приложение 10. Трудоемкость курсовой работы
 - •Приложение 11. Дневник выполнения курсовой работы
 
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. Для записи алгоритмов использован псевдокод на базе языка Си.
