#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef
struct produto{
int quantidade, codigo;
float preco;
char nome[41];
char desc[100];
}produto;
struct categoria{
char tipoProduto[2][50];
};
typedef struct no{
produto novoProduto;
struct no *proximo;
} no;
no *listaProdutos = NULL;
void inserirnoInicio(produto dadosnovoProduto){
no *novoNo;
novoNo = (no*)malloc(sizeof(no));
novoNo ->novoProduto = dadosnovoProduto;
novoNo ->proximo = listaProdutos;
listaProdutos = novoNo;
}
produto excluirNoFinal(){
no *item, *anterior;
produto elementoExcluido;
elementoExcluido.codigo = 1;
if (listaProdutos == NULL) {
return elementoExcluido;
}
item = listaProdutos;
while (item->proximo != NULL){
anterior = item;
item = item->proximo;
}
if(item==listaProdutos){
listaProdutos = NULL;
}else{
anterior->proximo = NULL;
}
return item->novoProduto;
}
produto consulta(int mat){
produto elementoProcurado;
no *item;
elementoProcurado.codigo=-1;
if (listaProdutos == NULL){
return elementoProcurado;
}
item = listaProdutos;
while (item->novoProduto.codigo != mat && item->proximo != NULL){
item = item->proximo;
}
if(item->novoProduto.codigo == mat){
return item->novoProduto;
}
return elementoProcurado;
}
int main(){
produto novoP;
int opcao, codigoProduto;
int c =0;
do{
printf("1- Incluir produt\n");
printf("2- Consultar produto\n");
printf("1- Excluir ultimo produto\n");
printf("4- encerrar\n");
printf("Digite a opção desejada\n");
scanf("%d", &opcao);
switch(opcao){
case 1:
printf("Digite o codigo do produto\n");
scanf("%d", &novoP.codigo);
printf("Digite o nome do produto: \n");
scanf("%s", &novoP.nome[c]);
printf("Digite o preco do produto \n");
scanf("&f", &novoP.preco);
printf("Insira a descricao do produto: \n");
scanf("%s", &novoP.desc[c]);
inserirnoInicio(novoP);
printf("Produto cadastrado\n");
break;
case 2:
printf("Digite o codigo do produto \n");
scanf("%d", &codigoProduto);
novoP = consulta(codigoProduto);
if (novoP.codigo == -1) {
printf("Produto não cadastrado\n");
}else{
printf("Codigo : %d \n" , novoP.codigo);
printf("Preço : %f \n" , novoP.preco);
printf("%s \n" , novoP.desc);
}
break;
case 3:
novoP = excluirNoFinal();
if(novoP.codigo == -1){
printf("Sem produtos cadastrados \n");
}else{
printf("Todos os produtos excluidos\n");
}
break;
case 4:
printf("Programa encerrado");
break;
default:
printf("Opção inválida. Digite novamente.");
break;
}
}while (opcao != 4);
return 0;
}