A maior rede de estudos do Brasil

Controle de estoque

Faça um controle de estoque de supermercado. O sistema deve permitir o cadastro, a consulta de itens no estoque e a busca por item, usando o seguinte menu:

1 - Cadastra produto
2 - Lista produtos
3 - Busca por produto
4 - Deleta produto
5 - Encerra o programa 

Cada produto deve ter  cadastrado: Seu nome(char [100]), a quantidade em estoque em Kg (inteiro) ou litros (float) e o seu valor(float).

a opção de busca e remoção devem imprimir:"produto inexistente!" se o produto não existir!

Algoritmos e Programação


3 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

Com relação ao algoritmo, temos que:

\#include

\#include

\#include

\#define QTREG 30

//Estrutura para cadastro das mercadorias

typedef struct {

int codigo;

char nome[30];

int quantidade;

float preco;

} REGPRODUTO;

//CRIA VARIAVEL DO TIPO regproduto

REGPRODUTO produto[QTREG];

//VARIAVEIS GLOBAIS

float caixaAtual = 800.00;

//CABEÇALHO DAS FUNÇÕES QUE SERÃO USADAS

//CABEÇALHO DA FUNÇÃO INSERIR UM PRODUTO NO ESTOQUE

int cadastrar();

//CABEÇALHO DA FUNÇÃO AUMENTAR O ESTOQUE DE UM PRODUTO

void alterarEstoque(int pCodgio, int pQuantidade);

//CABEÇALHO DA FUNÇÃO MODIFICAR O PREÇO DE UM PRODUTO

void modificarPreco(int pCodigo, float pPreco);

//CABEÇALHO DA FUNÇÃO REALIZAR VENDA

float venda();

//CABEÇALHO DA FUNÇÃO CONSULTAR O ESTOQUE DOS PRODUTOS

void listaProduto(int pQtProduto);

//CABEÇALHO DA FUNÇÃO CONSULTAR O SALDO DO CAIXA

void consultarSaldo();

