Ir ao conteúdo
  • Cadastre-se

Controle de Estoque


Renato.R.S

Posts recomendados

Começei a fazer o algoritmo mais surgiu varios erros e acabei me perdendo, alguem me da uma luz por favor estou meio que perdido..

A questão e essa:

3) Você foi contratado para fazer um programa que controla os estoques de uma empresa.

Inicialmente, serão lidos os seguintes dados, de até 100 mercadorias:

a. Código

b. Quantidade existente

c. Preço unitário

Devem ser lidos dados até que seja digitado um código de mercadoria igual a 0 (zero) ou

quando 100 mercadorias forem cadastradas.

A atualização do estoque deve ser feita da seguinte maneira:

a) Deve ser lido o estoque inicial, conforme descrito acima;

B) Devem ser lidos os pedidos dos clientes, constituído cada um de número do

cliente, código da mercadoria e quantidade desejada. A leitura deve ser

interrompida quando o código do cliente for igual a 0 (zero);

c) Deve ser verificado, para cada pedido, se ele pode ser integralmente atendido. Em

caso negativo, imprima o número do cliente e a mensagem “NÃO TEMOS A

MERCADORIA EM ESTOQUE SUFICIENTE”;

d) Deve ser atualizado o estoque a cada operação;

#include<stdio.h>
#include<stdlib.h>


#define QTD 5

// Estrutura Estoque
typedef struct
{
int estoque[QTD];
int cod_produto[QTD];
int qtd_estoque[QTD];
float preco_unit;
}Estoque;

//Estrutura Pedidos
typedef struct
{
int cod_cliente;
int cod_produto_desejado;
int qtd_desejada;
}Pedido;

int main()
{
Estoque estoque[QTD];
Pedido pedido[QTD];
int i;

printf("________Estoque________");
printf("\n\n");
do{
printf("ENTRE COM O CODIGO DA MERCADORIA:");
scanf("%d",&estoque[i].cod_produto);
printf("\n\n");
printf("ENTRE COM A QUANTIDADE EXISTENTE NO ESTOQUE:");
scanf("%d",&estoque[i].qtd_estoque);
printf("\n\n");
printf("ENTRE COM O PRECO DO PRODUTO:");
scanf("%f",&estoque[i].preco_unit);
printf("\n\n");
}while (estoque[i].cod_produto != 0);

printf("________Pedidos________");
printf("\n\n");
do{
printf("ENTRE COM O CODIGO DO CLIENTE:");
scanf("%d",&pedido[i].cod_cliente);
printf("\n\n");
printf("ENTRE COM O PRODUTO DESEJADO:");
scanf("%d",&pedido[i].cod_produto_desejado);
printf("\n\n");
printf("ENTRE COM A QUANTIDADE DESEJADA:");
scanf("%d",&pedido[i].qtd_desejada;);
printf("\n\n");
}while (pedido[i].cod_cliente != 0);

for(i=0;i<QTD;i++)
{

if(pedido[i].cod_produto_desejado == estoque[i].estoque)
{
printf("PRODUTO VENDIDO;");
estoque[i].estoque--;
scanf("%d",estoque[i].estoque);
}
else
{
printf("NÃO TEMOS A MERCADORIA EM ESTOQUE SUFICIENTE: %d",pedido[i].cod_cliente);
}
}
system("pause");
}

Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...
/* Inicialmente detectei que  existe 
redundância na   sua struct; já que  está  
trabalhando com apontamentos de memória basta
atribuir um vetor para  cada  tipo, assim criando
vetores 'Objetos', exemplo:
*/



Segue o codigo:

typedef struct Estoque {

int variante1[QTD];

float variante2[QTD];

}Estoque;

/*Dentro da sua  função  ou   da main, voce
vai chamar a struct     da  seguinte  forma:

Estoque estoque,codigo,quantidade,preço;
*/
exemplo  de  instância:

estoque.variante1[QTD];

codigo.variante1[QTD];

quantidade.variante1[QTD];

preco.variante2[QTD];


/* Para criar  varios  produtos na  sequencia 
voce  pode  usar  o for(){  ou  while(){,  assim
criando função para  centralizar  o codigo em 
blocos,  ou  dentro da main , lembrando que metodos e 
fundamental  para  o desenvovimento do codigo.
*/


Exemplo de  entrada  sequencial:

int Atribuicao(){
    Estoque estoque,codigo,quantidade,preço;
    int i;
   
    for(i=0;i<100;i++){

    printf("\nDigite o nome  do produto:  ");
    for(i=0;i<estoque.variante1[QTD];i++){
        scanf("\n%d",&estoque.variante1[i]);
       
        printf("\nDigite o codigo do produto: ");       
        for(i=0;i<codigo.variante1[QTD];i++	){
            scanf("\n%d",&codigo.variante1[i]);
  
            printf("\nDigite a quantidade de produto:");
            for(i=0;i<quantidade.variante1[QTD];i++){
                scanf("\n%d",&quantidade.variante1[i]);
                                                      
                printf("\nDigite o valor  do produto: ");
                for(i=0;i<preco.variante2[QTD];i++){                
                    scanf("\n%f",&preco.variante2[i]);
                    return estoque.variante1[i],codigo.variante1[i],
                    quantidade.variante1[i],preco.variante2[i]; 
                                                                                          
                }
            }                                          
         }                                              
      }
   }
}         

            
            
                                           

           

    

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!