- •Д.Г. Хохлов
- •Оглавление
- •Предисловие
- •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. Для записи алгоритмов использован псевдокод на базе языка Си.