Jump to content

Trabalho pascal: Contas a receber!


coelho14
 Share

Recommended Posts

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.

Link to comment
Share on other 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. 🙂

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.