Programa para armazenar dados de candidatos que estão sendo entrevistados para uma vaga de garçom. Implementação com o uso dos conceitos de TAD e UNIT.
Program PAgenda;
Uses
CRT, USacola, UElem;
Procedure InsereAg(var Agenda: TSacola);
Var
flag : char;
RegAux : TElem;
begin
flag := 's';
while ((flag = 's') or (flag = 'S')) do
begin
clrscr;
writeln; writeln;
write('Entre com o RG: ');
readln(RegAux.RG);
write('Entre com o Nome: ');
readln(RegAux.Nome);
write('Entre com o Endereco: ');
readln(RegAux.Endereco);
case InserirSacola(Agenda, RegAux) of
OK : begin
writeln; writeln;
write('Deseja incluir outro registro (S/N)? ');
readln(flag);
end;
ELEM_JAEXISTE : begin
write('Erro! Registro ja existe.');
writeln; writeln;
write('Deseja incluir outro registro (S/N)? ');
readln(flag);
end;
SACOLA_CHEIA : begin
write('Erro! Sem espaco para inclusao (aperte uma tecla p/ continuar).');
readln;
flag := 'n';
end;
end;
end;
end;
Procedure RemoveAg(var Agenda: TSacola);
Var
flag1,
flag2 : char;
aux : integer;
RegAux : TElem;
begin
flag1 := 's';
while ((flag1 = 's') or (flag1 = 'S')) do
begin
clrscr;
writeln; writeln;
write('Entre com o RG: ');
readln(RegAux.RG);
case ConsultaSacola(Agenda, RegAux) of
OK : begin
writeln; writeln;
writeln('Dados do registro a ser removido:');
writeln('RG : ', RegAux.RG);
writeln('Nome : ', RegAux.Nome);
writeln('Endereco : ', RegAux.Endereco);
writeln; writeln;
write('Confirma remocao (S/N)? ');
readln(flag2);
if (flag2 = 's') or (flag2 = 'S')
Then aux := RemoveSacola(Agenda, RegAux);
writeln; writeln;
write('Deseja remover outro registro (S/N)? ');
readln(flag1);
end;
ELEM_INEXISTENTE : begin
write('Erro! Registro nao existe.');
writeln; writeln;
write('Deseja remover outro registro (S/N)? ');
readln(flag1);
end;
end;
end;
end;
Procedure AlteraAg(var Agenda: TSacola);
Var
flag : char;
RegAux1,
RegAux2 : TElem;
aux : integer;
begin
flag := 's';
while ((flag = 's') or (flag = 'S')) do
begin
clrscr;
writeln; writeln;
write('Entre com o RG: ');
readln(RegAux1.RG);
case ConsultaSacola(Agenda, RegAux1) of
OK : begin
writeln; writeln;
writeln('Dados do registro a ser alterado:');
writeln('RG : ', RegAux1.RG);
writeln('Nome : ', RegAux1.Nome);
writeln('Endereco : ', RegAux1.Endereco);
writeln; writeln;
writeln('Entre com novos dados. Tecle <<enter>> para manter os atuais.');
write('Entre com o novo Nome: ');
readln(RegAux2.Nome);
if RegAux2.Nome <> ''
Then RegAux1.Nome := RegAux2.Nome;
write('Entre com o novo Endereco: ');
readln(RegAux2.Endereco);
if RegAux2.Endereco <> ''
Then RegAux1.Endereco := RegAux2.Endereco;
aux := AlteraSacola(Agenda, RegAux1);
writeln; writeln;
write('Deseja alterar outro registro (S/N)? ');
readln(flag);
end;
ELEM_INEXISTENTE : begin
write('Erro! Registro nao existe.');
writeln; writeln;
write('Deseja alterar outro registro (S/N)? ');
readln(flag);
end;
end;
end;
end;
Var
Agenda : TSacola;
flag : byte;
begin
InicializaSacola(Agenda);
flag := 1;
while (flag <> 4) do
begin
clrscr;
writeln;writeln;
writeln('Agenda de Enderecos');
writeln('====== == =========');
writeln;
writeln('1 - Incluir');
writeln('2 - Excluir');
writeln('3 - Alterar');
writeln('4 - Sair');
writeln;
write('Entre com a opcao desejada: ');
readln(flag);
case flag of
1 : InsereAg(Agenda);
2 : RemoveAg(Agenda);
3 : AlteraAg(Agenda);
end;
end;
end.