Ir ao conteúdo

Posts recomendados

Postado
Program Pzim ;
   type
    respostas=record
    resp:string;
        op:string;
        op2:string;
        op3:string;
        op4:string;
        op5:string;
        op6:string;
        cod1:string;
        cod2:string;
        nome1:string;
        nome2:string;
        End;
        
var
 produtos : array[1..10, 1..3] of string;
 funcionarios : array[1..10, 1..3] of string;
 clientes : array[1..10, 1..3] of string;
 vendas : array[1..10, 1..4] of string;
 EscUm , EscDois , EscTres , i , x , y : integer;
 respostas1:respostas;
 total:array[1..10,1..2] of real;
 tot:real;
 
Begin
 repeat
     clrscr;
     writeln('----Menu Principal----');
    writeln('[1] - Cadastros - ');
    writeln('[2] - Vendas - ');
    writeln('[3] - Relatórios - ');
    writeln('[4] - Sair - ');
    writeln('Informe a opção de seu interesse');
    readln(EscUm);
    
    case EscUm of 
                1:begin

                      clrscr;                    
                        writeln('----Menu de Cadastros----');
                        writeln('[1] - Cadastrar Cliente - ');                                                                          
                        writeln('[2] - Cadastrar Funcionário - ');
                        writeln('[3] - Cadastrar Produto - ');
                        writeln('[4] - Volta para o menu principal - ');
                        writeln('Informe a opção de seu interesse');
                        readln(EscDois);
                        
                            case EscDois of
                               1:begin
                                       //cadastrar clientes
                                    repeat    
                                    for i:=1 to 10 do
                                       begin
                                           if clientes[i,1] = '' then
                                           begin
                                               clrscr;
                                             writeln('----Cadastro clientes----');
                                             writeln('Informe o codigo do cliente');
                                             readln(clientes[i,1]);
                                             writeln('Informe o nome do cliente');
                                             readln(clientes[i,2]);
                                             writeln('Informe o telefone do cliente');
                                             readln(clientes[i,3]);
                                             break;
                                           end;
                                       
                                  end;
                                  writeln('Deseja realizar outro cadastro?[S/N]');
                                  readln(respostas1.op);
                                  until UpCase(respostas1.op) ='N';
                                    end;
                                                                            
                               2:begin
                                  //cadastrar funcionario
                                  repeat
                                    for i:=1 to 10 do
                                     begin
                                         if funcionarios[i,1] = '' then
                                         begin
                                          clrscr;
                                          writeln('----Cadastro Funcionario----');
                                          writeln('Informe o codigo do funcionário');
                                          readln(funcionarios[i,1]);
                                          writeln('Informe o nome do funcionário');
                                          readln(funcionarios[i,2]);
                                          writeln('Informe o telefone do funcionário');
                                          readln(funcionarios[i,3]);
                                          break;
                                         end;
                                     end;
                                    writeln('Deseja cadastrar outro funcionário? [S/N]');
                                    readln(respostas1.op2);
                                        until UpCase(respostas1.op2) = 'N';     
                                   end;
                                   
                                 3:begin
                                    //cadastrar produto
                                    repeat
                                    for i:=1 to 10 do
                                     begin 
                                      if produtos[i,1] = '' then
                                      begin
                                       clrscr;
                                       writeln('----Cadastro Produto----');
                                       writeln('Informe o codigo do produto');
                                          readln(produtos[i,1]);
                                          writeln('Informe o nome do produto');
                                          readln(produtos[i,2]);
                                          writeln('Informe o preço do produto');
                                          readln(total[i,1]);
                                          //readln(produtos[i,3]);
                                          break;                                          
                                      end;    
                                     end;
                                    writeln('Deseja cadastrar outro produto?[S/N]');
                                        readln(respostas1.op3); 
                                    until UpCase(respostas1.op3)= 'N'; 
                                   end;
                                 4:begin
                                
                                     end;            
                      end;
                       
                  end;
                
                2:begin
                   //vendas
                   repeat;
                  for i:=1 to 10 do
                     begin
                           if vendas[i,1] = '' then
                            begin
                               clrscr;
                               writeln('---Vendas---');
                               writeln('                      ');
                                for i:=1 to 10 do
                                    begin
                                        if produtos[i,2] <> '' then
                                            begin
                                                writeln(' Produto:',produtos[i,2],' Preço:$',total[i,1]:6:2,' codigo: ', produtos[i,1]);                                        
                                                writeln('                                 ');
                                            end;
                                                    end;
                                             writeln('                   ');              
                               writeln('Informe o codigo da venda');
                               readln(vendas[i,1]);
                               writeln('Informe o codigo do cliente');
                               readln(vendas[i,2]);
                               writeln('Informe o codigo do funcionário responsável');
                               readln(vendas[i,3]);
                               writeln('Informe o codigo do produto');
                               readln(vendas[i,4]);
                               writeln('Informe a quantidade desejada');
                               readln(total[i,2]);
                               
                               tot:= total[i,1]*total[i,2];
                               writeln('total a se pagar:$',tot:6:2);
                                   break;                
                           end;
                   end;
                       writeln('Deseja realizar outra compra? [S/N]');
                         readln(respostas1.op4); 
                       until UpCase(respostas1.op4)= 'N';
                    end;
                    
                3:begin
                
                    clrscr;                    
                        writeln('----Relatórios----');
                        writeln('[1] - Relatório por clientes - ');                                                                          
                        writeln('[2] - Relatório por funcionários - ');
                        writeln('[3] - Relatório Anual - ');
                        writeln('[4] - Relatário Mensal - ');
                        writeln('[5] - Voltar para o menu principal -');
                        writeln('Informe a opção desejada');
                        readln(EscTres);
                        
                            case EscTres of
                                    1:begin
                                            //relatorio clientes
                                        repeat    
                                            clrscr;
                                               writeln('Informe o codigo do cliente em questão');
                                               readln(respostas1.cod1);
                                                   for i:=1 to 10 do
                                                     begin
                                                         if respostas1.cod1 = vendas[i,2] then
                                                             begin 
                                                                 for x:=1 to 10 do
                                                                 begin
                                                                    if respostas1.cod1=clientes[x,1] then
                                                                    begin
                                                                    respostas1.nome1:=clientes[x,2];
                                                                    end;
                                                                 end;
                                                                 clrscr;
                                                                 writeln('                    ');
                                                                 writeln(' Nome: ',respostas1.nome1,' Produto: ', vendas[i,4] ,' Quantidade: ', vendas[i,5],' Total:R$ ',tot:6:2);
                                                                 writeln('                    ');
                                                                 writeln('Pressione enter para votar ao menu principal.....');
                                                                 readln();
                                                                 
                                                            end;
                                                     end;
                                                 break;
                                        writeln('testo fantasma , spook spook');
                                        readln(respostas1.op6);
                                        until Upcase(respostas1.op6)='S';         
                                         end;
                                    2:begin
                                            //relatorio funcionarios
                                            repeat
                                                clrscr;
                                                writeln('Informe o codigo do funcionário em questão');
                                                readln(respostas1.cod2);
                                                    for i:=1 to 10 do
                                                      begin
                                                           if respostas1.cod2 = vendas[i,3] then
                                                             begin
                                                                    for y:=1 to 10 do
                                                                    begin
                                                                       if respostas1.cod2=funcionarios[y,1] then
                                                                       begin
                                                                        respostas1.nome2:=funcionarios[y,2];
                                                                       end;
                                                                       clrscr;
                                                                       writeln('                      ');
                                                                       writeln(' Nome do Funcionário:',respostas1.nome2,' Cliente atendido:',clientes[i,2],' Produto:', vendas[i,4]);
                                                                       writeln(' Nome do produto:',produtos[i,2], ' Quantidade:', vendas[i,5]);
                                                                       writeln('                      ');
                                                                       writeln('Pressione enter , para voltar ao menu principal...');
                                                                       readln();
                                                                       break;
                                                                    end;
                                                             end;
                                                     end;
                                                    break;
                                            writeln('texto fantasma , spooky spooky');
                                            readln(respostas1.op5);
                                            until Upcase(respostas1.op5)='S';    
                                        end;
                                    3:begin
                                            //relatorio anual
                                        end;
                                    4:begin
                                            //relatorio mensal
                                        end;
                                    5:begin
                                        end;                
                          end;
                
                    end;
                4:begin
                        writeln('Deseja sair do programa? [S/N]');
                        readln(respostas1.resp);
                    end;              
    end;
            
            
 until Upcase(respostas1.resp)='S'; 
