• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

coelho14

Trabalho pascal: Contas a receber!

3 mensagens neste tópico

Amigos estou com um trabalho de faculdade que o professor pediu um programa de contas a receber! Bom é o seguinte ele quer assim, cadastra o cliente, depois o valor que ira pagar e data do pagamento! Depois fazer uma pesquisa so colocando a data, e mostrar todos os clientes cadastrado com essa respectiva data. O codigo está quase pronto, so que na hora da pesquisa ele so mostra o ultimo cliente cadastrado! Queria que me ajudasem por favor.

Program Contas_Receber ;

type  registro = record

      nome:string;

      valor:real;

      data:string[11];

      tipo:string;

end;

var

reg:registro;

arquiv,arquivo:text;

opc,para:char;           

procedure cadastroclientes (var arquivo: text);

   

begin

  clrscr;

  assign(arquivo,'cadastro.txt');

   

    rewrite(arquivo);

                   

    begin

    repeat

    writeln('Você deseja cadastrar (S/N)?');

    readln(opc);

    if (opc='s') or (opc='S')then

 

    begin

                                                     

    writeln('Digite o nome do cliente.:');

    readln(reg.nome);

    writeln('Informe o valor.:');

    readln(reg.valor);

    writeln('Digite a data do pagamento');

    readln(reg.data);

    writeln;

    writeln('-----------------------------');

    writeln;

    append(arquivo);

    writeln(arquivo,reg.nome);

    writeln(arquivo,reg.valor);

    writeln(arquivo,reg.data);

    end;

    until(opc='n') or (opc='N');

   

    end;

    close(arquivo);

end;   

           

procedure procuraclientes (var arquivo: text);

var procura: string;

    i,achou:integer;

begin

  clrscr;

  assign(arquivo, 'Cadastro.txt');

  reset(arquivo);

   

   

  begin

     

    writeln('Informe a data desejada');

    readln(procura);

  reset(arquivo);

  while not eof(arquivo) do

  begin

   

   

    begin

    if(reg.data=procura)then

    begin

    writeln('--- Dados do cliente ---');

writeln('Nome do Cliente:  ', reg.nome);

writeln('Valor a ser pago:  ', reg.valor:0:0);

writeln;

achou := 1;

readln;

end;

end;

if achou = 0 then

begin

writeln('Cliente inexistente!');

readkey;

readln;

    end;

  end;

  end;

  close(arquivo);

end;

   

Begin

 

  repeat

    clrscr;

    gotoxy(26,1);

    textcolor(yellow);

    writeln('Programa de contas a receber');

    writeln;

    gotoxy(25,4);

writeln('[1] - Cadastrar Clientes');

gotoxy(25,5);

writeln('[2] - Procurar Clientes');

gotoxy(25,6);

writeln('[0] - SAIR');

gotoxy(25,8);

writeln('Escolha uma opção');

    gotoxy(32,10);

readln(opc);

   

begin

if (opc = '1') then

cadastroclientes(arquivo)

  else

 

  begin

  if(opc='2')then

    procuraclientes(arquivo);

 

   

                       

      end;

      end;

     

       

    until (opc = '0');

       

End.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja nao pego em Pascal ja há alguns anos, mas acho que o problema está aqui:

if(reg.data=procura)then

Penso que devas fazer da seguinte forma:

lês o ficheiro onde tens guardado os registos e contas o numero de registos;

Depois fazes um ciclo for q te vai percorrer todos os registos

e dentro desse ciclo metes a condição que tens:

if(reg.data=procura)then

se o registo tiver essa data entao imprime-o senao passa para o seguinte.

Desculpa se nao ajudei. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora