Ir ao conteúdo
  • Cadastre-se
Daniel Soares17

C Programa para cadastramento de produtos com struct

Posts recomendados

Pessoal, tenho que fazer a seguinta atividade: 

Simular a realização de vendas de produtos, por meio de um pedido realizado pelo usuário, obedecendo aos seguintes critérios:

Definir as estruturas Produto(código, nome, quantidade, preço), Itens(produto, quantidade, total) e Pedido(código, itens, valor).

Produtos repetidos (mesmo código e nome) não poderão ser cadastrados.

Cada pedido pode conter, no máximo, 10 itens.

Em um pedido só poderão ser adicionados itens que já foram previamente cadastrados.

Ao finalizar um pedido, todos os seus itens e o seu valor total deverão ser exibidos.

Para facilitar a interação com o usuário, o programa deverá conter um menu para cadastro de produtos e realização de pedidos.

 

Eu comecei a estudar agora struct e estou bem confuso.

``` 


typedef struct produto{
    int codigo;
    char nome[30];
    int quantidade;
    float preco;
}Produto;


typedef struct itens{
    
}Itens;

typedef struct pedido{
    
}Pedido;

 

```

Eu estou em duvida em como passar os atributos de produto para itens e pedido, na vdd em quase tudo, alguem poderia me dar uma luz ai?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Recomendo ler o capitulo 7 do C completo e total sobre estruturas.

 

Uma maneira mais pratica seria declarar dessa maneira

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

/* constantes */
#define T_NOME 30


/* Tipos */
typedef struct
{
  unsigned short codigo;
  char nome[T_NOME];
  float preco;
}TProduto;

typedef struct
{
  TProduto produto;
  unsigned short quantidade;
  float total;
}TItens;

int main(void)
{
  TItens itens;
  printf("\nDigite o codigo do produto:");
  scanf("%hu",&itens.produto.codigo);
  printf("\nDigite o nome do produto:");
  scanf(" %[^\n]%*c",itens.produto.nome);
  printf("\nDigite o preco:");
  scanf(" %f",&itens.produto.preco);
  printf("\nDigite a quantidade de produtos:");
  scanf(" %hu",&itens.quantidade);
  itens.total=itens.quantidade*itens.produto.preco;
  printf("\nA quantidade de produtos comprado e:%hu",itens.quantidade);
  printf("\nO codigo do produto e:%i",itens.produto.codigo);
  printf("\nO nome do produto e:%s",itens.produto.nome);
  printf("\nPreco do produto e:%.2f",itens.produto.preco);
  printf("\nPreco total e:%.2f",itens.total);
  return(0);
}

  Para cadastrar mais produtos você poderia fazer um vetor de TItens.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@KXSY no caso eu teria que usar funcoes para realizar o cadastramento dos produtos, fazer um pedido.. Não posso usar esse monte de printf e scanf 

  • Haha 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
20 minutos atrás, Daniel Soares17 disse:

@KXSY no caso eu teria que usar funcoes para realizar o cadastramento dos produtos, fazer um pedido.. Não posso usar esse monte de printf e scanf 

Só dei um exemplo de como organizar, no caso das funções a implementação é com você!

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, Daniel Soares17 disse:

@KXSY esse é o problema kkkk

De uma olhada na penúltima postagem que eu fiz nesse topico https://www.clubedohardware.com.br/forums/topic/1412850-auxilio-para-pontar-erro-na-funcao-do-meu-cadastro-e-uma-solucao/?tab=comments#comment-7639996  

 

Que a solução é basicamente a mesma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@KXSY estou vendo aqui, valeu

adicionado 14 minutos depois

@KXSY
void cadastrar(Itens itens[]){
    itens = malloc(sizeof(Itens));
    printf("Informe o código do produto: ");
    scanf("%d",itens[MAX].codigo);
}
 

pra eu cadastrar eu tentei isso, mas deu errado, como eu faria? (Eu infelizmente perdi as aulas disso e to tento que aprender e fazer ao mesmo tempo, tenho que entregar dia 5 e ai tenho que me virar pois tive varios outros trabalhos e não deu tempo tirar um momento pra estudar estruturar mais a fundo)

Compartilhar este post


Link para o post
Compartilhar em outros sites
37 minutos atrás, Daniel Soares17 disse:

pra eu cadastrar eu tentei isso, mas deu errado, como eu faria? (Eu infelizmente perdi as aulas disso e to tento que aprender e fazer ao mesmo tempo, tenho que entregar dia 5 e ai tenho que me virar pois tive varios outros trabalhos e não deu tempo tirar um momento pra estudar estruturar mais a fundo)

Se você não sabe usar, você pode usar um vetor grande o suficiente para receber os dados dos itens cadastrados.

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

×
×
  • Criar novo...