End.

 

  • Membro VIP
Postado

Sobre:

2 horas atrás, KXSY disse:
3 horas atrás, Simon Viegas disse:

@KXSY, como assim "colocar datas"? Poderia dar exemplos do que você quer fazer?

data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

Só funciona no Delphi e Freepascal.

 

[...]


Pelo o que eu entendi ela (@Juju122) quer colocar a data na hora de registrar uma venda, até onde eu usei o PascalZim ele não tem nenhuma função para fazer isso.

 

@KXSY, você estaria misturando "conseguir pegar a data e hora do sistema" com "inserir data e hora no registro". Uma coisa é uma coisa, outra coisa é outra coisa. Veja:

 

2 horas atrás, Juju122 disse:

@Simon Viegas Tipo, eu quero colocar datas pra fazer relatório mensal e anual, ver o que foi comprado em cada mês, a quantidade , cada funcionário que fez a venda, entende? 

 

Como já observado por vocês, o que se queria é o registro de algo, não a origem desse algo... Pegar ou não a hora do SO seria uma forma de automatizar e organizar o processo. Mas, como já citado, poderia simplesmente digitar manualmente... ou pensar em outras formas...

 

 

 

@Juju122, uma boa forma para achar uma solução de um problema é saber qual é o problema. Para esclarecermos melhor o que se quer/precisa poste o enunciado completo

 

 

 

