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.