- •Введение
- •1 Техническое задание
- •1.1 Назначение разработки
- •1.2 Основание для разработки
- •1.3 Требования к программе
- •2 Вариант задания
- •3 Краткие теоретические сведения
- •4 Эскизный проект
- •4.1 Переборный алгоритм раскраски
- •4.2 Последовательный алгоритм раскраски
- •4.3 Разработка структуры программы
- •5 Технический проект
- •5.1 Сценарий диалогас пользователем
- •5.2 Разработка основных форматов данных
- •5.3 Детализация алгоритма раскраски графа
- •5.4 Разработка формата файла для хранения графов
- •6 Рабочий проект
- •6.1 Выбор удобочитаемых идентификаторов
- •6.2 Общая организация проекта
- •6.3 Описание модулей
- •6.3.1 Модуль uMain
- •6.3.2 Модуль uData
- •6.3.3 Модуль uFiling
- •6.3.4 Модуль uColoring
- •6.3.5 Модуль uInputk
- •6.3.6 Модуль uHelp
- •6.4 Отладка и тестирование программного продукта
- •6.5 Руководство пользователю
6.3.2 Модуль uData
Модуль служит для объединения общеиспользуемых констант и типов:
MaxVCount – максимальное число вершин графа;
TAdMatrix = array of array of Byte – матрица смежности графа;
TColoring = array of ShortInt – вектор цветов вершин;
TRealColors = array[0..MaxVCount-1] of TColor – системные имена цветов;
TVertices = array of TPoint – координаты центров вершин;
TGraphFile = file of Byte – файл графа.
6.3.3 Модуль uFiling
Модуль содержит функции для управления записью графов в файлы и считывание сохраненных графов из файлов.
6.3.3.1 Основные переменные, константы и типы модуля
GraphFile: TGraphFile – файл для сохранения графа.
6.3.3.2 Функции модуля
DoSaveFile – осуществляет сохранение графа в файле по матрице смежности.
DoReadFile – осуществляет чтение графа из файла в матрицу смежности.
6.3.4 Модуль uColoring
Модуль объединяет процедуры, функции и переменные, используемые при реализации алгоритма раскраски графа.
6.3.4.1 Основные переменные, константы и типы модуля
RealColors: TRealColors – фактические цвета раскраски вершин;
VDegree: array of ShortInt – массив относительных локальных степеней;
VNumber: array of Byte – отсортированный массив номеров вершин;
Uncolored: set of Byte – множество не раскрашенных вершин.
6.3.4.2 Процедуры модуля
DoNonminColoring – осуществляет раскраску графа в NewColorCount цветов по найденной минимальной раскраске.
InsertionSort – осуществляет сортировку массива локальных степеней методом вставки.
6.3.4.3 Функции модуля
DoMinColoring – осуществляет раскраску графа в минимальное число цветов.
ResetColoring – осуществляет обнуление массива цветов вершин графа.
6.3.5 Модуль uInputk
Модуль содержит определение диалога для ввода количества цветов при раскраске графа, а также номера удаляемой вершины.
6.3.5.1 Основные переменные, константы и типы модуля
fmInputk: TfmInputk – форма для ввода числа цветов k.
6.3.5.2 Компоненты модуля
Компоненты модуля uInputk представлены в таблице 3.
Таблица 3
Компонент |
Свойства, отличные от свойств по умолчанию |
Функции |
fmInputk: TForm |
BorderStyle: bsDialog, Caption: Ввод числа цветов k, ClientHeight: 94, ClientWidth: 360, Color: clBtnFace, Position: poMainFormCenter |
Форма – контейнер |
btnCansel: TBitBtn |
Caption: Отмена, Kind: bkCancel |
Кнопка «Отмена» для отмены выбранного действия и закрытия окна «Ввод числа цветов k» |
btnSet: TBitBtn |
Caption: Задать, Kind: bkOK |
Кнопка «Задать» для задания числа цветов k и закрытия окна «Ввод числа цветов k» |
ComboBox: TComboBox |
– |
Список для выбора пользователем числа цветов k для раскраски графа |
StaticText: TStaticText |
Caption: Задайте число цветов для раскраски графа |
Метка для размещения в окне надписи «Задайте число цветов для раскраски графа» |
6.3.5.3 Процедуры модуля
Процедура btnSetClick – устанавливает значение k при нажатии на кнопку «Задать».
Процедура btnCancelClick – игнорирует ввод k при щелчке по кнопке «Отмена».
Процедура ComboBoxChange – осуществляет проверку по числу вершин.
Процедура FormActivate – обнуляет поле ввода ComboBox при запуске формы ввода числа цветов.