GetHead: TItem - Дати заголовка
Клас TMas є контейнерним класом. Має у своєму складі 1 властивість - оголошення 10ти елементного масиву типу TList. Інакше кажучи оголошуємо масив списків. Опис методів класу:
Constructor Create (aKey: string) - Створення масива покажчиків на списків
function HeshFunction (aKey: string): integer; virtual - HESH-функція з можливістю перевизначення. Повертає клітинку масиву. p> function Add (aKey: string; found: byte): byte - Функція додавання. Типи додавання: Found: 0 - в початок списку ,1-в кінець списку. Повертає: 0 - без конфліктне додавання, інакше клітинку j
function Search (aKey: string; var aCount: integer): string - Функція пошуку заданого елемента Hesh-таблиці. aCount - Кількість порівнянь. Повертає: '0 '- елемент знайдений, інакше сам ключ. p> procedure DeleteAll - Видалення всієї структури
Procedure SaveHesh (FileName: String) - Збереження контейнера в текстовому файлі з іменем файлу
Procedure LoadHesh (FileName: String) - завантаження контейнера з текстового файлу
Procedure Extract (var aIndex: integer; var aCur: TItem) - Процедура вилучення матриці елементів для використання в Demo Unit. Використовується для виведення структури на екран. Висновок: aIndex - поточний індекс масиву, aCur - поточний елемент лінійного списку
UML - діаграма взаємодії класів:
TItem
Елемент списку
Next
Key
TList
Лінійний список
Head
В
TMas
Контейнер
Mas: Array [0 .. 10] of TList
4. Опис інтерфейсу користувача.
У даній програмі використовуються наступні компоненти Label, Edit, StringGrid, Menu, BitBtn, RadioGroup, StatusBar.
Текстовой компоненти Label, Edit, StringGrid:
Мітки (Label) призначені для розміщення на екрані текстової інформації, яка містить різні пояснення, назви, заголовки і т.д.
Рядок введення Edit дозволяє вводити і редагувати один рядок тексту.
Таблиця StringGrid являє собою сітку в якій міститися рядки і стовпці.
RadioGroup - це набір залежних між собою перемикачів.
Кнопка Button: основне призначення кнопки - формування події при натисненні на неї. Кнопка може бути розміщена в будь-якому місці форми, де є необхідність виконати будь-які дії при її натисканні.
Кнопка BitBtn: на цій кнопці на відміну від Button можна розміщувати значки.
Додавання ключа: вводимо в редактор Edit ключ, натискаємо кнопку В«ДодатиВ», залежно від значення ключа отримуємо результат у вигляді повідомлення MessageDlg:
В
В
В
В
Пошук: задаємо шуканий ключ в редактор введення Edit, натискаємо кнопку В«ЗнайтиВ», видається повідомлення про успішність пошуку, якщо елемент знайдений, то в панелі завдань вказується кількість порівнянь.
В
В
1. Лістинг і опис всіх класів бібліотеки на DP.
6.1. Опис усіх класів.
unit ClassHeshProg;
interface
type
TItem = class {клас-елемент списку}
private
key: string;
next: TItem;
public
Constructor Create (aNext: TItem; aKey: string) ;//створення 1 елемента
function Getnext: TItem ;//дати адресу на слід. елемент
procedure SetNext (aNext: TItem) ;//змін. адреса
Function GetKey: string ;//дати ключ
end;
{***********************************}
TList = class {Клас списку}
private
Head: TItem ;//заголовок списку
public
constructor Create (aKey: string) ;//створення списку
function AddFirst (aKey: string): boolean ;//додавання перед заголовком
function AddLast (aKey: string): boolean ;//додавання після заголовка
function GetHead: TItem ;//дати заголовка
end;
{***********************************}
TMas = class {Клас-контейнер масиву списків}
private
mas: array [1 .. 10] of TList;
public
Constructor Create (aKey: string) ;//створення масиву покажчиків списків
function HeshFunction ...