/*Algortimo de Controle de Estoque e Cadastro*/ #include <stdio.h> #include <stdlib.h> main(){ int i, op, op2, qtd, entradaEstoque, consulProduto, consulCliente,cod[1000],estoque[1000]; double pCompra[1000], pVenda[1000], codClient[1000]; int flagCad=0,FlagClient=0; cadastrar a partir de onde parou //sempre que o usuário voltar ao menu principal ele poderá char desc[1000], categ[1000], nome[1000]; printf("********Controle de Estoque e Cadastro***************"); //menu principal do { printf("\n **Bem-Vindo** \n"); printf("<1> Cadastro de Produtos\n"); printf("<2> Cadastro de Clientes\n"); printf("<3> Consulta de Estoque\n"); printf("<4> Cadastro de Vendas\n"); printf("<5> Alteração de dados do produto\n"); printf("<6> Entrada de Estoque\n"); printf("<0> Sair\n"); printf("Digite uma opção.: "); scanf("%d", &op); //validação para entrada da opção while ( op != 1 && op != 2 && op != 3 && op!= 4 && op != 5 && op != 6 && op != 0) { printf("Opção Inválida! Digite novamente.: "); scanf("%d", &op); } switch (op) { case 1: //Cadastro de Produtos for(i=flagCad; i < 1000; i++) { printf("\n\n **Cadastro de Produto** \n\n"); printf("Código.................: "); scanf("%d", &cod[i]); while (cod[i] < 0) { printf("Código Inválido! Por Favor, digite um código positivo.: "); scanf("%d", &cod[i]); } printf("Descrição..............: "); scanf("%c", desc[i]); printf("Preço de Compra........: "); scanf("%f", &pCompra[i]); while (pCompra[i] <=0) { printf("Preço Inválido! Por favor, digite um preço maior que 0.: "); scanf("%f", &pCompra[i]); } printf("Preço de Venda.........: "); scanf("%f", &pVenda[i]); printf("Categoria do Produto...: "); scanf("%c", &categ[i]); printf("Qtd Estoque............: "); scanf("%d", &estoque[i]); while (estoque[i] <= 0) { printf("Qtde Inválida! Por favor, digite uma quantidade maior que 0.: "); scanf("%d", &estoque[i]); } printf("\n**Cadastro realizado com sucesso**\n"); printf("\nDeseja cadastrar mais produtos?"); printf("<1> sim"); printf("<2> não"); printf("Digite uma opção.: "); scanf("%d", &op2); while (op2 != 1 && op2 != 2) { printf("Opção Inválida! Digite novamente.: "); scanf("%d", &op2); } if (op2 == 2) { flagCad=i+1; //enquanto o programa continuar aberto, sempre que o usuário voltar a tela de cadastro, continuará na posição do vetor seguinte a que ele parou i = 999; } } break; case 2: //tela para cadastro de clientes for(i=FlagClient; i < 1000; i++) { printf("\n\n **Cadastro de Clientes** \n\n"); printf("Nome....: "); scanf("%s", nome[i]); printf("Digite um Código..: "); scanf("%f", &codClient[i]); while (codClient[i] < 0) { printf("Código Inválido! Por favor, digite um código positivo.: "); scanf("%f", &codClient[i]); } printf("\n**Cadastro realizado com sucesso**\n"); printf("\nDeseja cadastrar mais clientes?\n"); printf("<1> sim"); printf("<2> não"); printf("Digite uma opção.: "); scanf("%d", &op2); while (op2 != 1 && op2 != 2) { printf("Opção Inválida! Digite novamente.: "); scanf("%d", &op2); } if (op2 == 2) { FlagClient = i+1; i = 999; } } break; case 3: //consulta de estoque do { printf("\n\n **Consulta de Estoque** \n\n"); printf("Digite o código do produto ou -1 para sair.: "); scanf("%d", &consulProduto); while (consulProduto < -1) { printf("\n Código Inválido! Por favor, digite um código válido.: "); scanf("%d", &consulProduto); } for (i=0; i < 1000; i++) { if (consulProduto == cod[i]) { printf("Descrição............:%c",desc[i]); printf("Código...............:%d", cod[i]); printf("Categoria do produto.:%d", categ[i]); printf("Estoque Disponível...:%d", estoque[i]); i = 999; } else { if (i == 999) { //caso tenha percorrido vetor e não encontrou o código o programa mostra essa frase printf("\nProduto não cadastrado! Favor cadastrar na opção 1 no menu\n"); } } } } while (consulProduto != -1); break; case 4: //cadastro de Vendas consulCliente = 0; while (consulCliente != -1) { printf("\n\n **Cadastro de Vendas** \n\n"); printf("Digite o código do cliente ou -1 para sair.: "); scanf("%d", &consulCliente); while (consulCliente < -1) { printf("\n Código Inválido! Por favor, digite um código válido.: "); scanf("%d", &consulCliente); } for (i=0; i < 1000; i++) { if (consulCliente == codClient[i]) { printf("Nome do Cliente.:%c",nome[i]); i = 999; } else { if (i == 999) { printf("\n\nCliente não cadastrado! Favor cadastrar na opção 2 no menu\n\n"); } } } if (consulCliente != -1 ){ //O programa só vai entrar na opção do produto se o código do cliente for válido printf("Código do Produto.....: "); scanf("%d", &consulProduto); while (consulProduto < 0) { printf("\n Código Inválido! Por favor, digite um código válido.: "); scanf("%d", &consulProduto); } for (i=0; i < 1000; i++) { if (consulProduto == cod[i]) { printf("Descrição.:%c", desc[i]); printf("Digite Qtde adquirida pelo cliente.: "); scanf("%d", &qtd); while (consulProduto < 0) { printf("\n Código Inválido! Por favor, digite um código válido.: "); scanf("%d", &consulProduto); } if (qtd > estoque[i]) { //verifica se tem estoque disponivel do produto printf("Qtde Indisponível no estoque"); printf("Estoque atual.:%d",estoque[i]); } else{ estoque[i] = estoque[i] - qtd; printf("\n **Cadastro efetuado com sucesso** \n"); } i = 999; //se o código foi encontrado não é necessário percorrer o vetor } else { if (i == 999) { printf("\n\nProduto não cadastrado no sistema! Favor cadastrar produto na opção 1\n\n"); } } } } } break; case 5: //alteração de dados do { printf("\n\n **Alteração de dados do produto** \n\n"); printf("Digite código ou -1 pra sair.: "); scanf("%d", &consulProduto); while (consulProduto < -1) { printf("Código Inválido! Por favor digite um código válido.: "); scanf("%d", &consulProduto); } if (consulProduto != -1) { for (i=0; i < 1000; i++) { if (consulProduto == cod[i]) { do { printf("Qual dos itens abaixo você deseja alterar.: \n"); printf("<1> Codigo\n"); printf("<2> Descrição\n"); printf("<3> Preço de Compra"); printf("<4> Preço de Venda"); printf("<0> Voltar"); printf("Digite uma opção.: "); scanf("%d", &op2); switch (op2) { case 1: printf("Digite o novo código.: "); scanf("%d", &cod[i]); while (cod[i] < 0) { printf("\nCódigo Inválido! Por favor, digite um código acima de 0.: "); scanf("%d", &cod[i]); } printf("\n\n **Código alterado com sucesso** \n\n"); i = 999; break; case 2: printf("Digite a nova descrição.: "); scanf("%c", desc[i]); printf("\n\n **Descrição alterada com sucesso** \n\n"); i = 999; break; case 3: printf("Digite o novo preço de compra.: "); scanf("%e", &pCompra[i]); while (pCompra[i] <= 0) { printf("Preço Inválido! Por favor digite novamente"); scanf("%lf", &pCompra); } printf("\n\n **Preço de compra alterado com sucesso** \n\n"); i = 999; break; case 4: printf("Digite o novo preço de venda.: "); scanf("%f", &pVenda); while (pVenda[i] <= 0) { printf("Preço Inválido! Por favor digite novamente"); scanf("%f", &pVenda); } printf("\n\n **Preço de veda alterado com sucesso** \n\n"); i = 999; break; default: printf("Opção Inválida! Digite novamente.: "); } } while (op2 != 0); } else { if (i == 999) { printf("\nProduto não cadastrado! Por favor, cadastrar na opção 1\n"); } } } } } while (consulProduto != -1); break; case 6: printf("\n\n **Entrada no Estoque** \n\n"); do { printf("Digite código do produto ou -1 para sair.: "); scanf("%d", &consulProduto); while (consulProduto < -1) { printf("\nCódigo Inválido! Por favor, digite um código válido.: "); scanf("%d", &consulProduto); } for (i=0; i < 1000; i++) { if (consulProduto == cod[i]) { printf("Qtde a entrar.: "); scanf("%d", &entradaEstoque); while (entradaEstoque <= 0) { printf("\nQuantidade Inválida! Por favor, digite uma quantidade maior que 0.: "); scanf("%d", &entradaEstoque); } estoque[i] = estoque[i] + entradaEstoque; printf("\n **Entrada efetuada com sucesso** \n"); i = 999; } } } while (consulProduto != -1); break; case 0: printf("\n\n **Obrigado por utilizar o programa** \n\n"); printf("\n\n **Fim do Programa** \n\n"); break; default: printf("Opção Inválida! Digite novamente"); } } while (op != 0); }