Cadastro de Passagens Aéreas
Publicado por Ivan Rocha 01/12/2006
[ Hits: 9.240 ]
Homepage: http://homes.dcc.ufba.br/~ivan062/bahia
Pequeno programa que faz uma simulação de um sistema de passagens no aeroporto.
program passagensaereas;
uses crt;
type dados= record
                  num_avi {numero do aviao}: integer;
                  nome: string[30];
               end;
var avi: array[1..4] of integer;
   lug: array[1..4] of integer;
   reservas: array[1..60] of dados;
   i, pos_livre, op {operacao}, achou, numero, posi: integer;
   pessoa: string[30];
begin {Iniciando as variaveis com 0...}
   for i:=1 to 4 do
      avi[i]:=0;
      lug[i]:=0;
   for i:=1 to 60 do
      begin
         reservas[i].num_avi:=0;
         pos_livre:=1 {como ninguem comprou passagem ainda, sobra uma posicao vaga}
      end;
   repeat
      writeln('Menu de opcoes:');
      writeln('1- Cadastrar os numeros dos avioes.');
      writeln('2- Cadastrar os lugares disponiveis em cada aviao.');
      writeln('3- Reservar passagem.');
      writeln('4- Consultar pelo numero do aviao.');
      writeln('5- Consultar pelo nome do passageiro.');
      writeln('6- Finalizar.');
      read(op);
      if op=1 then
         begin
            for i:=1 to 4 do {numerando cada aviao}
               begin
                  write('Digite o numero do ',i,'o aviao: ');
                  read(avi[i]);
               end
         end;               
      if op=2 then
         begin
            for i:=1 to 4 do {informando o numero de lugares em cada aviao}
               begin
                  write('Digite o numero de lugares disponiveis no ',i,'o aviao: ');
                  read(lug[i]);
               end
         end;                        
      if op=3 then
         begin
            write('Digite o numero do aviao no qual deseja efetuar a reserva: ');
            readln(numero);
            if pos_livre>60 then {quando o numero de reservas chegar a 60, nao terao mais reservas disponiveis. vide linha 75.}
               begin
                  write('Reservas em todos os avioes esgotadas.');
               end
            else
               begin
                  achou:=0;
                  for i:=1 to 4 do
                           begin
                              if avi[i]= numero then {executa o loop ate o numero digitado corresponder ao aviao.}
                                 begin
                                    achou:=1;
                                    posi:=i {como i vai de 1 a 4, ele carrega 4 posicoes.}
                                 end
                           end;
                  if achou=0 then {se o numero digitado antes nao for entre um e 4, ele alega que nao existe o aviao requerido}
                     begin
                        write('Nao existe esse aviao.');
                     end
                  else
                     if lug[posi]=0 then {vide linha 76.}
                        write('Aviao lotado!')
                     else
                        begin
                           write('Digite o nome do passageiro: ');
                           readln(pessoa);
                           reservas[pos_livre].num_avi:=numero; {cadastra o nome do passageiro e o numero do aviao}
                           reservas[pos_livre].nome:=pessoa;
                           write('Reserva efetuada com sucesso!');
                           pos_livre:=pos_livre+1; {pos_livre vai aumentando ate chegar em 60, quando acabarao as reservas.}
                           lug[posi]:= lug[posi]-1; {conforme o loop, cada cadastro feito, diminui o numero de vagas}
                        end                        
               end
         end;                        
      if op=4 then
         begin
            write('Digite o numero do aviao do qual deseja consultar as reservas: ');
            read(numero);
            achou:=0;
            for i:=1 to 4 do {executa o loop de 1 a 4 ate ser igual ao numero digitado}
               begin
                  if avi[i]=numero then
                     achou:=1;
               end;
            if achou=0 then
               write('Nao existe esse aviao!')
            else
               begin
                  achou:=0; {reinicializa variavel achou como 0}
                  for i:=1 to (pos_livre-1) do {executa o loop ate o numero que ficou gravado no passo 3, dependendo do numero de cadastros que foi feito la.}
                     begin
                        if reservas[i].num_avi=numero then {lista os passageiros do aviao correspondente ao numero digitado(linha 98)}
                           begin
                              writeln(reservas[i].nome);
                              achou:=1
                           end;
                     end;
                  if achou=0 then                     
                        write('Nenhuma reserva esta cadastrada para ese aviao.');                     
               end;
         end;                        
      if op=5 then
         begin
            write('Aperte uma tecla para ativar e depois digite o nome do passageiro do qual deseja consultar as reservas: ');
            readln(pessoa);
            readkey;
            read(pessoa);
            achou:=0;
            begin
               for i:=1 to (pos_livre-1) do
                     begin
                        if reservas[i].nome=pessoa then {quando nome digitado for igual ao nome na memoria, ele informa o aviao no qual esta feita a reserva pela pessoa.}
                           begin
                              writeln('Aviao ',reservas[i].num_avi,'.');
                              achou:=1
                           end
                     end;
                   if achou=0 then {se o nome digitado nao tiver na memoria, ele nao fora cadastrado, e ai aparecera a mensagem abaixo.}
                  write('Nenhuma reserva esta cadastrada para esse nome.');
            end;
         end;
   until op=6;
end.
programa para selecionar os números em posições impares em array de 19 espaços e calcular a media
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Instalação dualboot Windows 11 e Debian 13 (0)
Programa fora de escala na tela do pc (33)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









