Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сиаод деревья Банковское дело Печатать.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
673.62 Кб
Скачать

16 В.Д. Далека, а.С. Деревянко, о.Г.Кравец, л.Е. Тимановская Модели и структуры данных. Учебное пособие Харьков:хгпу, 2000. - 241с.

Приложение а

(Обязательное)

Блок-схемы основных операций

Процедура создания БД клиентов

Продолжение приложения А

Процедура просмотра доходов

Процедура удаления БД

Продолжение приложения А

Процедура считывания БД из файла

Продолжение приложения А

Процедура поиска

Search

-

-

-

+

+

+

Возврат

Search:=p

P:=Search(p^.left,x,k)

P:=Search(p^.left,x,k)

x<p^.data

x=p^.data

p:=Tree

Exit

Search:=Nil

Tree:=nil

x

F

AddToTree(Tree,x,k)

i=i+1

k

i:=1

n

ch

ch

Tree:=nil

Close (f)

i:=i+1

AddToTree (Tree, BD [i]. data, BD [i]. name

i:=1

Zapis(BD)

Reset(f)

Assign(f, ’C:\sprav.txt’)

END

Delete(Tree)

Lkp(Tree)

P1<>nil

x

Не найден

P1^.name

P1:=Search(Tree,x,k)

Приложение Б

(Обязательное)

Листинг программы

uses crt;

const

p=7;

type

PNode=^Node;

Node=record

data:longint;

left,right:PNode;

name:string[15];

end;

Base = array [1..p] of node;

var

BD:Base;

Tree,p1:PNode;

n,x,i:integer;

ch:char;

k:string [15];

t:string ;

f:text;

procedure AddToTree (var Tree:PNode;x:integer;t:string[15] ; k:string[15]);

begin

if Tree=nil then

begin

New(Tree);

Tree^.name:=k;

Tree^.data:=x;

Tree^.name:=t;

Tree^.left:=nil;

Tree^.right:=nil;

exit;

end;

if x < Tree^.data then

AddToTree(Tree^.left,x,t,k)

else

AddToTree(Tree^.right,x,t,k);

clrscr;

end;

function Search(Tree:PNode;x:integer;t:string [15];k:string [15]):PNode;

var

p:PNode;

begin

if Tree=nil then

begin

Search:=nil;

exit;

end;

p:=tree;

if x=p^.data then

else

if x < p^.data then

p:=Search(p^.left,x,t,k)

else

p:=Search(p^.right,x,t,k);

Search:=p;

clrscr;

end;

procedure Lkp(Tree:PNode);

begin

if Tree=nil then

exit;

Lkp(Tree^.left);

writeln;

write(' ',Tree^.data);

write(' ',Tree^.name);

writeln;

Lkp(Tree^.right);

end;

procedure zapis (var BD:Base);

var i:integer;

begin

for i:=1 to p do

begin

readln (f, BD[i].name);

readln (f, BD[i].data);

end;

end;

procedure DeleteTree(var Tree1:PNode );

begin

if Tree1 <> nil then

begin

DeleteTree (Tree1^.LEFT);

DeleteTree (Tree1^.RIGHT);

Dispose(Tree1);

end;

clrscr;

end;

begin

Tree:=nil;

repeat

TextColor (1);

Writeln('Доступны пункты:');

TextColor (4);

Writeln('1) Создание базы данных клиентов банка');

TextColor (4);

Writeln('2) Считывание бызы данных из файла');

TextColor (4);

Writeln('3) Поиск по базе');

TextColor (4);

Writeln('4) Доход клиентов банка ');

TextColor (4);

Writeln('5) Выход');

writeln;

readln(ch);

case ch of

'1': begin

;

writeln('Кол-во эллементов');

;

readln(n);

for i:=1 to n do

begin

;

writeln('Размер дохода клиента');

readln(x);

Writeln('Номер телефона');

readln(t);

Writeln('Имя клиента');

readln(k);

AddToTree(Tree,x,t,k);

end;

end;

'2': begin

;

assign(f, 'C:\bd.txt');

reset (f);

zapis (BD);

for i:=1 to p do

AddToTree (Tree,BD[i].data,BD[i].name,BD[i].name);

TextColor (1);

writeln ('БД считана.');

writeln;

close(f);

end;

'3': begin

;

writeln('Введите размер дохода');

TextColor (4);

readln(x);

p1:=Search(Tree,x,t,k);

if p1 <> nil then

begin

TextColor (1);

writeln ('Доход найден, имя клиента:');

TextColor (4);

writeln (p1^.name);

TextColor(1);

end

else writeln('Доход не найден');

end;

'4': begin

;

writeln('Все клиенты');

TextColor (4);

Lkp(Tree);

writeln;

end;

end;

until ch='5';

DeleteTree(Tree);

end.