Представляемый документ содержит:
52 страницы текста и список из двух источников.
Объектом исследования является структура данных «Q-дерево».
Цель работы состоит в создании программного комплекса, обеспечивающего работу со структурой данных «Q-дерево», представленной в виде модели. Методы, используемые при разработке, – язык программирования высокого уровня ObjectPascal. Созданный программный продукт обеспечивает выполнение всех требований технического задания.
Содержание
Введение
1. Техническое задание
1.1 Основание для разработки
1.2 Назначение разработки
1.3Функциональные требования к программе
1.4 Требования к составу и параметрам технических средств
1.5 Требования к информационной и программной совместимости
1.6 Требования к программной документации
1.7 Порядок контроля и приемки
2. Рабочий проект
2.1 Модуль UnitModel
2.1.1 Назначение
2.1.2 Функциональные требования, реализуемые модулем
2.1.3 Глобальные переменные и константы модуля
2.1.4 Подпрограммы модуля
2.2 Модуль UnitMainForm
2.2.1 Назначение
2.2.2 Функциональные требования, реализуемые модулем
2.2.3 Используемые компоненты
2.2.4 Глобальные переменные и константы модуля
2.2.5 Подпрограммы модуля
Заключение
Список используемых источников
Приложение
Цель данной курсовой работы – разработка программного продукта, предназначенного для работы со структурой данных «Q-дерево». Существует множество различных структур данных, предназначенных для работы с множествами: деревья, массивы и так далее. Среди них есть Q-деревья, позволяющие хранить множества точек и обеспечивать к ним быстрый и удобный доступ. Практическое значение. Программный продукт позволяет пользоваться Q-деревьями. Актуальность разработки программного продукта состоит в увеличении скорости работы с множествами. Программный продукт должен быть разработан на языке программирования высокого уровня ObjectPascal, использовать принципы объектно-ориентированного программирования и структурный подход к решению поставленных задач.
Результатом выполнения курсовой работы должен стать готовый программный продукт, отвечающий всем требованиям технического задания.
Основанием для разработки программного продукта служит задание на курсовую работу “Q-дерево точек”.
Программный продукт разрабатывается для работы с Q-деревьями точек.
1. Возможность добавления элементов в дерево
2. Удаление элементов из дерева
3. Очистка дерева
4. Подсчет количества элементов
5. Отображение элементов дерева в виде точек на карте
6. Поиск точек в заданной прямоугольной области карты
7. Возможность выбора области карты для просмотра содержащихся в ней точек
8. Отображение точек заданной области карты в отдельном окне просмотра
9. Отображение координат выбранных точек
Программный комплекс должен корректно работать на компьютере со следующими техническими характеристиками:
− процессорIntel® Celeron® CPU 2.40 ГГц;
− оперативная память объемом 512 Мб;
− жесткий диск Seagate ST380011A, объемом 80 Гб;
− видеоадаптер AGP 8X;
− клавиатура;
− манипулятор типа “мышь”.
Для работы программы необходима операционная система MicrosoftWindowsXPProfessional 2002 (SP1-2).
Программная документация должна включать следующие документы:
· техническое задание;
· рабочий проект.
В приложении к документу "Рабочий проект" должен быть приведен листинг исходных текстов программного изделия.
Добавление элементов в дерево производится щелчком левой кнопкой мыши по точке с нужными координатами в окне просмотра (рис. 1)
Рис. 1
Результат: добавление точки в дерево и его перерисовка; увеличение количества точек в дереве на единицу.
Удаление элемента производится путем выделения точки с помощью мыши в окне просмотра в режиме выделения точек и щелчка по кнопке «Удалить точку» (рис. 2)
Рис. 2
Результат: удаление точки из дерева и его перерисовка; уменьшение количества точек в дереве на единицу.
Очистка дерева (удаление всех элементов) производится щелчком по кнопке «Удалить все» (рис. 3)
Рис. 3
Результат: удаление всех элементов дерева и соответствующая перерисовка изображений
Выбор области просмотра осуществляется перемещением окна выделения с помощью мыши или клавиш (рис. 4)
Рис. 4
Результат: перемещение окна выделения, поиск и отрисовка точек, находящихся в выделенной области карты.
Выбор точки производится с помощью щелчка левой кнопкой мыши по точке с нужными координатами в режиме выбора точек (рис. 5)
Рис. 5
Результат: отображение координат выбранной точки в строке состояния; перерисовка соответствующим цветом ее изображения в окне просмотра.
Для получения координат точки без ее выделения достаточно навести указатель мыши на ее изображение в окне просмотра (рис. 6)
Рис. 6
Результат: отображение координат точки в строке состояния без ее выбора; перерисовка соответствующим цветом ее изображения в окне просмотра.
Данный модуль представляет собой реализацию модели структуры данных «Q-дерево точек».
· Возможность добавления элементов в дерево
· Удаление элементов из дерева
· Очистка дерева
· Поиск точек в заданной прямоугольной области карты.
Константы
· М = 3 – максимальное число точек в листе;
- тип – целый;
- область видимости – внутри и вне модуля;
- используется в операциях вставки и удаления элементов дерева для проверки числа точек в листьях.
· Функция предназначена для вставки нового элемента в Q-дерево
· Параметры
- выходной параметр – указатель на узел дерева, в которое вставляется элемент (тип PNode);
- входной параметр – границы этого узла (тип TRect);
- входной параметр – координаты вставляемой точки (тип TPoint);
· Функция возвращает логическое значение (тип boolean), указывающее на изменение количества элементов в дереве
· Локальные переменные
- CurNode – текущий квадрант (тип PNode);
- DopArray– дополнительный массив, необходимый при делении листа на новые узлы (тип TArrayOfPoints);
- midX, midY– координаты середины узла (тип real);
- NewBounds– границы нового узла, передаваемые в качестве параметра в рекурсивном вызове функции (тип TRect);
- i – счетчик цикла (тип integer).
· Словесный алгоритм
В начале своей работы функция проверяет, не является ли пустым параметр-указатель; если да, то для него выделяется память, устанавливаются начальные значения полей и вставляется новый элемент. Если он не является листом, осуществляется цикл переходов к листу с нужными границами. Далее проверяется число элементов в листе, и, если оно меньше допустимого, туда вставляется новая точка; иначе этот лист разделяется на 4 новых, его точки рекурсивно распределяются по новым листам и затем – вставка новой точки.
· Процедура предназначена для удаления элемента из Q-дерева
· Параметры
- выходной параметр – указатель на корневой узел дерева, из которого удаляется элемент (тип PNode);
- входной параметр – границы этого узла (тип TRect);
- входной параметр – координаты вставляемой точки (тип TPoint);