Olá pessoal, estou terminando um projeto pra faculdade, um programa simulando uma locadora de veiculos, dai eu já fiz tudo, mas estou engasgado em duas coisas...na parte do menu de movimentação, onde vou descrever abaixo com o codigo, e a parte de salvar em arqvuivo, quem puder me ajudar, tirando esssa duvida, eu vou agradecer muito.
program Locadora_;
uses crt;
type
cliente = record
codigo:integer;
nome:String[50];
telefone:string[12];
end;
Type
veiculo = record
codigo:integer;
veiculo:string;
tipo:string;
end;
var cad_cliente : array[1..3] of cliente;
cad_veiculo : array [1..3] of veiculo;
contregc,contregv,opg:integer;
Procedure CadCliente;
var op,pesqc,u,i,c:integer;achou:boolean;
begin
clrscr;
repeat
Writeln('Cadastro de Clientes...');
Writeln('');
if contregc > 3 then
begin
Writeln('BANCO DE DADOS CHEIO!');
readkey;
end
else
begin
Writeln('Insira o codigo para o cliente');readln(pesqc);
achou:=false;
for i:=1 to 3 do
if pesqc=cad_cliente.codigo then
achou:=true;
for u:=1 to 3 do
begin
if (cad_cliente.codigo = 0) and (achou = false) then
begin
cad_cliente.codigo:=pesqc;
Writeln('Insira o Nome do cliente');readln(cad_cliente.nome);
Writeln('Insira o Telefone do cliente');readln(cad_cliente.telefone);
Writeln('');
Writeln('Cadastro Realizado com Sucesso!');
contregc:=contregc+1;
break;
end;
end;
if achou = true then
Writeln('Cadastro já existe!');
readkey;
end;
Writeln('deseja cadastrar outro cliente? 1-sim/2-não');readln(op);
until op=2 ;
end;
Procedure CadVeiculo;
var op,pesqv,u,i,c:integer;achou:boolean;
begin
repeat
Writeln('Cadastro de Veiculos...');
Writeln('');
if contregv > 3 then
begin
Writeln('BANCO DE DADOS CHEIO!');
readkey;
end
else
begin
Writeln('Insira o codigo para o veiculo');readln(pesqv);
achou:=false;
for i:=1 to 3 do
if pesqv=cad_veiculo.codigo then
achou:=true;
for u:=1 to 3 do
begin
if (cad_veiculo.codigo = 0) and (achou = false) then
begin
cad_veiculo.codigo:=pesqv;
Writeln('Insira a marca');readln(cad_veiculo.veiculo);
Writeln('Insira o Tipo(Popular,luxo, Vans)');readln(cad_veiculo.tipo);
Writeln('');
Writeln('Cadastro Realizado com Sucesso!');
contregv:=contregv+1;
break;
end;
end;
if achou = true then
Writeln('Cadastro já existe!');
readkey;
end;
Writeln('deseja cadastrar outro veiculo? 1-sim/2-não');readln(op);
until op=2 ;
end;
procedure buscarCliente;
var resp,p,bc,u,i:integer;
begin
repeat
writeln('');
writeln('________________________________');
writeln('');
writeln('MENU DE CONSULTA');
writeln('');
Writeln('digite o Codigo do cliente para busca');readln(bc);
for u:=1 to 3 do
begin
if bc=cad_cliente.codigo then
begin
Writeln('Codigo - ',cad_cliente.codigo);
Writeln('Nome - ',cad_cliente.nome);
Writeln('Telefone - ',cad_cliente.telefone);
end
else
end;
Writeln('não ENCONTRADO');
writeln('Deseja buscar outro cliente? 1-sim/2-não');readln(resp);
until resp=2;
end;
procedure buscarVeiculo;
var resp,bv,u,i:integer;
begin
repeat
writeln('');
writeln('________________________________');
writeln('');
writeln('MENU DE CONSULTA');
writeln('');
Writeln('digite o Codigo do veiculo para busca');readln(bv);
for u:=1 to 3 do
begin
if bv=cad_veiculo.codigo then
begin
Writeln('Codigo - ',cad_veiculo.codigo) ;
Writeln('Marca - ',cad_veiculo.veiculo) ;
Writeln('Tipo - ',cad_veiculo.tipo);
end
else
end;
Writeln('não ENCONTRADO');
writeln('Deseja buscar outro veiculo? 1-sim/2-não');readln(resp);
until resp=2;
end;
procedure apagarCliente;
var resp1,p,ac,i:integer;
begin
repeat
Writeln('digite o Codigo do cliente para apagar');readln(ac);
for i:=1 to 3 do
begin
if ac=cad_cliente.codigo then
begin
Writeln('apagando registro - ',cad_cliente.codigo);
Writeln('apagando registro - ',cad_cliente.nome);
Writeln('apagando registro - ',cad_cliente.telefone);
writeln('');
writeln('Deseja realmente apagar o registro? 1-sim/2-não');readln(p);
if p=1 then
begin
cad_cliente.codigo:= -1;
cad_cliente.nome:= ' ';
cad_cliente.telefone:= ' ';
if p=2 then
writeln('ok voltando....');
readkey;
end;
end
else
end;
writeln('não encotrado');
writeln('Deseja Apagar outro cliente? 1-sim/2-não');readln(resp1);
until resp1=2;
end;
procedure apagarVeiculo;
var resp1,av,p,i:integer;
begin
repeat
Writeln('digite o Codigo do veiculo exclusao');readln(av);
for i:=1 to 3 do
begin
if av=cad_veiculo.codigo then
begin
Writeln('apagando registro - ',cad_veiculo.codigo);
Writeln('apagando registro - ',cad_veiculo.veiculo);
Writeln('apagando registro - ',cad_veiculo.tipo);
writeln('');
writeln('Deseja realmente apagar o registro? 1-sim/2-não');readln(p);
if p=1 then
begin
cad_veiculo.codigo:= -1;
cad_veiculo.veiculo:= ' ';
cad_veiculo.tipo:= ' ';
writeln('Registro removido com sucesso!');
if p=2 then
writeln('ok voltando....');
end;
end
else
end;
writeln('não encotrado');
writeln('Deseja Apagar outro veiculo? 1-sim/2-não');readln(resp1);
until resp1=2;
end;
procedure relatorio;
var op,i,u:integer;
begin
Writeln('RELATORIOS');
Writeln('');
Writeln('deseja exibir todos os cadastros de:');
Writeln('1 - clientes');
Writeln('2 - veiculos');
Writeln('');readln(op);
if op=1 then
begin
Writeln('registro de clientes');
for i:=1 to 3 do
begin
Writeln('Codigo - ', cad_cliente.codigo);
Writeln('Nome - ', cad_cliente.nome);
Writeln('Telefone - ', cad_cliente.telefone);
Writeln('#################################');
end;
Writeln('tecle algo');
readkey;
end;
if op=2 then
begin
Writeln('registro de clientes');
for i:=1 to 3 do
begin
Writeln('Codigo - ', cad_veiculo.codigo);
Writeln('Marca - ', cad_veiculo.veiculo);
Writeln('Tipo - ', cad_veiculo.tipo);
Writeln('#################################');
end;
end;
Writeln('tecle algo');
readkey;
end;
procedure AlterarCliente;
var resp1,p,ac,i:integer;
nome,tel:string;
begin
clrscr;
repeat
Writeln('digite o Codigo do cliente para Alterarr');readln(ac);
for i:=1 to 3 do
begin
if ac=cad_cliente.codigo then
begin
Writeln('Codigo ',cad_cliente.codigo);
Writeln('Nome - ',cad_cliente.nome);
Writeln('Telefone - ',cad_cliente.telefone);
writeln('####################################');
writeln('Alterando Registro');
writeln('digite o novo nome, para o codigo - ',cad_cliente.codigo);readln(nome);
writeln('digite o novo tel, para o codigo - ',cad_cliente.codigo);readln(tel);
writeln('deseja realmente alterar o cadastro acima? 1-sim/2-não');readln(p);
if p=1 then
begin
writeln('Alteracao feita com sucesso!!!');
cad_cliente.nome:= nome;
cad_cliente.telefone:= tel;
end ;
if p=2 then
writeln('Ok, voltando...');break;
end ;
end;
writeln('Cadastro não encotrado');
readkey;
writeln('');
writeln('Deseja alterar outro cliente? 1-sim/2-não');readln(resp1);
until resp1=2;
end;
procedure AlterarVeiculo;
var resp1,p,av,i:integer;
veiculo,tipo:string;
begin
repeat
Writeln('digite o Codigo do veiculo para ser alterado');readln(av);
for i:=1 to 3 do
begin
if av=cad_veiculo.codigo then
begin
Writeln('Codigo ',cad_veiculo.codigo);
Writeln('Marca - ',cad_veiculo.veiculo);
Writeln('Tipo - ',cad_veiculo.tipo);
writeln('####################################');
writeln('Alterando Registro');
writeln('digite o novo nome, para o codigo',cad_veiculo.codigo);readln(veiculo);
writeln('digite o novo tel, para o codigo',cad_veiculo.codigo);readln(tipo);
writeln('deseja realmente alterar o cadastro acima? 1-sim/2-não');readln(p);
if p=1 then
begin
writeln('Alteracao feita com sucesso!!!');
cad_veiculo.veiculo:= veiculo;
cad_veiculo.tipo:= tipo;
end ;
if p=2 then
writeln('Ok, voltando...');break;
end;
end;
writeln('não encotrado');
readkey;
writeln('');
writeln('Deseja alterar outro cliente? 1-sim/2-não');readln(resp1);
until resp1=2;
end;
procedure menuCadastroCliente;
var op,i:integer;
begin
clrscr;
Writeln('Menu de Cadastros de Clientes');
Writeln('');
Writeln('1 - Inclusao');
Writeln('2 - Alteracao');
Writeln('3 - Consulta');
Writeln('4 - Exclusao');
Writeln('0 - Retornar ao Menu Principal');
Write('opcao - ');read(op);
case op of
1:cadCliente;
2:alterarCliente;
3:buscarCliente;
4:apagarCliente;
end;
end;
procedure menuCadastroVeiculo;
var op,i:integer;
begin
clrscr;
Writeln('Menu de Cadastros de Veiculos');
Writeln('');
Writeln('1 - Inclusao');
Writeln('2 - Alteracao');
Writeln('3 - Consulta');
Writeln('4 - Exclusao');
Writeln('0 - Retornar ao Menu Principal');
Write('opcao - ');read(op);
case op of
1:cadVeiculo;
2:alterarVeiculo;
3:buscarVeiculo;
4:apagarVeiculo;
end;
end;
procedure menuPrincipal;
begin
clrscr;
Writeln('#######_LOCADORA_#######');
Writeln('');
Writeln('Digite uma opcao desejada :');
Writeln('');
Writeln('');
Writeln('1 - Cadastros de Clientes');
Writeln('2 - Cadastros de Veiculos');
Writeln('3 - Movimentacao');
Writeln('4 - Relatorios');
Writeln('5 - sair');
end;
begin
clrscr;
contregc:=1;
contregv:=1;
repeat
opg:=0;
clrscr;
menuPrincipal;
Write('Opcao - ');read(opg);
if (opg<5) then
case opg of
1:menuCadastroCliente;
2:menuCadastroVeiculo;
//3:menuMovimentacao
4:relatorio;
end
else
if opg>6 then ;
clrscr;
Writeln('Tecle algo');
readkey;
until opg=5 ;
end.
A parte de movimentação consiste nas seguintes caracteristicas, gostaria so que tirassem essa duvida, como eu faria essa procedure...seria com matriz? matriz cruzando os 2 vetores?
LOCAÇÃO DE VEÍCULO
VEÍCULO
CODIGO :
VEÍCULO:
TIPO :
CLIENTE
CODIGO :
NOME :
CONFIRMA EMPRÉSTIMO ( S/N ) ? _
NOVO EMPRÉSTIMO ( S/N ) ? _ TELA 1.2.1
• Selecionando-se a opção 2 na tela 1.2 passa-se para a tela 1.2.1
• Deve-se ler o codigo do veículo e verificar se ele já esta cadastrado e se está disponível para locação. Se estiver então deve-se exibir os seus dados e ler o código do usuário.
• Caso algum dos critérios de validação não seja atendido, deve-se exibir mensagens de erro e solicitar a redigitação da informação errada.
• Deve-se pedir a confirmação da operação antes de efetuá-la
• Ao final da operação deve-se retornar à tela 1.2
Pergunta
L0mbra
Olá pessoal, estou terminando um projeto pra faculdade, um programa simulando uma locadora de veiculos, dai eu já fiz tudo, mas estou engasgado em duas coisas...na parte do menu de movimentação, onde vou descrever abaixo com o codigo, e a parte de salvar em arqvuivo, quem puder me ajudar, tirando esssa duvida, eu vou agradecer muito.
program Locadora_;
uses crt;
type
cliente = record
codigo:integer;
nome:String[50];
telefone:string[12];
end;
Type
veiculo = record
codigo:integer;
veiculo:string;
tipo:string;
end;
var cad_cliente : array[1..3] of cliente;
cad_veiculo : array [1..3] of veiculo;
contregc,contregv,opg:integer;
Procedure CadCliente;
var op,pesqc,u,i,c:integer;achou:boolean;
begin
clrscr;
repeat
Writeln('Cadastro de Clientes...');
Writeln('');
if contregc > 3 then
begin
Writeln('BANCO DE DADOS CHEIO!');
readkey;
end
else
begin
Writeln('Insira o codigo para o cliente');readln(pesqc);
achou:=false;
for i:=1 to 3 do
if pesqc=cad_cliente.codigo then
achou:=true;
for u:=1 to 3 do
begin
if (cad_cliente.codigo = 0) and (achou = false) then
begin
cad_cliente.codigo:=pesqc;
Writeln('Insira o Nome do cliente');readln(cad_cliente.nome);
Writeln('Insira o Telefone do cliente');readln(cad_cliente.telefone);
Writeln('');
Writeln('Cadastro Realizado com Sucesso!');
contregc:=contregc+1;
break;
end;
end;
if achou = true then
Writeln('Cadastro já existe!');
readkey;
end;
Writeln('deseja cadastrar outro cliente? 1-sim/2-não');readln(op);
until op=2 ;
end;
Procedure CadVeiculo;
var op,pesqv,u,i,c:integer;achou:boolean;
begin
repeat
Writeln('Cadastro de Veiculos...');
Writeln('');
if contregv > 3 then
begin
Writeln('BANCO DE DADOS CHEIO!');
readkey;
end
else
begin
Writeln('Insira o codigo para o veiculo');readln(pesqv);
achou:=false;
for i:=1 to 3 do
if pesqv=cad_veiculo.codigo then
achou:=true;
for u:=1 to 3 do
begin
if (cad_veiculo.codigo = 0) and (achou = false) then
begin
cad_veiculo.codigo:=pesqv;
Writeln('Insira a marca');readln(cad_veiculo.veiculo);
Writeln('Insira o Tipo(Popular,luxo, Vans)');readln(cad_veiculo.tipo);
Writeln('');
Writeln('Cadastro Realizado com Sucesso!');
contregv:=contregv+1;
break;
end;
end;
if achou = true then
Writeln('Cadastro já existe!');
readkey;
end;
Writeln('deseja cadastrar outro veiculo? 1-sim/2-não');readln(op);
until op=2 ;
end;
procedure buscarCliente;
var resp,p,bc,u,i:integer;
begin
repeat
writeln('');
writeln('________________________________');
writeln('');
writeln('MENU DE CONSULTA');
writeln('');
Writeln('digite o Codigo do cliente para busca');readln(bc);
for u:=1 to 3 do
begin
if bc=cad_cliente.codigo then
begin
Writeln('Codigo - ',cad_cliente.codigo);
Writeln('Nome - ',cad_cliente.nome);
Writeln('Telefone - ',cad_cliente.telefone);
end
else
end;
Writeln('não ENCONTRADO');
writeln('Deseja buscar outro cliente? 1-sim/2-não');readln(resp);
until resp=2;
end;
procedure buscarVeiculo;
var resp,bv,u,i:integer;
begin
repeat
writeln('');
writeln('________________________________');
writeln('');
writeln('MENU DE CONSULTA');
writeln('');
Writeln('digite o Codigo do veiculo para busca');readln(bv);
for u:=1 to 3 do
begin
if bv=cad_veiculo.codigo then
begin
Writeln('Codigo - ',cad_veiculo.codigo) ;
Writeln('Marca - ',cad_veiculo.veiculo) ;
Writeln('Tipo - ',cad_veiculo.tipo);
end
else
end;
Writeln('não ENCONTRADO');
writeln('Deseja buscar outro veiculo? 1-sim/2-não');readln(resp);
until resp=2;
end;
procedure apagarCliente;
var resp1,p,ac,i:integer;
begin
repeat
Writeln('digite o Codigo do cliente para apagar');readln(ac);
for i:=1 to 3 do
begin
if ac=cad_cliente.codigo then
begin
Writeln('apagando registro - ',cad_cliente.codigo);
Writeln('apagando registro - ',cad_cliente.nome);
Writeln('apagando registro - ',cad_cliente.telefone);
writeln('');
writeln('Deseja realmente apagar o registro? 1-sim/2-não');readln(p);
if p=1 then
begin
cad_cliente.codigo:= -1;
cad_cliente.nome:= ' ';
cad_cliente.telefone:= ' ';
if p=2 then
writeln('ok voltando....');
readkey;
end;
end
else
end;
writeln('não encotrado');
writeln('Deseja Apagar outro cliente? 1-sim/2-não');readln(resp1);
until resp1=2;
end;
procedure apagarVeiculo;
var resp1,av,p,i:integer;
begin
repeat
Writeln('digite o Codigo do veiculo exclusao');readln(av);
for i:=1 to 3 do
begin
if av=cad_veiculo.codigo then
begin
Writeln('apagando registro - ',cad_veiculo.codigo);
Writeln('apagando registro - ',cad_veiculo.veiculo);
Writeln('apagando registro - ',cad_veiculo.tipo);
writeln('');
writeln('Deseja realmente apagar o registro? 1-sim/2-não');readln(p);
if p=1 then
begin
cad_veiculo.codigo:= -1;
cad_veiculo.veiculo:= ' ';
cad_veiculo.tipo:= ' ';
writeln('Registro removido com sucesso!');
if p=2 then
writeln('ok voltando....');
end;
end
else
end;
writeln('não encotrado');
writeln('Deseja Apagar outro veiculo? 1-sim/2-não');readln(resp1);
until resp1=2;
end;
procedure relatorio;
var op,i,u:integer;
begin
Writeln('RELATORIOS');
Writeln('');
Writeln('deseja exibir todos os cadastros de:');
Writeln('1 - clientes');
Writeln('2 - veiculos');
Writeln('');readln(op);
if op=1 then
begin
Writeln('registro de clientes');
for i:=1 to 3 do
begin
Writeln('Codigo - ', cad_cliente.codigo);
Writeln('Nome - ', cad_cliente.nome);
Writeln('Telefone - ', cad_cliente.telefone);
Writeln('#################################');
end;
Writeln('tecle algo');
readkey;
end;
if op=2 then
begin
Writeln('registro de clientes');
for i:=1 to 3 do
begin
Writeln('Codigo - ', cad_veiculo.codigo);
Writeln('Marca - ', cad_veiculo.veiculo);
Writeln('Tipo - ', cad_veiculo.tipo);
Writeln('#################################');
end;
end;
Writeln('tecle algo');
readkey;
end;
procedure AlterarCliente;
var resp1,p,ac,i:integer;
nome,tel:string;
begin
clrscr;
repeat
Writeln('digite o Codigo do cliente para Alterarr');readln(ac);
for i:=1 to 3 do
begin
if ac=cad_cliente.codigo then
begin
Writeln('Codigo ',cad_cliente.codigo);
Writeln('Nome - ',cad_cliente.nome);
Writeln('Telefone - ',cad_cliente.telefone);
writeln('####################################');
writeln('Alterando Registro');
writeln('digite o novo nome, para o codigo - ',cad_cliente.codigo);readln(nome);
writeln('digite o novo tel, para o codigo - ',cad_cliente.codigo);readln(tel);
writeln('deseja realmente alterar o cadastro acima? 1-sim/2-não');readln(p);
if p=1 then
begin
writeln('Alteracao feita com sucesso!!!');
cad_cliente.nome:= nome;
cad_cliente.telefone:= tel;
end ;
if p=2 then
writeln('Ok, voltando...');break;
end ;
end;
writeln('Cadastro não encotrado');
readkey;
writeln('');
writeln('Deseja alterar outro cliente? 1-sim/2-não');readln(resp1);
until resp1=2;
end;
procedure AlterarVeiculo;
var resp1,p,av,i:integer;
veiculo,tipo:string;
begin
repeat
Writeln('digite o Codigo do veiculo para ser alterado');readln(av);
for i:=1 to 3 do
begin
if av=cad_veiculo.codigo then
begin
Writeln('Codigo ',cad_veiculo.codigo);
Writeln('Marca - ',cad_veiculo.veiculo);
Writeln('Tipo - ',cad_veiculo.tipo);
writeln('####################################');
writeln('Alterando Registro');
writeln('digite o novo nome, para o codigo',cad_veiculo.codigo);readln(veiculo);
writeln('digite o novo tel, para o codigo',cad_veiculo.codigo);readln(tipo);
writeln('deseja realmente alterar o cadastro acima? 1-sim/2-não');readln(p);
if p=1 then
begin
writeln('Alteracao feita com sucesso!!!');
cad_veiculo.veiculo:= veiculo;
cad_veiculo.tipo:= tipo;
end ;
if p=2 then
writeln('Ok, voltando...');break;
end;
end;
writeln('não encotrado');
readkey;
writeln('');
writeln('Deseja alterar outro cliente? 1-sim/2-não');readln(resp1);
until resp1=2;
end;
procedure menuCadastroCliente;
var op,i:integer;
begin
clrscr;
Writeln('Menu de Cadastros de Clientes');
Writeln('');
Writeln('1 - Inclusao');
Writeln('2 - Alteracao');
Writeln('3 - Consulta');
Writeln('4 - Exclusao');
Writeln('0 - Retornar ao Menu Principal');
Write('opcao - ');read(op);
case op of
1:cadCliente;
2:alterarCliente;
3:buscarCliente;
4:apagarCliente;
end;
end;
procedure menuCadastroVeiculo;
var op,i:integer;
begin
clrscr;
Writeln('Menu de Cadastros de Veiculos');
Writeln('');
Writeln('1 - Inclusao');
Writeln('2 - Alteracao');
Writeln('3 - Consulta');
Writeln('4 - Exclusao');
Writeln('0 - Retornar ao Menu Principal');
Write('opcao - ');read(op);
case op of
1:cadVeiculo;
2:alterarVeiculo;
3:buscarVeiculo;
4:apagarVeiculo;
end;
end;
procedure menuPrincipal;
begin
clrscr;
Writeln('#######_LOCADORA_#######');
Writeln('');
Writeln('Digite uma opcao desejada :');
Writeln('');
Writeln('');
Writeln('1 - Cadastros de Clientes');
Writeln('2 - Cadastros de Veiculos');
Writeln('3 - Movimentacao');
Writeln('4 - Relatorios');
Writeln('5 - sair');
end;
begin
clrscr;
contregc:=1;
contregv:=1;
repeat
opg:=0;
clrscr;
menuPrincipal;
Write('Opcao - ');read(opg);
if (opg<5) then
case opg of
1:menuCadastroCliente;
2:menuCadastroVeiculo;
//3:menuMovimentacao
4:relatorio;
end
else
if opg>6 then ;
clrscr;
Writeln('Tecle algo');
readkey;
until opg=5 ;
end.
A parte de movimentação consiste nas seguintes caracteristicas, gostaria so que tirassem essa duvida, como eu faria essa procedure...seria com matriz? matriz cruzando os 2 vetores?
LOCAÇÃO DE VEÍCULO
VEÍCULO
CODIGO :
VEÍCULO:
TIPO :
CLIENTE
CODIGO :
NOME :
CONFIRMA EMPRÉSTIMO ( S/N ) ? _
NOVO EMPRÉSTIMO ( S/N ) ? _ TELA 1.2.1
• Selecionando-se a opção 2 na tela 1.2 passa-se para a tela 1.2.1
• Deve-se ler o codigo do veículo e verificar se ele já esta cadastrado e se está disponível para locação. Se estiver então deve-se exibir os seus dados e ler o código do usuário.
• Caso algum dos critérios de validação não seja atendido, deve-se exibir mensagens de erro e solicitar a redigitação da informação errada.
• Deve-se pedir a confirmação da operação antes de efetuá-la
• Ao final da operação deve-se retornar à tela 1.2
Desde já agradeço a atenção de todos.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.