Программа для создания двусвязных кольцевых списков

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

Содержание

 

Введение

1. Состав проекта

.1 Формы

.2 Модули

2. Статические данные и структуры

3. Логическая структура данных

4. Логические схемы операций

5. Алгоритмы обработки основных структур

5.1 Добавление нового элемента

5.2 Удаление элемента

. Руководство пользователя

Заключение

Список использованных источников

Приложение

 

 

Введение

 

Любая программа представляет собой не только набор операторов и ключевых слов, но также совокупность информационных объектов, действия над которыми записаны в этих операторах. В любом операторе фигурируют объекты называемые данными. Значение данного, относящегося к любому из таких типов логически неразделимо. Поэтому такие данные называются неструктурированными. Из них формируются структуры данных.

Структуры данных используются повсюду. В этом понятии приоритетную роль играют не значения элементов данных, т.е. данных которые образуют структуру, а отношение между этими элементами. Именно отношение определяет конфигурацию структуры, а самое главное реализацию операций в структурах.

Связный список - структура данных, состоящая из узлов, каждый из которых содержит как собственно данные, так и одну или две ссылки (связки) на следующий и/или предыдущий узел списка. Принципиальным преимуществом перед массивом является структурная гибкость: порядок элементов связного списка может не совпадать с порядком расположения элементов данных в памяти компьютера, а порядок обхода списка всегда явно задаётся его внутренними связями.

 

 

1. Состав Delphi проекта

 

1.1 Формы

 

При запуске программы на экране появляется главная форма (Рисунок 1).

 

Рисунок 1 - Главная форма программы

 

.2 Модули

 

Программа представлена в виде трех модулей:

- UnitFourthPlex.pas

UnitMainForm.pas

UnitFuncs.pas

В модуле UnitFourthPlex.pas содержится класс TPlex, который позволяет работать с данными плекса. Он содержит 4 указателя на головы соответствующих списков и все необходимые методы для работы с плексом. Также в данном модуле описана запись TMember, которая представляет собой данные, которые хранятся в узлах списка, и запись TNode, которая определяет узел списка.

В модуле UnitMainForm.pas содержится описание формы для работы с пользователем.

В модуле UnitFuncs.pas описаны различные служебные функции, которые необходимо выполнять при работе с программой.

 

 

2. Статические данные и структуры

 

Расположение элементов списка в памяти имеет следующий вид:

а) Обход списка по первым указателям (Рисунок 2);

б) Обход списка по вторым указателям (Рисунок 3);

в) Обход списка по третьим указателям (Рисунок 4);

г) Обход списка по четвертым указателям (Рисунок 5);

 

Рисунок 2 - Обход списка по первым указателям

 

Рисунок 3 - Обход списка по вторым указателям

Рисунок 4 - Обход списка по третьим указателям

 

Рисунок 5 - Обход списка по четвертым указателям

 

 

Ниже представлена информация о полях структуры TMember (Рисунок 6)

 

Рисунок 6 - Объект записи TMember

 

3. Логическая структура данных

 

Логическая структура двусвязного кольцевого списка имеет вид, представленный на рисунке 6.

 

Рисунок 6 - Структура списка

 

Каждый элемент имеет указатели на следующий элемент соответствующего списка.

 

4 Логические схемы операций

 

Наиболее важные операции со списками:

Добавление элемента в конец списка (Рисунок 9, 10).

Исключение элемента (Рисунок 11, 12).

Сортировка списка (Рисунок 13, 14).

 

Рисунок 9 - Перед добавлением элемента в конец списка

 

Рисунок 10 - После добавления элемента в конец списка

Рисунок 11 - До исключения элемента из списка

 

Рисунок 12 - После исключения элемента из списка

 

При сортировке списка методом Шейкера нужно переставлять соседние элементы. Схема перестановки элементов представлена на рисунках 13, 14.

Рисунок 13 - Нахождение элементов, подлежащих перестановке

 

Рисунок 14 - Список после перестановки элементов

 

5. Алгоритмы обработки основных структур

 

.1 Добавление нового элемента

 

Алгоритм добавления нового элемента приведен на рисунок 15.

 

Рисунок 15 - Добавление нового элемента

 

5.2 Удаление элемента

 

Алгоритм добавления нового элемента приведен на рисунке 16.

 

Рисунок 16 - Удаление элемента

 

6 Руководство пользователя

 

При запуске программы появляется главное окно (Рисунок 17).

 

Рисунок 17 - Начало работы

список программа структура алгоритм

На форме содержится 5 таблиц с исходными данными, которые пользователь может редактировать. По нажатию кнопки Добавить …, расположенной перед каждой таблицей, пользователю предоставляется пустая строка для добавления новой информации (Рисунок 18).

Рисунок 18 - Добавление информации в таблицы с данными

 

Для отображения списка жильцов по определенному атрибуту на форме имеется кнопка Заполнить список и таблица для отображения информации. Если выбрать нужный атрибут и нажать на данную кнопку, таблица заполнится нужной информацией (Рисунок 19).

Рисунок 19 - Вывод полученного списка

 

ЗАКЛЮЧЕНИЕ

&nbs