int main(void) {

int op = 0;

setlocale(LC_ALL, "Portuguese");

while (op != 7) {

printf("\n\n\t Mercadinho - Sistema de gerenciamento de mercadoria 2015 \n\n\n");

printf("MENU\n\n1 - Cadastrar Produto\n2 - Atualizar Estoque\n3 - Alterar preco produto");

printf("\n4 - Realizar venda\n5 - Consultar estoque\n6 - Consultar saldo do caixa\n7 - Sair\n");

fflush(stdout);

scanf("%d", &op);

fflush(stdin);

system("cls");

switch (op) {

int qtProduto;

float lucro;

case 1://OPÇÃO CADASTRAR PRODUTO

qtProduto = cadastrar();

break;

case 2:

{//OPÇÃO ATUALIZAR ESTOQUE

int pCodigo, pQuantidade;

printf("Digite o código do produto que deseja atualizar o estoque:");

fflush(stdout);

scanf("%d", &pCodigo);

fflush(stdin);

printf("Deseja alterar quantidade do produto: %s - quantidade: %d \n", produto[pCodigo].nome, produto[pCodigo].quantidade);

printf("Nova quantidade:");

fflush(stdout);

scanf("%d", &pQuantidade);

fflush(stdin);

system("pause");

alterarEstoque(pCodigo, pQuantidade);

break;

case 3:

{//OPÇÃO ALTERAR PREÇO DO PRODUTO

int pCodigo;

float pPreco;

printf("Digite o código do produto que deseja modificar o preco:");

fflush(stdout);

scanf("%d", &pCodigo);

fflush(stdin);

printf("Deseja modificar o preco do produto: %s - preco: %0.2f \n", produto[pCodigo].nome, produto[pCodigo].preco);

printf("Novo preco:");

fflush(stdout);

scanf("%f", &pPreco);

fflush(stdin);

system("pause");

modificarPreco(pCodigo, pPreco);

break;

case 4://OPÇÃO DE REALIZAR VENDA

lucro = venda();

caixaAtual = caixaAtual + lucro;

break;

case 5://OPÇÃO DE LISTAR PRODUTOS

listaProduto(qtProduto);

break;

case 6://CONSULTAR SALDO NO CAIXA

consultarSaldo();

break;

case 7://OPÇÃO SAIR DO PROGRAMA

break;

default:// EXIBI MENSAGEM DE OPÇÃO INVALIDA CASO DIGITE UM NUMERO QUE NÃO TENHA NO MENU

printf("Opcão inválida");

fflush(stdout);

break;

system("pause");

return 0;

//CORPO DA FUNÇÕES

//FUNÇÃO INSERIR UM PRODUTO NO ESTOQUE

int cadastrar() {

char opSub;

int cont = 0, qtProdutoCad = 0;

//float compra;

do {

produto[cont].codigo = cont;

fflush(stdin);

printf("Digite o nome do produto:");

fflush(stdout);

gets(produto[cont].nome);

fflush(stdin);

printf("Digite a quantidade:");

fflush(stdout);

scanf("%d", &produto[cont].quantidade);

fflush(stdin);

printf("Digite o preco:");

fflush(stdout);

scanf("%f", &produto[cont].preco);

fflush(stdin);

caixaAtual = caixaAtual - produto[cont].preco;

qtProdutoCad = qtProdutoCad + cont;

cont++;

printf("Deseja cadastrar um novo produto sim(s) ou não(n)?");

fflush(stdout);

scanf("%c", &opSub);

fflush(stdin);

} while (opSub == 's' || opSub == 'S');

return qtProdutoCad;

//FUNÇÃO AUMENTAR O ESTOQUE DE UM PRODUTO

void alterarEstoque(int pCodigo, int pQuantidade) {

produto[pCodigo].quantidade = pQuantidade;

//FUNÇÃO MODIFICAR O PREÇO DE UM PRODUTO

void modificarPreco(int pCodigo, float pPreco) {

produto[pCodigo].preco = pPreco;

//FUNÇÃO REALIZA VENDA

float venda() {

int pCodigo, qtd;

float lucro = 0;

char a;

do{

printf("Informe o código do produto: ");

fflush(stdout);

scanf("%d", &pCodigo);

fflush(stdin);

if (produto[pCodigo].quantidade < 0) {

printf("Produto indisponivel\n");

fflush(stdout);

} else {

printf("Informe a quantidade: ");

fflush(stdout);

scanf("%d", &qtd);

fflush(stdin);

printf("\tProduto: %s - \tQtdade: %d - \tPreço: %1.2f - \tSubTotal: %1.2f\n",

produto[pCodigo].nome, qtd, produto[pCodigo].preco, produto[pCodigo].preco * qtd);

fflush(stdout);

lucro += produto[pCodigo].preco * qtd;

produto[pCodigo].quantidade -= qtd;

printf("Informar novo item para a venda? (s/n) ");

fflush(stdout);

scanf("%c", &a);

} while (a != 'n');

printf("\t\t\t Total: %1.2f", lucro);

fflush(stdout);

return lucro;

//FUNÇÃO CONSULTAR SALDO

void consultarSaldo() {

printf("Saldo atual em caixa: %1.2f", caixaAtual);

fflush(stdout);

//FUNÇÃO CONSULTAR O ESTOQUE DOS PRODUTOS

void listaProduto(int pQtProduto) {

int i, qtProduto;

qtProduto = pQtProduto;

for (i = 0; i < qtProduto; i++) {

printf("\tCódigo - %d \tNome - %s \tQuantidade - %d \n", produto[i].codigo, produto[i].nome, produto[i].quantidade);

fflush(stdout);

Com relação ao algoritmo, temos que:

\#include

\#include

\#include

\#define QTREG 30

//Estrutura para cadastro das mercadorias

typedef struct {

int codigo;

char nome[30];

int quantidade;

float preco;

} REGPRODUTO;

//CRIA VARIAVEL DO TIPO regproduto

REGPRODUTO produto[QTREG];

//VARIAVEIS GLOBAIS

float caixaAtual = 800.00;

//CABEÇALHO DAS FUNÇÕES QUE SERÃO USADAS

//CABEÇALHO DA FUNÇÃO INSERIR UM PRODUTO NO ESTOQUE

int cadastrar();

//CABEÇALHO DA FUNÇÃO AUMENTAR O ESTOQUE DE UM PRODUTO

void alterarEstoque(int pCodgio, int pQuantidade);

//CABEÇALHO DA FUNÇÃO MODIFICAR O PREÇO DE UM PRODUTO

void modificarPreco(int pCodigo, float pPreco);

//CABEÇALHO DA FUNÇÃO REALIZAR VENDA

float venda();

//CABEÇALHO DA FUNÇÃO CONSULTAR O ESTOQUE DOS PRODUTOS

void listaProduto(int pQtProduto);

//CABEÇALHO DA FUNÇÃO CONSULTAR O SALDO DO CAIXA

void consultarSaldo();

int main(void) {

int op = 0;

setlocale(LC_ALL, "Portuguese");

while (op != 7) {

printf("\n\n\t Mercadinho - Sistema de gerenciamento de mercadoria 2015 \n\n\n");

printf("MENU\n\n1 - Cadastrar Produto\n2 - Atualizar Estoque\n3 - Alterar preco produto");

printf("\n4 - Realizar venda\n5 - Consultar estoque\n6 - Consultar saldo do caixa\n7 - Sair\n");

fflush(stdout);

scanf("%d", &op);

fflush(stdin);

system("cls");

switch (op) {

int qtProduto;

float lucro;

case 1://OPÇÃO CADASTRAR PRODUTO

qtProduto = cadastrar();

break;

case 2:

{//OPÇÃO ATUALIZAR ESTOQUE

int pCodigo, pQuantidade;

printf("Digite o código do produto que deseja atualizar o estoque:");

fflush(stdout);

scanf("%d", &pCodigo);

fflush(stdin);

printf("Deseja alterar quantidade do produto: %s - quantidade: %d \n", produto[pCodigo].nome, produto[pCodigo].quantidade);

printf("Nova quantidade:");

fflush(stdout);

scanf("%d", &pQuantidade);

fflush(stdin);

system("pause");

alterarEstoque(pCodigo, pQuantidade);

break;

case 3:

{//OPÇÃO ALTERAR PREÇO DO PRODUTO

int pCodigo;

float pPreco;

printf("Digite o código do produto que deseja modificar o preco:");

fflush(stdout);

scanf("%d", &pCodigo);

fflush(stdin);

printf("Deseja modificar o preco do produto: %s - preco: %0.2f \n", produto[pCodigo].nome, produto[pCodigo].preco);

printf("Novo preco:");

fflush(stdout);

scanf("%f", &pPreco);

fflush(stdin);

system("pause");

modificarPreco(pCodigo, pPreco);

break;

case 4://OPÇÃO DE REALIZAR VENDA

lucro = venda();

caixaAtual = caixaAtual + lucro;

break;

case 5://OPÇÃO DE LISTAR PRODUTOS

listaProduto(qtProduto);

break;

case 6://CONSULTAR SALDO NO CAIXA

consultarSaldo();

break;

case 7://OPÇÃO SAIR DO PROGRAMA

break;

default:// EXIBI MENSAGEM DE OPÇÃO INVALIDA CASO DIGITE UM NUMERO QUE NÃO TENHA NO MENU

printf("Opcão inválida");

fflush(stdout);

break;

system("pause");

return 0;

//CORPO DA FUNÇÕES

//FUNÇÃO INSERIR UM PRODUTO NO ESTOQUE

int cadastrar() {

char opSub;

int cont = 0, qtProdutoCad = 0;

//float compra;

do {

produto[cont].codigo = cont;

fflush(stdin);

printf("Digite o nome do produto:");

fflush(stdout);

gets(produto[cont].nome);

fflush(stdin);

printf("Digite a quantidade:");

fflush(stdout);

scanf("%d", &produto[cont].quantidade);

fflush(stdin);

printf("Digite o preco:");

fflush(stdout);

scanf("%f", &produto[cont].preco);

fflush(stdin);

caixaAtual = caixaAtual - produto[cont].preco;

qtProdutoCad = qtProdutoCad + cont;

cont++;

printf("Deseja cadastrar um novo produto sim(s) ou não(n)?");

fflush(stdout);

scanf("%c", &opSub);

fflush(stdin);

} while (opSub == 's' || opSub == 'S');

return qtProdutoCad;

//FUNÇÃO AUMENTAR O ESTOQUE DE UM PRODUTO

void alterarEstoque(int pCodigo, int pQuantidade) {

produto[pCodigo].quantidade = pQuantidade;

//FUNÇÃO MODIFICAR O PREÇO DE UM PRODUTO

void modificarPreco(int pCodigo, float pPreco) {

produto[pCodigo].preco = pPreco;

//FUNÇÃO REALIZA VENDA

float venda() {

int pCodigo, qtd;

float lucro = 0;

char a;

do{

printf("Informe o código do produto: ");

fflush(stdout);

scanf("%d", &pCodigo);

fflush(stdin);

if (produto[pCodigo].quantidade < 0) {

printf("Produto indisponivel\n");

fflush(stdout);

} else {

printf("Informe a quantidade: ");

fflush(stdout);

scanf("%d", &qtd);

fflush(stdin);

printf("\tProduto: %s - \tQtdade: %d - \tPreço: %1.2f - \tSubTotal: %1.2f\n",

produto[pCodigo].nome, qtd, produto[pCodigo].preco, produto[pCodigo].preco * qtd);

fflush(stdout);

lucro += produto[pCodigo].preco * qtd;

produto[pCodigo].quantidade -= qtd;

printf("Informar novo item para a venda? (s/n) ");

fflush(stdout);

scanf("%c", &a);

} while (a != 'n');

printf("\t\t\t Total: %1.2f", lucro);

fflush(stdout);

return lucro;

//FUNÇÃO CONSULTAR SALDO

void consultarSaldo() {

printf("Saldo atual em caixa: %1.2f", caixaAtual);

fflush(stdout);

//FUNÇÃO CONSULTAR O ESTOQUE DOS PRODUTOS

void listaProduto(int pQtProduto) {

int i, qtProduto;

qtProduto = pQtProduto;

for (i = 0; i < qtProduto; i++) {

printf("\tCódigo - %d \tNome - %s \tQuantidade - %d \n", produto[i].codigo, produto[i].nome, produto[i].quantidade);

fflush(stdout);

Essa pergunta já foi respondida por um dos nossos especialistas