program LocadoraDeVeiculos;
//registro carro
type dados_carro = record
modelo: string;
marca: string;
valor_diaria: real;
situacao: string;
cliente_atual: string;
quantidade_diarias: integer;
end;
type dados_cliente = record
codigo: integer;
nome: string;
telefone: integer;
end;
var carro: array [1..30] of dados_carro;
cliente: array[1..50] of dados_cliente;
n,posicao: integer;
opc: char;
temp_modelo: string;
total:real;
opc_final: integer;
procedure Menu;
begin
writeln (' ____________________________');
writeln ('| ALUGUEL DE CARROS |');
writeln ('| |');
writeln ('| 1 - CADASTRO DE VEICULOS |');
writeln ('| 2 - SAIDA DE VEICULOS |');
writeln ('| 3 - DEVOLUCAO DE VEICULOS |');
writeln ('| 4 - SAIR DO PROGRAMA |');
writeln ('|___________________________|');
readln (opc);
end;
procedure Entrada;
begin
//inicializando o vetor na posicao 1
carro[1].modelo:='';
carro[1].marca:='';
carro[1].valor_diaria:=0;
carro[1].cliente_atual:='';
carro[1].situacao:='Disponivel';
carro[1].quantidade_diarias:=0;
for n:=1 to 30 do
begin
writeln ('___________','Carro', n, '___________');
writeln ('Modelo:');
readln (carro[n].modelo);
writeln ('Marca:');
readln (carro[n].marca);
writeln ('Valor da Diaria');
readln (carro[n].valor_diaria);
carro[n].situacao:='Disponivel';
carro[n].cliente_atual:='';
carro[n].quantidade_diarias:=0;
end;
for n:=n+1 to 30 do
begin
carro[n+1].modelo:='';
carro[n+1].marca:='';
carro[n+1].valor_diaria:=0;
carro[n+1].cliente_atual:='';
carro[n+1].situacao:='Disponivel';
carro[n+1].quantidade_diarias:=0;
end;
writeln ('Tecle enter para voltar ao Menu Inicial');
end;
procedure Saida;
begin
Writeln ('Modelo do Carro:');
readln (temp_modelo);
for n:=1 to 30 do
begin
if (carro[n].situacao='Disponivel') and (temp_modelo=carro[n].modelo) then
begin
Writeln ('Cliente');
readln (carro[n].cliente_atual);
Writeln ('Quantidade de Diarias');
readln (carro[n].quantidade_diarias);
carro[n].situacao:='Alugado';
end;
if (carro[n].situacao='Alugado') and (temp_modelo=carro[n].modelo) then
begin
writeln ('Carro Alugado!');
end;
end;
end;
function produto(a: real; var b: integer):real;
begin
produto:=a*b;
end;
procedure Devolucao;
begin //inicio do procedimento
Writeln ('Digite o modelo');
readln (temp_modelo);
for posicao:=1 to 30 do
begin
if (temp_modelo=carro[posicao].modelo) then
begin
writeln ('Cliente:',carro[posicao].cliente_atual);
writeln ('Modelo: ', carro[posicao].modelo);
total:= produto(carro[posicao].valor_diaria , carro[posicao].quantidade_diarias);
writeln ('Valor total: ', total:2:2);
carro[posicao].situacao := 'Disponivel';
carro[posicao].cliente_atual:= '';
carro[posicao].quantidade_diarias:=0;
writeln ('Saida de carro concluida com sucesso!');
end;
end;
end;
procedure Sair;
begin
writeln (' ____________________________');
writeln ('| OBRIGADO! |');
writeln ('| |');
writeln ('| Desenvolvido por: |');
writeln ('| Matheus Luiz |');
writeln ('| Thalles Martins |');
writeln ('| Thiago Almeida |');
writeln ('| |');
writeln ('| GRUPO ZURIQUE |');
writeln ('|WWW.ZURIQUEAED.BLOGSPOT.COM|');
writeln ('| |');
writeln ('| TWITTER: @zuriqueaqed |');
writeln ('|___________________________|');
writeln ('');
writeln ('Tecle qualquer letra para sair');
readln; //funcao do Pascal para fechar.
halt;
end;
begin //inicio do programa principal
opc_final:=0;
repeat
Menu;
case (opc) of
'1': Entrada; //chama o procedimento Entrada
'2': Saida; //chama procedimento Saida
'3':Devolucao; //chama o procedimento Devolucao
'4': Sair; //chama o procedimento Sair
end;
until opc_final<>0;
end. //fim do programa principal