Desenvolver um programa em linguagem C que ajude o gestor de uma empresa a controlar os ativos e passivos da empresa, além do estoque das mercadorias, gerando um relatório mensal.
1
stars
0
forks
source link
A busca e a edição de produtos pelo nome não estão funcionando corretamente #16
@LucasMartS Ao tentar consultar ou editar um produto pelo nome nas funções de exibir ou editar estoque, o programa exibe uma mensagem como o produto não foi encontrado em vez de exibir as informações sobre ele ou possibilitar a edição de seus dados.
void exibirEstoque(Lista *ListaEstoque)
{
int opcao,cod,controle=0;
float preco;
char nome[200];
Elemento *auxiliar;
auxiliar=ListaEstoque->primeiro;
if (ListaEstoque->quantidade==0){
printf("\n\nNão há produtos cadastrados.\n\n");
return;
}
printf("<<MENU>>");
printf("\n O que você deseja?\n\n");
printf("1) Tecle 1 para procurar por nome do produto\n");
printf("2) Tecle 2 para procurar por codigo do produto\n");
printf("3) Tecle 3 para procurar por preço\n");
scanf("%d", &opcao);
switch(opcao)
{
case 1:
printf("\nDigite o nome do produto que deseja buscar:\n\n");
fflush(stdin);
gets(nome);
while(auxiliar!=NULL)
{
if(strcmp(nome,auxiliar->Dados.nome) == 0)
{
exibirItem(auxiliar);
controle=1;
}
auxiliar=auxiliar->proximo;
}
break;
case 2:
printf("\nDigite o código do produto que deseja buscar:\n\n");
scanf("%d",&cod);
while(auxiliar!=NULL)
{
if(cod==auxiliar->Dados.codigo)
{
exibirItem(auxiliar);
}
auxiliar=auxiliar->proximo;
}
break;
case 3:
{
printf("\nDigite o preço do produto que deseja buscar:\n\n");
scanf("%f",&preco);
while(auxiliar!=NULL)
{
if(preco==auxiliar->Dados.valorDeSaida)
{
exibirItem(auxiliar);
controle=1;
}
auxiliar=auxiliar->proximo;
}
break;
}
default:
printf("\nOpção inválida\n\n");
break;
}
if(controle==0)
{
printf("Não foi encontrado o produto\n\n");
}
}
void editarEstoque(Lista *ListaEstoque)
{
int opcao,cod,controle=0;
float preco;
char nome[100];
Elemento *auxiliar;
Elemento *aux;
auxiliar=ListaEstoque->primeiro;
if (ListaEstoque->quantidade==0){
printf("\n\nNão há produtos cadastrados.\n\n");
return;
}
printf("\nDigite o nome do produto que deseja buscar:\n\n");
fflush(stdin);
gets(nome);
while(auxiliar!=NULL)
{
if(strcmp(nome,auxiliar->Dados.nome) == 0)
{
exibirItem(auxiliar);
controle=1;
aux=auxiliar;
}
auxiliar=auxiliar->proximo;
}
if(controle==1)
{
do
{
printf("\n\n<<MENU>>");
printf("\n O que você deseja?\n\n");
printf("1) Tecle 1 para alterar a Validade do produto\n");
printf("2) Tecle 2 para alterar a quantidade do produto\n");
printf("3) Tecle 3 para alterar o valor de entrada\n");
printf("4) Tecle 4 para alterar o valor de saída\n");
printf("5) Tecle 5 para sair\n\n");
scanf("%d", &opcao);
switch(opcao)
{
case 1:
printf("Data de Validade atual: %s\n\n",aux->Dados.dataValidade);
printf("\t->Digite uma nova data:\n\n");
gets(aux->Dados.dataValidade);
break;
case 2:
printf("Quantidade de produtos atual: %d\n\n",aux->Dados.quantidade);
printf("\t->Digite uma nova quantidade:\n\n");
scanf("%d",&aux->Dados.quantidade);
break;
case 3:
printf("Valor de entrada atual: %.2f\n\n",aux->Dados.valorDeEntrada);
printf("\t->Digite um novo valor de entrada:\n\n");
scanf("%f",&aux->Dados.valorDeEntrada);
break;
case 4:
printf("Valor de saída atual: %.2f\n\n",aux->Dados.valorDeSaida);
printf("\t->Digite um novo valor de entrada:\n\n");
scanf("%f",&aux->Dados.valorDeSaida);
break;
}
}while(opcao!=5);
}
else
{
printf("Não foi encontrado o produto\n\n");
}
}
@LucasMartS Ao tentar consultar ou editar um produto pelo nome nas funções de exibir ou editar estoque, o programa exibe uma mensagem como o produto não foi encontrado em vez de exibir as informações sobre ele ou possibilitar a edição de seus dados.