реализация HESH-поиска.';
form1.OperationGroup.ItemIndex:=0;
form1.AddGroup.ItemIndex:=1;
end; procedure TForm1.CloseButtonClick(Sender: TObject);
begin
if MessageDlg('Сохранить изменения?',mtConfirmation,[mbYes, mbNo],0)=mrYes then
begin
SaveClick(Sender);
NewClick(Sender);
Close; end else
begin
Hesh.DeleteAll;
Close;
end;
end; procedure TForm1.InicialClick(Sender: TObject);
var i,j,count:integer;
begin
if Hesh=nil then
begin
MessageDlg('HESH-таблица не создана. Создаю таблицу.',MtError,[mbok],1);
Hesh:=TMas.Create(''); end else
case OperationGroup.ItemIndex of
0:begin {Add}
If Edit1.Text= '' then MessageDlg('Введите значение!',MtError,[mbOK],1) else
if AddGroup.ItemIndex=0 then
begin {AddFirst}
j:=Hesh.Add(Edit1.Text,0);
if j0 then MessageDlg('Конфликт в ячейке '+inttostr(j),MtInformation,[mbok],1);
MessageDlg('Ключ с значением '+Edit1.Text+' добавлен.',MtInformation,[mbok],1);
end else
begin {AddLast}
j:=Hesh.Add(Edit1.Text,1);
if j0 then MessageDlg('Конфликт в ячейке '+inttostr(j),MtInformation,[mbok],1);
MessageDlg('Ключ с значением '+Edit1.Text+' добавлен.',MtInformation,[mbok],1);
end;
Output;
end;
1:begin {Search}
If Edit1.Text= '' then MessageDlg('Введите значение!',MtError,[mbOK],1) else
if Hesh.Search(Edit1.Text,Count)='0' then
MessageDlg('Элемент не найден!',MtError,[mbok],1) else
begin
MessageDlg('Элемент найден со значением '+Edit1.Text,MtInformation,[mbok],1);
StatusBar1.Panels.Clear;
StatusBar1.Panels.Add.Text:='Количество сравнений : '+inttostr(Count);
end;
end;
2: begin {Clear}
NewClick(Sender);
end;
end;{end case}
Edit1.SetFocus;
end; procedure TForm1.FormCreate(Sender: TObject);
begin
Hesh:=TMas.Create('');
end; procedure TForm1.SaveClick(Sender: TObject);
begin
if SaveDialog1.Execute then
if HeshNil then begin
Hesh.SaveHesh(SaveDialog1.FileName);
NewClick(Sender); end else
MessageDlg('HESH-таблица не создана.',MtError,[mbok],1);
end; procedure TForm1.LoadClick(Sender: TObject);
begin
NewClick(Sender);
if OpenDialog1.Execute then
begin
Hesh.LoadHesh(OpenDialog1.FileName);
Output;
end;
end; procedure TForm1.CloseMenuClick(Sender: TObject);
begin
CloseButtonClick(Sender);
end; procedure TForm1.NewClick(Sender: TObject);
var i,j:integer;
begin
if Heshnil then
begin
Hesh.DeleteAll;
for i:=0 to 10 do for j:=1 to 10 do
begin
stringgrid1.Cells[i,j]:='';
end;
end;
end; procedure TForm1.OperationGroupClick(Sender: TObject);
begin
case OperationGroup.ItemIndex of
0:begin
Inicial.Caption:='Добавить';
Edit1.Text:='';
end;
1:begin
Inicial.Caption:='Найти';
Edit1.Text:='';
end;
2:begin
Inicial.Caption:='Очистить';
Edit1.Text:='';
end;
end;
end; procedure TForm1.SavaBtnClick(Sender: TObject);
begin
SaveClick(Sender);
end; procedure TForm1.LoadBtnClick(Sender: TObject);
begin
LoadClick(Sender);
end; end.
7. Список использованной литературы.
Иванов А.Г., Карпова А.В., Семик В.П., Филинов Ю.Е. Объектно-ориентированная среда программирования. Системы и средства информатики. Вып.2. М.: Наука, 1991. Иванова Г.С., Ничушкина Т.Н., Пугачев Е. «Объектно-ориентированное программирование: Учебник для вузов Изд. 2-е», М: МГТУ им. Н.Э.Баумана
3. Фаронов В.В. Delphi 2005. Язык, среда, разработка приложений. – СПб.: Питер, 2005 г.
4. Вирт Н. Алгоритмы и структуры данных. – Изд. Невский Диалект, 2001 г.
5. Козин А. Н. «Структуры и алгоритмы обработки данных» ТИСБИ, 2003
Похожие работы
Тема: Хэш поиск |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Курсовая работа (т)) |
Тема: Хэш-функции в криптосистемах |
Предмет/Тип: Информационные технологии (Курсовая работа (т)) |
Тема: Программа "Поисковая система на основе хэш-таблиц" |
Предмет/Тип: Отсутствует (Курсовая работа (т)) |
Тема: Ассоциативный массив с возможностью хранения данных произвольных типов (хэш-массив) |
Предмет/Тип: Отсутствует (Практическое задание) |
Тема: Поиск фотооборудования |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Диплом) |
Интересная статья: Быстрое написание курсовой работы