Ir ao conteúdo
  • Cadastre-se
krausermb

Outro Alterações em programa Cobol

Recommended Posts

boa tarde, tenho esse trabalho que é para desenvolver um programa que faça a alteração na tabela gerada pelo programa de inclusão.
o programa esta anexado abaixo, tenho q fazer uma tabela que usa a função alterar:


     

citação

 

identification division.
       program-id.    produto.

       environment division.
       special-names.        decimal-point is comma.
       input-output section.
       file-control.
              select produtos assign to disk
              organization sequential
              access mode sequential
              file status arqst.
      
       data division.
       file section.
       fd produtos label record standard
                data record is reg-prod
                value of file-id is "produtos.dat".
          01 reg-prod.
                02 codigo         pic 9(04).
                02 nome           pic x(30).
                02 qtdade         pic 9(04).
                02 unitario       pic 9(05)v99.
                02 total          pic 9(06)v99.

       working-storage section.
          01 reg-prod-e.
                02 codigo-e       pic z.zz9.
                02 nome-e         pic x(30).
                02 qtdade-e       pic z.zz9.
                02 unitario-e     pic zz.zz9,99.
                02 total-e        pic zzz.zz9,99.
          01 reg-prod-w
                02 codigo-w         pic 9(04).
                02 nome-w           pic x(30).
                02 qtdade-w         pic 9(04).
                02 unitario-w       pic 9(05)v99.
                02 total-w          pic 9(06)v99.
          01 data-sis.
                02 ano            pic 9(04).
                02 mes            pic 9(02).
                02 dia            pic 9(02).

         01 arqst                   pic x(02).
         01 ws-opcao                pic x(01) value spaces.
         01 ws-salva                pic x(01) value spaces.
         01 ws-espaco               pic x(30) value spaces.
         01 ws-mens1                pic x(20) value "fim de programa".
         01 ws-fl                   pic 9(01) value zeros.

       screen section.
         01 tela.
              02 line 2  col 5  value "  /  /  ".
              02 col 29  value "controle de mercadorias".
              02 line 4  col 19 value "codigo do produto:".
              02 line 6  col 19 value "nome do produto:".
              02 line 8  col 19 value "quantidade:".
              02 line 10 col 19 value "custo unitario:".
              02 line 12 col 19 value "custo total:".
              02 line 15 col 25 value "mensagem:".
 
       procedure division.
       inicio.
              perform abre-arq.
              perform processo until ws-opcao = "n".
              perform finaliza.

       abre-arq.
              open i-o produtos.
              if arqst not = "00"
                     close produtos
                     open output produtos.

       processo.
              perform imp-tela.
              perform entra-dados.
              perform calculo-total.
              perform gravar  until ws-salva = "s" or "n".
              if ws-salva = "s"
                 perform grava-reg
              else
                 display "registro nao gravado" at 2030.
              perform continua  until ws-opcao = "s" or "n".

       imp-tela.
              display erase at 0101.
              display tela.
              move function current-date to data-sis.
              display dia   at 0205.
              display mes   at 0208.
              display ano   at 0211.
      * ----------------------------- inicialização das variáveis
              move space  to     ws-opcao 
                ws-salva
                          nome-e.
              move zeros  to     codigo-e 
                qtdade-e
                unitario-e 
                                total-e
                                ws-fl.
              display ws-espaco at 1535.

       entra-dados.
              perform entra-codigo until ws-fl = 1.
              accept nome-e     at 0636 with prompt auto.
              accept qtdade-e   at 0831 with prompt auto.
              accept unitario-e at 1035 with prompt auto.
              move   codigo-e   to codigo-w.
              move   nome-e     to nome-w.
              move   qtdade-e   to qtdade-w.
              move   unitario-e to unitario-w.

       entra-codigo.
              accept codigo-e   at 0438 with prompt auto.
              move   codigo-e   to codigo-w.
              if codigo-w = 9999
                 display ws-mens1 at 1535
                 close produtos
                 stop run.
              close produtos.
              perform abre-arq.
              move zeros to ws-fl.
              perform ler-registro until ws-fl >= 1.
              if ws-fl = 2
                 display "registo ja cadstrado" at 2030.

       ler-registro.
              read produtos next at end move 1 to ws-fl.
              if arqst = "00"
                 if codigo-w = codigo
                    move 2 to ws-fl.

       calculo-total.
              compute total-w = qtdade-w * unitario-w.
              move    total-w to total-e.
              display total-e at 1232.

       gravar.
              display "salvar (s/n)? [ ]" at 1430.
              accept ws-salva at 1445 with prompt auto.

       grava-reg.
              close produtos.
              open extend produtos.
              move reg-prod-w to reg-prod.
              write reg-prod.
              if arqst not = "00"
                   display "erro de grava€ço" at 1535
                   stop " ".
              close produtos.
              perform abre-arq.

       continua.
              display "continua (s/n)? [ ]" at 1430.
              accept ws-opcao at 1447 with prompt auto.
              if ws-opcao = "s" or = "n"
                     display ws-espaco at 1430
                     display ws-espaco at 1535
              else
                     display ws-espaco at 1535
                     display "digite s ou n" at 1535.

       finaliza.
              display ws-mens1 at 1535.
              close produtos.    
              stop run.

 

 

prodinc2.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×