Объектная реализация контейнера на основе комбинированной структуры «Динамический упорядоченный список массивов-стеков»
Автор работы: Пользователь скрыл имя, 13 Декабря 2014 в 10:49, курсовая работа
Описание работы
Цель работы: получение навыков разработки объектных программ, включая создание набора собственных взаимосвязанных классов для объектной реализации специализированного контейнера. Контейнер предназначен для хранения и обработки данных некоторой информационной задачи. Контейнер представляет собой двухуровневую структуру данных, в которой уровни реализуются разными способами – один статически на базе массива (непрерывная реализация), другой – динамически с использованием адресных связей (связная реализация).
Содержание работы
Постановка задачи (цель работы, исходные данные, ожидаемый результат, требования к реализации)……………………………………………………………………………………….2 Теоретическое описание используемых структур данных с алгоритмами реализации основных операций…………………………………………………………….…………….......3 Описание основных понятий и механизмов ООП……………………………………………………………………………………………….9 Описание всех разработанных классов (объектная модель)……………………………...…11 Описание демонстрационного модуля с характеристикой использованных стандартных компонентов……………………………………………………………………………………25 Описание структуры проекта…………………………………………………………………27 Список использованной литературы…………………………………………………………47
Описание демонстрационного
модуля с характеристикой использованных
стандартных компонентов
На главной форме демонстрационного
модуля располагаются такие стандартные
компоненты как: Button, Edit, Label, GroupBox, ComboBox,
CheckListBox,ListBox, MainMenu, OpenDialog и SaveDialog.
Компонент Button представляет
собой стандартную кнопку Windows, инициирующую
какое-то действие. Основное с точки зрения
внешнего вида свойство
кнопки — Caption (надпись).
Основное событие кнопки — OnClick, возникающее
при щелчке на ней. В обработчике этого
события записываются операторы, которые
должны выполняться
при щелчке пользователя на
кнопке.
Свойство Cancel, если его
установить в true, определяет, что нажатие
пользователем клавиши Esc будет эквивалентно
нажатию на данную кнопку.
Свойство Default, если его
установить в true, определяет, что нажатие
пользователем клавиши ввода Enter будет эквивалентно
нажатию на данную кнопку, даже
если данная кнопка в этот момент
не находится в фокусе. Правда, если в момент
нажатия Enter в фокусе находится
другая кнопка, то все-таки сработает именно
кнопка в фокусе.
Из методов, присущих кнопкам,
имеет смысл отметить один — Click. Выполнение
этого метода эквивалентно щелчку на кнопке,
т.е. вызывает событие кнопки
OnClick.
В компоненте Edit вводимый и
выводимый текст содержится в свойстве Text.
Это свойство можно устанавливать
в процессе проектирования или задавать
программно. Выравнивание текста невозможно.
Перенос строк тоже невозможен.
Текст, не помещающийся по длине
в окно, просто сдвигается, и пользователь
может перемещаться по нему с помощью
курсора. Свойство AutoSize позволяет
автоматически подстраивать высоту (но
не ширину) окна под размер текста. Свойство Font определяет атрибуты
шрифта. Свойство Text-текст в окне редактирования.
Метод void Clear(void) удаляет
текст из окна.
Компонент Label используется
для отображения текста, который играет
роль метки и не изменяется пользователем.
Текст метки задается свойством Caption.
Шрифт надписи определяется
свойством Font, цвет фона
- свойством Col or,
а цвет надписи — подсвойством Color свойства Font. Размер меток Label определяется
свойством AutoSize. Если это
свойство установлено в true, то вертикальный
и горизонтальный размеры компонента
определяются размером надписи. Если же
AutoSize равно false, то выравнивание
текста внутри компонента определяется
свойством Alignment, которое
позволяет выравнивать текст по левому
краю, правому краю или центру клиентской
области метки.
Панель GroupBox -- это контейнер
с рамкой и надписью, объединяющий
группу связанных органов управления,
таких как радиокнопки RadioButton, индикаторы CheckBox и т.д. В отличие
от других панелей (например, Panel) не имеет
широких возможностей задания
различных стилей оформления. Но GroupBox
имеет встроенную рамку с надписью,
которая обычно используется для выделения
на форме группы функционально
объединенных компонентов. Свойство Caption - надпись
в углу рамки панели. Свойство Font определяет
атрибуты шрифта.
Компонент ComboBox объединяет
функции компонетов ListBox — спи ка
,и Edit — окна редактирования.
Компонент позволяет пользователю выбрать
из списка необходимую строку или задать
в качестве выбора собственный текст.
Список может отображаться в развернутом
виде или как выпадающий список.
Отличие ComboBox от схожего
по функциям компонента ListBox заключается
в следующем:
• ComboBox разрешает пользователю редактировать
список, a ListBox не разрешает
• в ComboBox список может быть развернут
или свернут, а в ListBox он всегда
развернут
• ListBox может допускать множественный
выбор, а в ComboBox пользователь
всегда должен выбрать только
один элемент
Основное свойство компонента,
содержащее список строк, — Items, имеющее
тип TStrings. Во время
выполнения работать с этим свойством
можно, пользуясь свойствами и методами
класса
TStrings — Clear, Add и другими.
Стиль изображения списка определяется
свойством Style.
Компонент CheckListBox аналогичен
компоненту списка строк ListBox. за исключением
того, что рядом с каждый элементом находится
окно с флажком — индикатор, который пользователь
может включать и выключать, помечая элементы
списка. Состояние индикатора
изменяется при каждом щелчке пользователя
на нем.
Основное свойство компонента,
содержащее список строк, — Items, имеющее тип TStrings. Заполнить
его во время проектирования можно, нажав
кнопку с многоточием около этого свойства
в окне Инспектора Объектов. Во время выполнения
работать с этим свойством можно, пользуясь
свойствами и методами класса TStrings — Clear, Add
и другими.
Индекс выбранной пользователем
строки определяется свойством Itemlndex, доступным
только во время выполнения. Если ни одна
строка не выбрана, то
Itemlndex = -1. Начальное значение Itemlndex невозможно
задать во время проектирования. По умолчанию Itemlndex = -1. Это
означает, что ни один элемент списка не
выбран.
Свойство Sorted позволяет
упорядочить список по алфавиту. При Sorted = true новые
строки в список добавляются не в конец,
а по алфавиту.
Состояния индикаторов определяют
два свойства: State и Checked. Оба
эти свойства можно рассматривать как
индексированные массивы, каждый элемент
которого соответствует индексу строки.
Эти свойства можно устанавливать программно
или читать, определяя установки пользователя.
В компоненте CheckListBox имеется
событие OnClickCheck, возникающее
при каждом изменении пользователем состояния
индикатора. Его можно использовать для
обработки результатов изменения.
Компонент ListBox отображает
список строк и позволяет пользователю
выбрать из него необходимые строки. В
список автоматически добавляются полосы
прокрутки, если все строки не помещаются
в окне компонента.
Отличие ListBox от схожего
по функциям компонента ComboBox заключается
в следующем:
• ComboBox разрешает пользователю
редактировать список, a ListBox не разрешает
• в ComboBox список может быть
развернут или свернут, а в ListBox он всегда
развернут
• ListBox может допускать множественный
выбор, а в ComboBox пользователь
всегда должен выбрать только один элемент
Основное свойство компонента,
содержащее список строк, — Items, имеющее тип TStrings. Заполнить
его во время проектирования можно, нажав
кнопку с многоточием около этого свойства
в окне Инспектора Объектов. Во время выполнения
работать с этим свойством можно, пользуясь
свойствами и методами класса TStrings — Clear, Add
и другими.
Компонент MainMenu отображает
на форме главное меню. Обычно на форму
помещается один компонент MainMenu. В этом случае
его имя автоматически заносится в свойство
формы Menu.
Основное свойство компонента
— Items. Его заполнение
производится с помощью конструктора
меню, вызываемого двойным щелчком на
компоненте Main-Menu или нажатием
кнопки с многоточием рядом со свойством Items. при выборе
нового раздела вы увидите в Инспекторе
Объектов множество свойств данного раздела.
Дело в том, что каждый раздел меню, т.е.
каждый элемент свойства Items, является
объектом типа TMenuItem, обладающим
своими свойствами, методами, событиями.
Свойство Caption обозначает
надпись раздела. Заполнение этого свойства
подчиняется тем же правилам, что и заполнение
аналогичного свойства в кнопках.
Свойство Name задает имя
объекта, соответствующего разделу меню.
Компоненты OpenDialog и SaveDialog
вызывают стандартные диалоги Windows открытия
и сохранения файлов. Открытие соответствующего
диалога осуществляется методом Execute. Если в диалоге
пользователь нажмет кнопку Открыть (Сохранить),
диалог закрывается, метод Execute возвращает true и выбранный
файл отображается в свойстве компонента-диалога FileName. Если же
пользователь отказался от диалога(нажал
кнопку Отмена или клавишу Esc), то метод Execute возвращает false. Типы искомых
файлов, появляющиеся в диалоге в выпадающем
списке Тип, задаются свойством Filter. В процессе
проектирования это свойство проще всего
задать с помощью редактора фильтров.