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?