Clipper On Line • Ver Tópico - Incrementar código de produto automaticamente - Linguagem C
Mudar para estilo Clássico
Discussão sobre outras linguagens de programação.
Postar uma resposta

Incrementar código de produto automaticamente - Linguagem C

16 Jun 2010 12:29

Fala pessoal, beleza?

Eu tenho que elaborar um programa em C que permita o controle de uma loja de brinquedos!
Fiz um menu utilizando switch e case, contendo cadastro, consulta, frente de caixa, até aí tudo bem...

Porém, o professor exigiu que o código do produto deverá ser único (óbvio) e informado pelo próprio programa –
auto-incremental.
E aí que mora o problema! rs

Por enquanto, a minha função CADASTRO é esta:
Código:
        // FUNÇÃO CADASTRAR:
        void cadastrar(int cod, int pos)
        {
             pos=verifica_pos();
             registros[pos].cod=cod;
             printf("\nDescricao:\n");
             gets(registros[pos].desc);
             printf("\nPreco de compra:\n");
             scanf("%f",&registros[pos].prec_c);
             printf("\nPreco de venda:\n");
             scanf("%f",&registros[pos].prec_v);
             printf("\nQuantidade:\n");
             scanf("%d",&registros[pos].quant);
             registros[pos].vazio=1;
             printf("\nCadastro Realizado com Sucesso!\n\n");
        }


Com isso, eu consigo apenas pegar o código se a pessoa digitar:
Código:
   case 1:{ // CADASTRAR
            posicao=verifica_pos();
            if (posicao!=-1) {
            printf("\nEntre com o codigo desejado\n");
            scanf("%d",&codaux);fflush(stdin);
               retorno=verifica_cod(codaux);
               if (retorno==1)
                  cadastrar(codaux,posicao);
               else
                  printf("\nCodigo ja existente\n");
            }
            else
              printf("\nEstoque Lotado!\n");   
       break;
       }


Portanto, como faço para, a cada vez que o usuário cadastre um novo produto, o próprio sistema se encarregue de incrementá-lo sozinho?
Por exemplo: Começa com codigo=0 e no final do cadastro codigo=codigo+1

Não sei se é bem isso, se uso um laço... Preciso de uma luz! rs
E ainda mais pelo curto espaço de tempo pra fazer... o cara pediu ontem e a entrega é amanhã! ¬¬ kkk

Agradeço pela ajuda galera! :D
Grande abraço a todos!

Re: Incrementar código de produto automaticamente - Linguagem C

16 Jun 2010 14:04

Acho que se poderia fazer uma analogia com o recurso "Generator" de um SGBD, que reserva uma área na tabela para armazenar um contador, utilizado justamente para codificar entidades. Você poderia fazer o mesmo, reservando uma área no topo do arquivo apenas para armazenar seu contador. A cada inserção o tal contador seria lido e incrementado. Uma operação simples com o uso de fseek() e fwrite(). Num SGBD ocorre exatamente a mesma coisa, só que com o apoio de um trigger do tipo "before-insert". A diferença é que o seu trigger já estará incorporado ao código do programa, pronto para essa operação.

Aliás, em tempo: pedir código para o usuário só mesmo num caso: alteração. Ainda assim, com ressalvas: só nesse tipo de programa, que é muito simples.
Postar uma resposta