Hello, this program is a stock control, which it asks for in the first% program%, an inventory and sale controller with struct. Cases 3 and 4 are in trouble because I do not know how to get the information from the registered items. Case 2 also has a problem but I can not explain why. If anyone wants to run the program I would be grateful. The IDE I use (most recent C ++ falcon) does not identify any errors,
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
struct produto
{
char cod;
float compra;
float venda;
float preco;
int qdt;
float lucro;
char descricao[100];
char nome[50];
};
int main()
{
int opc;
int i;
int per;
float lucro;
int ven;
struct produto cadastrar[40];
setlocale(LC_ALL, "Portuguese");
printf("1-Cadatrar produto\n2-Lucro total\n3-Conferir estoque\n4-Venda\n0-Sair\n");
scanf("%d", &opc);
fflush(stdin);
switch(opc)
{
case 1:
puts("Olá, cadastre um item");
for(i=0; i<40; i++)
{
puts("Nome:");
gets(cadastrar[i].nome);
fflush(stdin);
puts("Código:");
scanf("%s", &cadastrar[i].cod);
fflush(stdin);
puts("Descrição:");
gets(cadastrar[i].descricao);
fflush(stdin);
puts("Quantidade:");
scanf("%d", &cadastrar[i].qdt);
fflush(stdin);
puts("Valor da compra:");
scanf("%f", &cadastrar[i].compra);
fflush(stdin);
puts("Preço:");
scanf("%f", &cadastrar[i].preco);
fflush(stdin);
puts("gostaria de cadastrar outro produto?");
puts("1-sim\t2-nao");
scanf("%d", &per);
if(per!=1)
{
system("cls");
printf("finalização de cadastramento de produto\n");
return main();
}
else if(per==1)
{
system("cls");
}
fflush(stdin);
}
return main();
case 2:
for(i=0; i<40; i++)
{
if(cadastrar[i].venda==0)
{
fflush(stdin);
system("cls");
printf("Não foi feito nenhuma venda:\n");
return main();
}
else if(cadastrar[i].venda>0)
{
fflush(stdin);
printf("%.2f", cadastrar[i].venda);
}
}
case 3:
for(i=0;i<40;i++)
{
fflush(stdin);
puts("Código do produto:");
scanf("%s", &cadastrar[i].cod);//toda vez que é digitado substitui o codigo do item, e zera o resto das variaveis na possição
fflush(stdin);
if(cadastrar[i].qdt<12)
{
printf("%s", cadastrar[i].nome);
fflush(stdin);
printf("Produto no fim:\t\t%d\n\n", cadastrar[i].qdt);
system("pause");
}
else if(cadastrar[i].qdt>11)
{
puts(cadastrar[i].nome);
fflush(stdin);
printf("Qtd:t\t%d\n\n", cadastrar[i].qdt);
system("pause");
}
if(cadastrar[i].qdt==0)
{
puts(cadastrar[i].nome);
fflush(stdin);
printf("Item em falta");
}
fflush(stdin);
puts("gostaria de cadastrar outro produto?");
puts("1-sim\t2-nao");
scanf("%d", &per);
if(per!=1)
{
system("cls");
printf("finalização de cadastramento de produto\n");
return main();
}
else if(per==1)
{
system("cls");
}
fflush(stdin);
}
return main();
case 4:
for(i=0; i<40; i++)
{
puts("Código do produto:");//toda vez que é digitado substitui o codigo do item, e zera o resto das variaveis na possição
scanf("%s", &cadastrar[i].cod);
fflush(stdin);
printf("Preço:\t\t%.2f", cadastrar[i].preco);
printf("Qtd:\t\t%d", cadastrar[i].qdt);
fflush(stdin);
ven=0;
printf("Vender?/n1-sim 2-não:\n");
scanf("%d", &ven);
fflush(stdin);
if(ven==1)
{
cadastrar[i].qdt--;
cadastrar[i].venda=cadastrar[i].preco;
lucro=cadastrar[i].venda;
}
else if(ven==2)
{
return main();
}
fflush(stdin);
per=0;
puts("gostaria de cadastrar outro produto?");
puts("1-sim\t2-nao");
scanf("%d", &per);
if(per!=1)
{
system("cls");
printf("finalização de cadastramento de produto\n");
return main();
}
else if(per==1)
{
system("cls");
}
fflush(stdin);
fflush(stdin);
}
case 0:
fflush(stdin);
system("cls");
break;
default:
fflush(stdin);
printf("opção invalida, digite outra opção\n");w
return main();
}
return 0;
}
My question is the second one, when I register a product and then I will sell or check stock, regardless of the code I am going to type, it is not the same.
Editable code:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <conio.h>
#include <string.h>
struct produto
{
char cod;
float compra;
float venda;
float preco;
int qdt;
float lucro;
char descricao[100];
char nome[50];
};
int main()
{
int opc;
int i;
int per;
float lucro;
int ven;
struct produto cadastrar[40];
setlocale(LC_ALL, "Portuguese");
while(opc!=0)
{
printf("1-Cadatrar produto\n2-Lucro total\n3-Conferir estoque\n4-Venda\n0-Sair\n");
scanf("%d", &opc);
fflush(stdin);
switch(opc)
{
case 1:
puts("Olá, cadastre um item");
for(i=0; i<40; i++)
{
puts("Nome:");
gets(cadastrar[i].nome);
fflush(stdin);
puts("Código:");
scanf("%s", &cadastrar[i].cod);
fflush(stdin);
puts("Descrição:");
gets(cadastrar[i].descricao);
fflush(stdin);
puts("Quantidade:");
scanf("%d", &cadastrar[i].qdt);
fflush(stdin);
puts("Valor da compra:");
scanf("%f", &cadastrar[i].compra);
fflush(stdin);
puts("Preço:");
scanf("%f", &cadastrar[i].preco);
fflush(stdin);
puts("gostaria de cadastrar outro produto?");
puts("1-sim\t2-nao");
scanf("%d", &per);
if(per!=1)
{
system("cls");
printf("finalização de cadastramento de produto\n");
break;
}
else if(per==1)
{
system("cls");
}
fflush(stdin);
}
break;
case 2:
for(i=0; i<40; i++)
{
if(cadastrar[i].venda==0)
{
fflush(stdin);
system("cls");
printf("Não foi feito nenhuma venda:\n");
break;
}
else if(cadastrar[i].venda>0)
{
fflush(stdin);
printf("%.2f", cadastrar[i].venda);
}
}
break;
case 3:
for(i=0;i<40;i++)
{
fflush(stdin);
puts("Código do produto:");
scanf("%s", &cadastrar[i].cod);
fflush(stdin);
if(cadastrar[i].qdt<12)
{
printf("%s", cadastrar[i].nome);
fflush(stdin);
printf("Produto no fim:\t\t%d\n\n", cadastrar[i].qdt);
system("pause");
}
else if(cadastrar[i].qdt>11)
{
puts(cadastrar[i].nome);
fflush(stdin);
printf("Qtd:t\t%d\n\n", cadastrar[i].qdt);
system("pause");
}
if(cadastrar[i].qdt==0)
{
puts(cadastrar[i].nome);
fflush(stdin);
printf("Item em falta");
system("pause");
}
fflush(stdin);
puts("gostaria de pesquisar outro produto?");
puts("1-sim\t2-nao");
scanf("%d", &per);
if(per!=1)
{
system("cls");
printf("finalização de cadastramento de produto\n");
break;
}
else if(per==1)
{
system("cls");
}
fflush(stdin);
}
break;
case 4:
for(i=0; i<40; i++)
{
puts("Código do produto:");
scanf("%s", &cadastrar[i].cod);
fflush(stdin);
printf("Preço:\t\t%.2f", cadastrar[i].preco);
printf("Qtd:\t\t%d", cadastrar[i].qdt);
fflush(stdin);
ven=0;
printf("Vender?/n1-sim 2-não:\n");
scanf("%d", &ven);
fflush(stdin);
if(ven==1)
{
cadastrar[i].qdt--;
cadastrar[i].venda=cadastrar[i].preco;
lucro=cadastrar[i].venda;
}
else if(ven==2)
{
break;
}
fflush(stdin);
per=0;
puts("gostaria de cadastrar outro produto?");
puts("1-sim\t2-nao");
scanf("%d", &per);
if(per!=1)
{
system("cls");
printf("finalização de cadastramento de produto\n");
break;
}
else if(per==1)
{
system("cls");
}
fflush(stdin);
}
break;
case 0:
fflush(stdin);
system("cls");
break;
default:
fflush(stdin);
printf("opção invalida, digite outra opção\n");
break;
}
}
return 0;
}