Incrementar código de produto automaticamente - Linguagem C

Fórum sobre outras linguagens de programação.

Moderador: Moderadores

trooper7
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 19 Fev 2010 12:22
Localização: Ribeirão Preto/SP

Incrementar código de produto automaticamente - Linguagem C

Mensagem por trooper7 »

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: Selecionar todos

        // 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: Selecionar todos

   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!
"É comum vermos os homens zombarem do que não podem compreender." (Goethe)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

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

Mensagem por Maligno »

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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder