terça-feira, 11 de maio de 2010

Exemplo Cadastro.

program cadastro;
uses crt;
type
    fone = record {registro para armazenar diferentes numeros de telefone no cadastro}
            residencial: string[8];
            celular: string[8];
            comercial: string[8];
           end;
type
    ender = record
                logradouro: string[50];{registro para armazenar dados de endereço no cadastro}
                numero: integer;
                bairro: string[50];
                cidade: string[50];
                estado: string[50];
                cep: string[8];
            end;
type
    agenda = record        {registro principal}
               nome: string[50];
               rg: string[8];
               cpf: string[11];
               mail: string[50];
               codigo: integer;
               situacao: boolean; {campo para validar o cadastro como ativo ou nao}
               telefone: fone;
               endereco: ender;
             end;
var
   pessoa: array[1..100] of agenda;
   i,j,k: integer;
   cod: integer; {variavel para comparar com o codigo de cada registro
                 para q nao haja codigos iguais, e para buscar o registro}
   op: integer;
   tecla: char; {variavel que recebe readkey para paralizar a tela e voltar o menu}
procedure cadastrar;
begin
          i:=i+1;
          clrscr;
          writeln('# Dados Pessoais #');
          writeln;
          write('Codigo: ');
          readln(pessoa[i].codigo);
          j:=i;  {o uso do j é para não alterar o valor de i}
          cod:=pessoa[i].codigo;
          while (j>1) do
            begin
              k:=1;
              while (k
                begin
                  if (cod=pessoa[k].codigo) then
                    begin
                      writeln('Favor digite outro codigo');
                      write('Codigo: ');
                      readln(pessoa[i].codigo);
                    end;
                    k:=k+1;
                end;
                j:=j-1;
            end;
          write('nome: ');
          readln(pessoa[i].nome);
          write('rg: ');
          readln(pessoa[i].rg);
          write('cpf: ');
          readln(pessoa[i].cpf);
          write('E-mail: ');
          readln(pessoa[i].mail);
          write('logradouro: ');
          readln(pessoa[i].endereco.logradouro);
          write('numero: ');
          readln(pessoa[i].endereco.numero);
          write('bairro: ');
          readln(pessoa[i].endereco.bairro);
          write('cidade: ');
          readln(pessoa[i].endereco.cidade);
          write('estado: ');
          readln(pessoa[i].endereco.estado);
          write('cep: ');
          readln(pessoa[i].endereco.cep);
          write('telefone residencial: ');
          readln(pessoa[i].telefone.residencial);
          write('telefone comercial: ');
          readln(pessoa[i].telefone.comercial);
          write('telefone celular: ');
          readln(pessoa[i].telefone.celular);
          pessoa[i].situacao:=true;
          writeln;
          writeln('Digite algo para voltar no menu');
          tecla:=readkey;
end;
procedure buscar;
begin
          clrscr;
          if (i=0) then
          begin
               writeln('Nao ha nenhum cadastro');
          end
          else
          begin
          writeln('digite o codigo da pessoa que deseja buscar');
          readln(cod);
          clrscr;
          j:=1; {o uso do j é para não mudar o valor de i}
          while (cod<>pessoa[j].codigo)and(j<=100) do
              begin
                   j:=j+1;
              end;
                  if (cod<>pessoa[j].codigo) then
                  begin
                       writeln('Nao ha cadastro com esse codigo');
                  end
                   else
                      begin
                                writeln('# Dados Pessoais #');
                                writeln;
                                writeln('Nome: ',pessoa[j].nome);
                                writeln('RG: ',pessoa[j].rg);
                                writeln('CPF: ',pessoa[j].cpf);
                                writeln('E-mail: ',pessoa[i].mail);
                                writeln('Logradouro: ',pessoa[j].endereco.logradouro);
                                writeln('Numero: ',pessoa[j].endereco.numero);
                                writeln('Bairro: ',pessoa[j].endereco.bairro);
                                writeln('Cidade: ',pessoa[j].endereco.cidade);
                                writeln('Estado: ',pessoa[j].endereco.estado);
                                writeln('CEP: ',pessoa[j].endereco.cep);
                                writeln('Telefone Residencial: ',pessoa[j].telefone.residencial);
                                writeln('Telefone Comercial: ',pessoa[j].telefone.comercial);
                                writeln('Telefone Celular: ',pessoa[j].telefone.celular);
                                writeln('Situacao: ',pessoa[j].situacao);
                      end;
          end;
          writeln;
          writeln('Digite algo para voltar no menu');
          tecla:=readkey;
end;
procedure atualizar;
var
l:integer;  {para nao mudar o valor de i, e comparar registro por registro}
begin
          clrscr;
          if (i=0) then
          begin
          writeln('Nao ha nenhum cadastro');
          end
          else
          begin
          writeln('digite o codigo da pessoa que deseja atualizar cadastro');
          readln(cod);
          clrscr;
          j:=1;  {o uso do j é para não mudar o valor de i}
          while (cod<>pessoa[j].codigo)and(j<=100) do
              begin
                   j:=j+1;
              end;
                    if(cod<>pessoa[j].codigo) then
                    begin
                         writeln('Nao ha cadastro com esse codigo');
                    end
                      else
                          begin
                            writeln('# Dados Pessoais #');
                            writeln;
                            write('codigo: ');
                            readln(pessoa[j].codigo);
                            l:=j;
                            cod:=pessoa[j].codigo;
                            while (l>1) do
                              begin
                                k:=1; {o uso do k é para não mudar o valor de j, pois a condição de parada e o valor de j}
                                while (k
                                  begin
                                    if (cod=pessoa[k].codigo) then
                                      begin
                                        writeln('Favor digite outro codigo');
                                        write('Codigo: ');
                                        readln(pessoa[i].codigo);
                                      end;
                                      k:=k+1;
                                  end;
                                  l:=l-1;
                              end;
                            write('nome: ');
                            readln(pessoa[j].nome);
                            write('rg: ');
                            readln(pessoa[j].rg);
                            write('cpf: ');
                            readln(pessoa[j].cpf);
                            write('E-mail: ');
                            readln(pessoa[j].mail);
                            write('logradouro: ');
                            readln(pessoa[j].endereco.logradouro);
                            write('numero: ');
                            readln(pessoa[j].endereco.numero);
                            write('bairro: ');
                            readln(pessoa[j].endereco.bairro);
                            write('cidade: ');
                            readln(pessoa[j].endereco.cidade);
                            write('estado: ');
                            readln(pessoa[j].endereco.estado);
                            write('cep: ');
                            readln(pessoa[j].endereco.cep);
                            write('telefone residencial: ');
                            readln(pessoa[j].telefone.residencial);
                            write('telefone comercial: ');
                            readln(pessoa[j].telefone.comercial);
                            write('telefone celular: ');
                            readln(pessoa[j].telefone.celular);
                            pessoa[j].situacao:=true;
                      end;
          end;
          writeln;
          writeln('Digite algo para voltar no menu');
          tecla:=readkey;
end;
begin
     i:=0;
     while(op<>4)and(i<=100) do
     begin
     clrscr;
     gotoxy(32,1);
     writeln('# MENU #');
     gotoxy(16,4);
     writeln('1- PARA NOVO CADASTRO');
     gotoxy(16,6);
     writeln('2- PARA BUSCAR CADASTRO');
     gotoxy(16,8);
     writeln('3- PARA ATUALIZAR CADASTRO');
     gotoxy(16,10);
     writeln('4- PARA SAIR');
     gotoxy(14,13);
     write(' ');
     readln(op);
       if (op=1) then
          cadastrar
       else
         if (op=2) then
               buscar
         else
           if (op=3) then
              atualizar;
          
end;
readkey;
end.

0 comentários: