Jump to content

danyg

Members
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

0 Comum

About danyg

  1. danyg

    [Código] Programa de controle de estoque

    Como faço para transformar esse algoritmo, adicionar ponteiros, alocação,arquivo de texto??...agradeço ajuda
  2. danyg

    Adicionar ponteiros a um algoritmo.

    Como faço para transformar esse algoritmo, adicionar ponteiros alocação e arquivo de texto...ai a qstão e o que eu tenho kk..agradeço ajda A nota de compra e venda deve apresentar obrigatoriamente para o cliente a quantidade de cada produto comprado, a descrição do produto e o seus respectivos preços, como ilustra a figura abaixo. O objetivo é deixar claro para o cliente quanto ele está pagando pelos produtos. No final da nota deverá aparecer o preço total da compra, mas muita atenção a regra de negócio do mercado diz que: Compras acima de R$100 o estabelecimento oferece um desconto de 1% no preço total. Compras acima de R$200 o estabelecimento oferece um desconto de 5% no preço total. Compras acima de R$300 o estabelecimento oferece um desconto de 10% no preço total. Compras acima de R$400 o estabelecimento oferece um desconto de 20% no preço total. Os produtos que são vendidos no mercado encontam-se em um arquivo texto e devem ser carregados em seu sistema. Lembre-se novos produtos podem ser inseridos, preços atualizados e o estoque é alterado a cada compra, logo você deve controlar a integridade dos dados atualizando o arquivo quando necessário. Segue abaixo um arquivo de exemplo com código do produto, descrição, preço, quantidade: produtos.txt 5000 AguaComGaz500ml 2.10 105 5001 ArrozTioJoao2k 4.65 10 5002 BatataPringles40g 6.20 50 5003 CocaCola2l 4.50 60 5004 FeijaoCarioquinha2k 7.10 35 . . . Atenção: o sitema também deve ter um menu de opções. Exemplo: SISTEMA DE CONTROLE DE VENDAS 1) Carregar base de dados do arquivo 2) Salvar base de dados no arquivo 3) Cadastrar produto 4) Remover produto 5) Iniciar uma venda 6) Sair >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #include<stdio.h> #include<stdlib.h> #include<conio.h> main() { system ("color F9"); float preco[150], precoNF, NFPreco_Produto[150]; //Vetores e variáveis que trabalham com preço int a=0, x=0, v=0, rel=0, y, i, aux, cod_exclui, troca; //Declaração de variáveis utilizadas para leitura, gravação, exlclusão e ordenar vetores int codigo[150], estoque[150], codigoNF[150], codigoVenda[v], NFCod_Produto[150], NFCod[150], NFEstoque_Produto[150], procura_cod, procura_est, vetor_ref; //Declaração de Vetores diversos int op_Menu_Pricipal, op_Menu_Estoque, op_Menu_Venda, op_Menu_Relat, opGeral, teste, teste_est; //Variavéis de Menus e condições //Aqui começa o programa do //Do voltado para repetição geral do programa, voltando sempre ao menu principal em alguma hora { printf ("SIGVER - SISTEMA DE GERENCIAMENTO DE VENDAS, ESTOQUE E RELATORIOS\n\nInforme o que voce deseja fazer:\n[1] - Gerenciar Estoque\n[2] - Registrar Venda\n[3] - Gerar Relatorio\n[4] - Sair\nSua escolha: "); //Interface com o usuário scanf ("%d", &op_Menu_Pricipal); //Captura de variável do menu principal system ("cls"); switch (op_Menu_Pricipal) //Leitura de variável para aplicação da condição { case 1: do //Repetição com objetivo de poder voltar a este menu após alguma alteração de dados dentro do mesmo { printf ("SIGVER - GERENCIAMENTO DE ESTOQUE\n\nO que voce desejar fazer:\n[1] - Incluir novo cadastro\n[2] - Alterar cadastro especifico\n[3] - Excluir cadastro\n[4] - Voltar\nSua escolha: "); //Interface com o usuário scanf ("%d", &op_Menu_Estoque); //Captura da variável do menu Estoque system ("cls"); switch (op_Menu_Estoque) //Leitura de variável para aplicação da condição { case 1: do // Repetição com objetivo para informar novo cadastro { printf ("SIGVER - GERENCIAMENTO DE ESTOQUE\n\nINCLUSAO DE NOVO CADASTRO\n\n"); teste=0; do //Voltada para teste de condição CÓDIGO (Se o código existir, informar erro e repetir) { teste=0; printf ("Informe o codigo do produto: "); scanf ("%d", &codigo[x]); for (i=0; i<x; i++) { if (codigo[x]==codigo) { printf ("ERRO - O codigo ja existe\n"); teste=1; } } } while(teste==1); //Fim de condição CÓDIGO do //Voltada para teste de condição PREÇO (Se for "- ou =0", informar erro e repetir) { teste=0; printf ("Informe o preco unitario: "); scanf ("%f", &preco[x]); if (preco[x]<=0) { printf ("ERRO - Preco invalido\n"); teste=1; } } while (teste==1); //Fim de condição PREÇO do //Voltada para teste de condição QUANTIDADE EM ESTOQUE (Se for negativo, informar erro e repetir) { teste=0; printf ("Informe a quantidade de produtos no estoque: "); scanf ("%d", &estoque[x]); if (estoque[x]<0) { printf ("ERRO - Estoque negativo\n"); teste=1; } } while (teste==1);//Fim de condição QUANTIDADE EM ESTOQUE printf ("\n\nDeseja incluir novo produto?\n[1] - Sim\n[2] - Nao\nSua Escolha: "); scanf ("%d", &teste); //Captura de variável para repetição de inclusao x++; //Incrementada para mudar a posição de gravação dos vetores rel++; //Incrementada para a geração de relatórios, que será feita mais a frente system ("cls"); } while (teste==1); //Fim da repetição para inclusão de novo produto system ("cls"); printf ("SIGVER - SISTEMA DE GERENCIAMENTO DE VENDAS, ESTOQUE E RELATORIOS\n\nO que deseja fazer:\n[1] - Voltar ao Gerenciador de Estoque\n[2] - Voltar ao Menu Pricipal\nSua escolha: "); scanf ("%d", &opGeral); //Tomada de decisão, voltar ao menu principal ou ao menu anterior break; case 2: do //Repetição com objetivo para alterar algum cadastro { printf ("SIGVER - GERENCIAMENTO DE ESTOQUE\n\nALTERACAO DE CADASTRO ESPECIFICO"); teste=0; if (x==0) //Voltada para procurar se possui alguma coisa em estoque { printf ("Nenhum produto em estoque\n"); } else { printf ("\n\nInforme o codigo do produto: "); scanf ("%d", &procura_cod); for (i=0; i<x; i++) { teste=0; if (procura_cod==codigo) { do //Voltada para teste de condição PREÇO (Se for "- ou =0", informar erro e repetir) { teste=0; printf ("Informe o preco unitario: "); scanf ("%f", &preco); if (preco[x]<=0) { printf ("ERRO - Preco invalido\n"); teste=1; } } while (teste==1); //Fim de condição PREÇO do //Voltada para teste de condição QUANTIDADE EM ESTOQUE (Se for negativo, informar erro e repetir) { teste=0; printf ("Informe a quantidade de produtos no estoque: "); scanf ("%d", &estoque); if (estoque[x]<0) { printf ("ERRO - Estoque negativo\n"); teste=1; } } while (teste==1);//Fim de condição QUANTIDADE EM ESTOQUE teste=1; i=x; } } if (teste==0) { printf ("\nERRO - Codigo nao encontrado\n"); } } printf ("\nDeseja alterar outro cadastro?\n[1] - Sim\n[2] - Nao\nSua escolha: "); scanf ("%d", &teste); //Captura de variável para repetição de alteração system ("cls"); } while (teste==1); //Fim da repetição para alterção de cadastro system ("cls"); printf ("SIGVER - SISTEMA DE GERENCIAMENTO DE VENDAS, ESTOQUE E RELATORIOS\n\nO que deseja fazer:\n[1] - Voltar ao Gerenciador de Estoque\n[2] - Voltar ao Menu Pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; case 3: do //Voltada a repetição e exclusão { printf ("SIGVER - GERENCIAMENTO DE ESTOQUE\n\nEXCLUSAO DE CADASTRO\n"); printf ("Informe o codigo a ser excluido: "); scanf ("%d", &procura_cod); teste=0; for (i=0; i<x; i++) //Ele procura o código { if (procura_cod==codigo) { printf ("Codigo Encontrado!\nExcluido com sucesso!"); teste=1; cod_exclui=i; i=x; for (i=cod_exclui; i<x; i++) //Reordena os vetores e exclui o selecionado(executa a exclusão) { codigo=codigo[i+1]; //Exclui o código selecionado preco=preco[i+1]; //Exclui o preço referente ao código selecionado estoque=estoque[i+1]; //Exclui a quantidade de estoque referente ao código selecionado } rel=rel-1; //Atualiza o vetor, já que agora temos menos um item registrado x=x-1; //Atualiza o vetor, já que agora temos menos um item registrado } } if (teste==0) { printf ("Codigo nao encontrado!"); } printf ("\n\nDeseja excluir outro cadastro?\n[1] - Sim\n[2] - Nao\nSua Escolha:"); scanf ("%d", &teste); system ("cls"); } while (teste==1); //Condiciona se vai excluir outro ou não system ("cls"); printf ("SIGVER - SISTEMA DE GERENCIAMENTO DE VENDAS, ESTOQUE E RELATORIOS\n\nO que deseja fazer:\n[1] - Voltar ao Gerenciador de Estoque\n[2] - Voltar ao Menu Pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; case 4: opGeral=2; //Atualizada para que possa se retornar ao menu principal break; default: printf ("Opcao invalida\n\n"); printf ("SIGVER - SISTEMA DE GERENCIAMENTO DE VENDAS, ESTOQUE E RELATORIOS\n\nO que deseja fazer:\n[1] - Voltar ao Gerenciador de estoque\n[2] - Voltar ao menu pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; } system ("cls"); } while (opGeral==1); break; case 2: do { printf ("SIGVER - VENDAS\n\nO que voce desejar fazer:\n[1] - Registrar Venda\n[2] - Ver Nota Fiscal Especifica\n[3] - Relatorio de NFs\n[4] - Voltar\nSua escolha: "); scanf ("%d", &op_Menu_Venda); //Captura de variavel do menu venda system ("cls"); switch (op_Menu_Venda) //Leitura de variável para aplicação da condição { case 1: do { printf ("SIGVER - VENDAS\n\nREGISTRAR VENDA\n"); do //Repetição de procura e gravação do número da NF { teste=0; printf ("Informe o codigo da NF: "); scanf ("%d", &procura_cod); for (i=0; i<=v; i++) { if (procura_cod==NFCod) { teste=1; i=v+1; } else { if (i==v) { NFCod[v]=procura_cod; teste=0; } } } if (teste==1) { printf ("ERRO - O codigo ja existe\n"); } } while(teste==1); //Voltada para teste de condição (Se o código da NF já existir, informar erro e repetir) do { printf ("\nInforme o codigo do produto: "); scanf ("%d", &procura_cod); for (i=0; i<x; i++) { if (procura_cod==codigo) { printf ("Codigo encontrado!!\n"); vetor_ref=i; i=x; teste=0; NFCod_Produto[v]=procura_cod; //Grava no vetor o código do produto vendido, para futuras consultas } else { teste=1; } } if (teste==1) { printf ("Codigo nao encontrado!!\n"); } } while(teste==1); //Fim da condição de teste de CÓDIGO DE NF do //Verifica se o numero de procutos vendidos tem em estoque (se n tiver informa erro) { teste_est=0; printf ("Informe a quantidade de produtos vendidos: "); scanf ("%d", &procura_est); if (procura_est<=0) { printf ("ERRO - Estoque invalido\n"); teste_est=1; } else { if (procura_est>estoque[vetor_ref]) { printf ("ERRO - Nao ha esta quantidade em estoque\n"); teste_est=1; } else { estoque[vetor_ref]=estoque[vetor_ref]-procura_est; NFEstoque_Produto[v]=procura_est; //Grava no vetor a quantidade vendida, para futuras consultas } } } while (teste_est==1); //Fim da condição TESTE DE ESTOQUE precoNF=procura_est*preco[vetor_ref]; //Gera o preço da VENDA printf ("O total da nota e de: %.2f\n\n", precoNF); NFPreco_Produto[v]=precoNF; //Grava no vetor o preço, para futuras consultas v++; //Atualiza V, que é utilizado para mudar o loval de gravação no vetor, no caso de ser feita uma nova venda, O uso dela está relacionado a geração das NF´s printf ("\nDeseja registrar outra venda?\n[1] - Sim\n[2] - Nao\nSua escolha: "); scanf ("%d", &teste); system ("cls"); } while (teste==1); printf ("SIGVER - VENDAS\n\nO que deseja fazer:\n[1] - Voltar ao menu de Vendas\n[2] - Voltar ao menu pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; case 2: do { do //Voltada para repetição de procura por NF, caso o código digitado não existir { printf ("Informe o codigo da NF: "); scanf ("%d", &procura_cod); if (v==0) //Procura para ver se existem vendas e consequentemente NF´s registradas { printf ("Nao existem notas fiscais registradas\n"); } else { teste=0; for (i=0; i<=v; i++) //Faz a procura no vetor, se n encontarm informa erro e repete { if (procura_cod==NFCod) { printf ("O codigo da NF e: %d\n", NFCod); printf ("O codigo do produto vendido e: %d\n", NFCod_Produto); printf ("A quantidade vendida e: %d\n", NFEstoque_Produto); printf ("O preco da NF e: %.2f\n", NFPreco_Produto); teste=1; } } { if (teste==0) { printf ("\nERRO - Codigo nao encontrado\n"); } } } } while (teste==0); printf ("\nDeseja ver outra NF?\n[1] - Sim\n[2] - Nao\nSua escolha: "); scanf ("%d", &teste); system ("cls"); } while(teste==1); printf ("SIGVER - VENDAS\n\nO que deseja fazer:\n[1] - Voltar ao menu de Vendas\n[2] - Voltar ao menu pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; case 3: do //Uso do metodo bolha para ordenar codigos { troca=0; for (i=0; i<v; i++) { if (NFCod>NFCod[i+1]) { aux=NFCod[i+1]; NFCod[i+1]=NFCod; NFCod=aux; troca=1; } } } while (troca==1); //Fim do uso do metodo bolha printf ("##CODIGO NF # COD.PROD. VENDIDO # QTI. VENDIDA # PRECO TOTAL ##\n\n"); for (i=0; i<v; i++) { printf ("## %d # %d # %d # %.2f ##\n", NFCod, NFCod_Produto, NFEstoque_Produto, NFPreco_Produto); } printf ("\nRelatorio concluido\n\n"); printf ("\nSIGVER - VENDAS\n\nO que deseja fazer:\n[1] - Voltar ao menu de Vendas\n[2] - Voltar ao menu pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; case 4: opGeral=2; break; default: printf ("Opcao invalida\n\n"); printf ("\nO que deseja fazer:\n[1] - Voltar ao menu de Vendas\n[2] - Voltar ao menu pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; } system ("cls"); } while (opGeral==1); break; case 3: do { printf ("SIGVER - RELATORIOS\n\nQual tipo de relatorio que voce deseja gerar:\n[1] - Estoque completo\n[2] - Produto especifico\n[3] - Estoque zerado\n[4] - Voltar\nSua escolha: "); scanf ("%d", &op_Menu_Relat); //Captura de variável do menu relatorios system ("cls"); switch (op_Menu_Relat)//Leitura de variável para aplicação da condição { case 1: printf ("SIGVER - RELATORIOS\n\nRELATORIO COMPLETO DE ESTOQUE\n\n"); if (x==0) { printf ("Nenhum produto em estoque\n"); } else { do //Metodo bolha, para ordenar os codigos { troca=0; for (i=0; i<rel; i++) { if (codigo>codigo[i+1]) { aux=codigo[i+1]; codigo[i+1]=codigo; codigo=aux; aux=preco[i+1]; preco[i+1]=preco; preco=aux; aux=estoque[i+1]; estoque[i+1]=estoque; estoque=aux; troca=1; } } } while (troca==1); //Fim do uso do metodo bolha for (i=0; i<rel; i++) //Geração do relatório utilizando a pesquisa em vetores { printf ("||Codigo: %d\t||Preco: R$ %.2f\t||Quantidade em Estoque:%d\n", codigo, preco, estoque); } } printf ("\nO que deseja fazer:\n[1] - Voltar ao Menu Relatorio\n[2] - Voltar ao Menu Pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; case 2: printf ("SIGVER - RELATORIOS\n\nRELATORIO DE PRODUTO ESPECIFICO\n"); if (x==0) { printf ("\nNenhum produto em estoque\n"); } else { printf ("Informe o codigo: "); scanf ("%d", &procura_cod); for (i=0;i<=x; i++) //Procura do código do produto pedido { if (procura_cod==codigo) { printf ("\n||Codigo: %d\t||Preco: R$ %.2f\t||Quantidade em Estoque:%d\n", codigo, preco, estoque); i=x+1; } else { if (i==x) { printf ("\nCodigo nao encotrado\n"); } } } } printf ("\nO que deseja fazer:\n[1] - Voltar ao Menu Relatorio\n[2] - Voltar ao Menu Pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; case 3: printf ("SIGVER - RELATORIOS\n\nRELATORIO DE PRODUTOS COM ESTOQUE ZERADO\n\n"); teste=0; if (x==0) { printf ("\nNenhum produto em estoque\n"); } else { printf ("Estao com o estoque zerado os seguintes produtos:\n"); do //Metodo bolha, para ordenar os codigos { troca=0; for (i=0; i<rel; i++) { if (codigo>codigo[i+1]) { aux=codigo[i+1]; codigo[i+1]=codigo; codigo=aux; aux=preco[i+1]; preco[i+1]=preco; preco=aux; } } } while (troca==1); //Fim do uso do metodo bolha for (i=0; i<rel; i++) //Procura produtos com estoque igual a 0 e os informa { if (estoque==0) { printf ("# Codigo: %d # Preco: %.2f #\n", codigo, preco); teste=1; } } if (teste==0) { printf ("Nao ha nenhum produto com estoque zerado"); } } printf ("\nO que deseja fazer:\n[1] - Voltar ao Menu Relatorio\n[2] - Voltar ao Menu Pricipal\nSua escolha: "); scanf ("%d", &opGeral); break; case 4: opGeral=2; default: printf ("Opcao invalida\n\n"); break; } system ("cls"); } while (opGeral==1); break; case 4: printf ("SIGVER - SISTEMA DE GERENCIAMENTO DE VENDAS, ESTOQUE E RELATORIOS\n\nObrigado por utilizar este software\n\n"); //Mensagem final opGeral=0; system ("pause"); break; default: printf ("Opcao invalida\n\n"); system ("pause"); system ("cls"); opGeral=2; break; } } while (opGeral==2); //Fim do Do-While para repetição geral do sistema (votar ao menu principal) }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.