49414 (Хэш поиск), страница 3
Описание файла
Документ из архива "Хэш поиск", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "49414"
Текст 3 страницы из документа "49414"
SavaBtn: TBitBtn;
LoadBtn: TBitBtn;
procedure FormActivate(Sender: TObject);
procedure CloseButtonClick(Sender: TObject);
procedure InicialClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure LoadClick(Sender: TObject);
procedure CloseMenuClick(Sender: TObject);
procedure NewClick(Sender: TObject);
procedure OperationGroupClick(Sender: TObject);
procedure SavaBtnClick(Sender: TObject);
procedure LoadBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
uses ClassHeshProg;
{$R *.dfm}
procedure Output;
var i,j:integer;Cur:TItem;
begin
for i:=1 to 10 do
begin
j:=1;
Hesh.Extract(i,Cur);
While Cur<>nil do
begin
form1.StringGrid1.Cells[i-1, j]:=Cur.GetKey;
Cur:=Cur.Getnext;
inc(j);
end;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
var i:integer;
begin
for i:=1 to form1.StringGrid1.ColCount do
begin
form1.StringGrid1.Cols[i-1].Add(inttostr(i));
end;
form1.StatusBar1.Panels.Add.Text:='Объектная реализация 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 j<>0 then MessageDlg('Конфликт в ячейке '+inttostr(j),MtInformation,[mbok],1);
MessageDlg('Ключ с значением '+Edit1.Text+' добавлен.',MtInformation,[mbok],1);
end else
begin {AddLast}
j:=Hesh.Add(Edit1.Text,1);
if j<>0 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 Hesh<>Nil 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 Hesh<>nil 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