Курсовая работа: Хэш поиск
function AddFirst(aKey:string):Boolean - добавлениевначалосписка. Возвращает true при успешном добавлении.
functionAddLast(aKey:string):boolean - добавление в конец списка. Возвращает true при успешном добавлении.
functionGetHead:TItem - дать заголовка
Класс TMas является контейнерным классом. Имеет в своем составе 1 свойство – объявление 10ти элементного массива типа TList. Иначе говоря объявляем массив списков. Описание методов класса:
ConstructorCreate(aKey:string) - создание масива указателей на списков
functionHeshFunction(aKey:string):integer;virtual - HESH-функция с возможностью переопределения. Возвращает ячейку массива.
function Add(aKey:string;found:byte):byte – Функциядобавления. Типы добавления: Found:0- в начало списка,1-в конец списка. Возвращает: 0 - без конфликтное добавление, иначе ячейку j
functionSearch(aKey:string;varaCount:integer):string – Функция поиска заданного элемента Hesh-таблицы. aCount – количество сравнений. Возвращает: ‘0’ – элемент найден, иначе сам ключ.
procedureDeleteAll - удаление всей структуры
ProcedureSaveHesh(FileName:String) - сохранение контейнера в текстовом файле с именем файла
ProcedureLoadHesh(FileName:String)- загрузка контейнера из текстового файла
ProcedureExtract(varaIndex:integer;varaCur:TItem) – Процедура извлечения матрицы элементов для использования в DemoUnit. Используется для вывода структуры на экран. Вывод :aIndex- текущий индекс массива, aCur- текущий элемент линейного списка
UML – диаграмма взаимодействия классов:
TItem |
Элемент списка |
Next |
Key |
TList |
Линейный список |
Head |
TMas |
Контейнер |
Mas:Array[0..10]ofTList |
4. Описание пользовательского интерфейса.
В данной программе используются следующие компоненты Label, Edit, StringGrid, Menu, BitBtn, RadioGroup, StatusBar.
Текстовой компоненты Label, Edit, StringGrid:
Метки(Label) предназначены для размещения на экране текстовой информации, содержащей различные пояснения, названия, заголовки и т.д.
Строка ввода Edit позволяет вводить и редактировать одну строку текста.
Таблица StringGrid представляет собой сетку в которой содержаться строки и столбцы.
RadioGroup – это набор зависимых между собой переключателей.
Кнопка Button: основное назначение кнопки – формирование события при нажатии на неё. Кнопка может быть размещена в любом месте формы, где есть необходимость выполнить какие-либо действия при её нажатии.
Кнопка BitBtn: на этой кнопке в отличие от Button можно размещать значки.
Добавление ключа: вводим в редактор Edit ключ, нажимаем кнопку «Добавить», в зависимости от значения ключа получаем результат в виде сообщения MessageDlg:
Поиск: задаем искомый ключ в редактор ввода Edit, нажимаем кнопку«Найти», выдается сообщение об успешности поиска, если элемент найден, то в панели задач указывается количество сравнений .