Ir ao conteúdo
  • Cadastre-se

Exercício cadastro de produtos erro


Posts recomendados

Boa noite pessoal!

 

estou com um problema que nao estou conseguindo identificar onde estou errando, gostaria de ver se podem me auxiliar

// modelo de 26.02.2014
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
#include <ctype.h>
#include <locale.h>
#include <math.h>
// rotina para podermos utilizar cor do texto (textcolor)
// e cor do fundo (textbackground) em um único comando.
// para chama-la de dentro do programa use  cores(x,y);
// onde x = numero da cor do texto  (textcolor)
//      y = numero da cor do fundo  (textbackground)
void cores(int ForgC, int BackC){   // para chamar
     WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);;
     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
     return;
}
// esta rotina é só para a cor do texto
void textcolor(int newcolor){
   CONSOLE_SCREEN_BUFFER_INFO csbi;
   GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
   SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
     (csbi.wAttributes & 0xf0) | newcolor);
}
// rotina para podermos utilizar o comando gotoxy(linha,coluna)
// sem precisar carregar bibliotecas não disponíveis na Feevale.
void gotoxy(int x, int y) {
  COORD c;
  c.X = x - 1;
  c.Y = y - 1;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void imp_autor(){
  setlocale(LC_ALL, "Portuguese");
  gotoxy(27,12);
  textcolor(10);
  printf("RAFAEL HENRIQUE STEIGLEDER");
  Sleep(500);
  system("cls"); // comando para limpar o conteúdo da tela.
  textcolor(15);
}

// -------------- AQUI COMEÇA NOSSO PROGRAMA PROPRIAMENTE DITO -----------------
//valor.estoque+valr.compra

typedef struct produto{
     int cod_produto[100];
    long int qnt_produto[1000];
    int est_minimo[0];
    char nome_produto[200];
    float preco_medio;
   }Produto;
   
   //Declaração de funções.
   Produto* inserir_item(Produto* primeiro);
   Produto* listar_item(Produto* primeiro);
   Produto* entrada_item(Produto* primeiro);
   void saida_item(Produto* primeiro);
   Produto* prox;
int main(){
    Produto *primeiro= NULL;
   char opcao;
   int prox;
    while(opcao!='s')   
   {  
     //Menu de opções 
      printf(" %c----------------------------------------------------------------------------%c\n",201,187);
      printf(" | ");printf("\t\t\t     CADASTRO DE PRODUTOS");printf("\t\t\t      |\n");
      printf(" %c----------------------------------------------------------------------------%c\n",200,188);
      printf("\t       %c----------%c\t\t\t\t       ",201,187);
      printf("\t\t\t               |   MENU   ");printf("|\t\t\t\t      \n");
      printf("   %c----------------%c--------------%c----------------%c \n",201,200,188,187);
      printf("   | <1>  Cadastrar um Produto                           |\n");
      printf("   |-----------------------------------------------------|\n");
      printf("   | <2>  Listar produtos cadastrados                    |\n");      
      printf("   |-----------------------------------------------------|\n");
      printf("   | <3>  Consultar dados de um produto                  |\n");      
      printf("   |-----------------------------------------------------|\n");
      printf("   | <4>  Processar um produto de mercadoria do estoque  |\n"); 
      printf("   |-----------------------------------------------------|\n");
      printf("   | <5>  Processar uma entrada de mercadoria do estoque |\n"); 
      printf("   |-----------------------------------------------------|\n");
      printf("   | <6>  Sair                                           |\n");
      printf("   %c-----------------------------------------------------%c",200,188);
      printf("\n\n\n\n");
      
      
      //Lendo a opcao do menu   
      fflush(stdin);
      opcao= getch(); 
      
      //Menu de opções
      switch(opcao)
      {
         case '1':   
         
              //Inserindo os restaurantes.
              fflush(stdin);
              system("cls");
              printf(" %c----------------------------------------------------------------------------%c\n",201,187);
              printf(" | ");printf("\t\t\t          NOVO PRODUTO     ");printf("\t\t\t      |\n");
              printf(" %c----------------------------------------------------------------------------%c\n",200,188);
              primeiro= inserir_item(primeiro);
         getch();
         system("cls"); 
         break;
         
         case '2':   
                
              //Listando os restaurantes.
              system ("cls");
              printf(" %c----------------------------------------------------------------------------%c\n",201,187);
              printf(" | ");printf("\t\t\t     LISTA DE PRODUTOS    ");printf("\t\t\t      |\n");
              printf(" %c----------------------------------------------------------------------------%c\n",200,188);
              listar_item(primeiro);
         getch();
         system("cls");
         break;
         
         case '3':   
            
              //Excluindo restaurantes da lista.
              system ("cls");
              printf(" %c----------------------------------------------------------------------------%c\n",201,187);
              printf(" | ");printf("\t\t\t        EXCLUIR CADASTROS");printf("\t\t\t      |\n");
              printf(" %c----------------------------------------------------------------------------%c\n",200,188);
              primeiro= entrada_item(primeiro);
         getch();
         system("cls");
         break;
         case '4':   
           
              //Alterando restaurantes da lista. 
              system ("cls");
              printf(" %c----------------------------------------------------------------------------%c\n",201,187);
              printf(" | ");printf("\t\t\t       ALTERAR CADASTRADOS");printf("\t\t\t      |\n");
              printf(" %c----------------------------------------------------------------------------%c\n",200,188);
              saida_item(primeiro);
         getch();
         system("cls");
         break;
         
         case '6':   
               
              //Artifício para sair do programa.
              opcao='6';
         break;
         
         default:     
              //Artifício que previne a situação de um usuário qualquer, digitar uma opcão inexistente no menu.
              system("cls");        
 
         break; 
}
}
}
Produto* inserir_item (Produto *primeiro) { 
     
     Produto item;
     Produto *atual= primeiro;
     char identificador= 'F';
     
     //Lendo as informações do restaurante.
     printf("  Código do Produto: ",162);
     scanf("%u",&item.cod_produto);printf ("\n");
     printf("  Quantidade do Produto ",162);
     scanf("%u",&item.qnt_produto);printf ("\n");
     printf("  Estoque mínimo ",162);
     scanf("%u",&item.est_minimo);printf ("\n");
     printf("  Nome do Produto: ");
     fflush (stdin); fgets(item.nome_produto, 200, stdin); printf ("\n");
     printf("  Preço Médio ",162);
     scanf("%f",&item.preco_medio);printf ("\n");
     
     //Verificando se o cadastro já existe.
     for(atual=primeiro; atual!=NULL; atual=atual->prox){
        if(atual->cod_produto==item.cod_produto){
            identificador= 'V'; 
            break;
        }  
     }
if(identificador!='V' && (strlen(item.nome_produto)!=1)){
         //Alocando os espaços e guardando as informações do restaurante.
         Produto* NovoProduto=(Produto*) malloc (sizeof(Produto));       
         strcpy(NovoProduto->nome_produto, item.nome_produto);
         NovoProduto->prox= primeiro;
         printf("  Cadastro realizado com sucesso.");
         printf("\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         return NovoProduto;    
     }else{
         printf("  Cadastro inv%clido.",160);
         printf("\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         return primeiro;
     }
}
void produto_item (Produto* primeiro){
     Produto* atual;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.
     
     //Imprimindo os restaurantes da lista, e suas repectivas informações.
     for(atual= primeiro ; atual!= NULL; atual= atual->prox){
        printf("\n  Código do produto: ",162 );
        printf("%u", atual->cod_produto);
        printf("\n  Quantidade do Produto: ",162 );
        printf("%u", atual->qnt_produto);
        printf("\n  Estoque Mínimo: ",162 );
        printf("%u", atual->est_minimo);
        printf("\n  Nome do Produto ");
        printf("%s", atual->nome_produto);
        printf("\n  Preço médio ",162 );
        printf("%u", atual->preco_medio);
        printf("\n\n");
     }
     if(primeiro==NULL)
        printf("  Nenhum produto cadastrado.");
     printf("\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
}


Quanto compilo e tento rodar o programa ele da a seguinte mensagem:

In function 'Produto* inserir_item(Produto*)':

[Error] 'Produto' has no member named 'prox'

[Error] 'Produto' has no member named 'prox'

In function 'void produto_item(Produto*)':

[Error] 'Produto' has no member named 'prox'

 

Como posso identificar o prox?

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