Cadastro de Passagens Aéreas
Publicado por Ivan Rocha 01/12/2006
[ Hits: 9.290 ]
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.
Coleta de dados de alunos em Pascal
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









