coelho14 Posted November 28, 2009 at 07:11 PM Report Share #297937 Posted November 28, 2009 at 07:11 PM 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 More sharing options...
coelho14 Posted November 29, 2009 at 01:58 AM Author Report Share #297964 Posted November 29, 2009 at 01:58 AM Por favor alguem me ajuda esse trabalho é pra segunda! Link to comment Share on other sites More sharing options...
vasco16 Posted November 29, 2009 at 11:17 AM Report Share #297973 Posted November 29, 2009 at 11:17 AM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now