Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida em pascal.


L0mbra

Pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...