Como demonstração... por exemplo, se quer de alguma forma registrar a data e hora, seguindo o que já foi implementado, poderia ser algo assim:

 

O cadastro de venda está assim:

 

16 horas atrás, Juju122 disse:


var
  vendas : array[1..10, 1..4] of string;

 

 

Estaria armazenando, respectivamente, os seguintes dados: Código da venda, Código do cliente, Código do Funcionário Responsável e Código do Produto. Bastaria inserir mais um campo para Data e Hora da Venda:

 

var
  vendas : array[1..10, 1..5] of string;


Pronto... aí leria a data pelo console em forma de string mesmo. Exemplo:

 

writeln('                   ');              
writeln('Informe o codigo da venda');
readln(vendas[i,1]);
writeln('Informe o codigo do cliente');
readln(vendas[i,2]);
writeln('Informe o codigo do funcionário responsável');
readln(vendas[i,3]);
writeln('Informe o codigo do produto');
readln(vendas[i,4]);
writeln('Informe a data e hora da venda');
writeln('  Formato: dd/mm/aaaa hh:mm');
readln(vendas[i,5]);
writeln('Informe a quantidade desejada');
readln(total[i,2]);

 

 

Depois teria que, de alguma forma, separar esses dados e fazer os tratamentos desejados... iria funcionar... mas já adianto que esse exemplo não seria uma boa estratégia... foi apenas para demonstrar mesmo..

 

 

Acho que seria melhor reformular a estrutura do código... no teu, você está utilizando registros para armazenar "opções", mas utilizar matriz para armazenar os cadastros... tá meio estranho..

 

Para reanalisar melhor seria bom ter o enunciado completo... ver quais são os requisitos impostos e quais as limitações...

 

De um modo geral, um exemplo poderia ser algo assim:

 

{$CODEPAGE UTF8} //uma forma de tentar conseguir imprimir palavras acentuadas em alguns compiladores (Não necessário no Pzim)
program Pzim ;
uses
  CRT; //Carregar o ReadKey(), ClrScr(), TextColor() etc (Não necessário no PZim)
type
  t_Venda = record
              codVenda: string;
              codFuncionario: string;
              codProduto: string; 
              dataVenda: string;
            end;
            
var
  vendas: array[1..10] of t_Venda;
  totalVendas: byte; 
begin
totalVendas := totalVendas+1;

writeln(' CADASTRO DE VENDA ');
writeln('');
write  ('Código da Venda       : ');
readln(vendas[totalVendas].codVenda);
write  ('Código do Cliente     : ');
readln(vendas[totalVendas].codFuncionario);
write  ('Código do Fúncionário : ');
readln(vendas[totalVendas].codFuncionario);
write  ('Código do Produto     : ');
readln(vendas[totalVendas].codProduto);
write  ('Data da venda         : ');
readln(vendas[totalVendas].dataVenda);

writeln;
writeln(' DADOS DA VENDA ');
writeln('Código da Venda       : ', vendas[totalVendas].codVenda:1);
writeln('Código do Cliente     : ', vendas[totalVendas].codFuncionario:1
);
writeln('Código do Fúncionário : ', vendas[totalVendas].codFuncionario:1);
writeln('Código do Produto     : ', vendas[totalVendas].codProduto:1);
writeln('Data da venda         : ', vendas[totalVendas].dataVenda:1);

ReadKey();

end.

 

 

 

image.png

 

 

Isso para cada tipo de registro... reformular toda a estrutura.

 

Outra coisa.. em relação ao relatório, seria bom ter uma persistência de dados... ficaria complicado ter que ficar efetuando cadastros...

 

RESUMINDO:

De um modo geral, deixe essa questão do relatório para depois... primeiro precisa reformular para cadastrar corretamente os dados.

 

Poste o enunciado completo. Daí, vemos o que realmente está sendo solicitado e a partir daí sim parar para ver como pode reformular o código.

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!