- •Д.Г. Хохлов
- •Оглавление
- •Предисловие
- •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. Дневник выполнения курсовой работы
4.3. Отладочные средства
Перечень необходимых отладочных средств в соответствии с планом приведен в разделе 4.1. Драйвер dvvodg для первого этапа отладки модуля vvodg приведен в приложении 7. Несмотря на то, что планируются правильные входные данные, предусмотрено сообщение "Ошибка ввода" на случай, если ошибка все же появится в данных или неправильно сработает vvodg.
В приложении 6 приведена отладочная программа вывода матрицы смежности vyvmsm, включенная для удобства использования в качестве модуля в файл проекта pkrc.prj (см. приложение 1).
На первом этапе отладки вместо pkrc.prj должен использоваться файл проекта dvvodg.prj (приложение 1).
1. Отладка программы
Программа отлажена по плану на всех предусмотренных в нём тестах. Результаты тестирования приведены в приложении 7.
Во время отладки программы [1] обнаружены следующие основные ошибки.
1. Написано (kz > 2) вместо (kz > 1) в модуле main.
2. В модуле поиска минимального цикла pminc возникала ошибка типа "плюс-минус один" за счет неверного порядка выполнения операторов:
k--;
v[k]++;
3. Модуль ввода графа vvodg неверно определял момент конца входного файла. Использованная в нем функция feof обнаруживает конец файла не после чтения его последнего символа до попытки ввода отсутствующих данных за пределами файла, как предполагалось (и как сделано в языке Pascal), a только после этой попытки. Для данной задачи функция feof оказалась неудобной и ориентированный на нее алгоритм пришлось переделать, чтобы использовать более подходящую в данной ситуации функцию scanf. Ее значение равно количеству введенных аргументов и после ввода можно проверить, сколько чисел фактически удалось ввести [2]. Если не ввелось ни одного значения, scanf возвращает -1, а не 0, как можно было бы ожидать.
4. В модуле pminc номер начальной вершины v[0] меняется с шагом 2 вместо 1 за счет оператора v[k]++ внутри цикла for (не требуется v[0]++ в заголовке цикла for).
3. Заключение
Курсовая работа выполнена в соответствии с требованиями [5] в полном объёме.
Список литературы
1. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на ЭВМ.- М.: Наука, 1986. - 272 с.
2. Липский В. Комбинаторика для программистов.- М.: Мир, 1988. - 213 с.
3. Хохлов Д.Г. Основы технологии модульного программирования: Учебное пособие.- Казань: КГТУ (КАИ), 2003. – 62 с.
4. Белецкий Я. Энциклопедия языка Си.- М.: Мир, 1992. - 687 с.
5. Хохлов Д.Г. Методические указания к курсовой работе по программированию на языке высокого уровня для направления Т28 - информатика и вычислительная техника.- Казань: КГТУ, кафедра АСОИУ, 2003. - 5 с.
6. Хохлов Д.Г. Структуры данных и комбинаторные алгоритмы: Учебное пособие. – Казань: КГТУ (КАИ), Кафедра АСОИУ, 2003. – 102 с.
Приложение 1. Системные файлы проекта
1. Файл pkrc.prj - перечень модулей и библиотек проекта (указывается как имя проекта системе Turbo-C):
pkrc.c
vyvmsm.c
graf.lib
На первом этапе отладки вместо pkrc.prj должен использоваться файл проекта dvvodg.prj:
dvvodg.c
vyvmsm.c
graf.lib
2. Файл graf.h - определения для библиотеки graf.lib:
/* graf.h
Определения для функций обработки графов.
И.И. Иванов 06.03.95
*/
#ifndef _GRAFH
#define _GRAFH
#ifndef NMAX
#define NMAX 20 /* максимальное количество вершин графа */
#endif
/* Прототипы библиотечных функций */
int pminc (int n, char g[][NMAX], int *dcmin, int c[]);
int vvodg (int *n, char g[][NMAX]);
void vyvodp (int kvp, int p[]);
#endif
3. Файл graf.lib - библиотека функций над графами
Содержит объектные модули: pminc.obj, vvodg.obj, vyvodp.obj
Библиотека сформирована после компиляции указанных подпрограмм командой вызова библиотекаря:
tlib graf.lib +pminc +vvodg +vyvodp