Ir ao conteúdo
  • Cadastre-se

Bruno carlos

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Preciso adicionar uma parte ao código que emita um relatório final com as seguintes informações: - numero total de itens vendidos de cada produto - total pago para cada produto - total arrecadado - média de valor pago por pedido Estou em dúvida se crio uma funcão e nela adiciono os dados para quando o pedido é encerrado/solicitada uma nova venda, ou se adiciono mais um while ao inicio do código, para caso a opção de finalizar/nova venda seja selecionada, os dados armazenados nas variaveis sejam apresentados conforme solicitado, poderiam me auxiliar? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define ITENS_MENU 5 int codigos[ITENS_MENU] = { 100,101,102,103,104 } ; char *produtos[ITENS_MENU] = { "Refrigerante", "Casquinha Simples", "Casquinha Dupla", "Sundae", "Banana Split" } ; float precos[ITENS_MENU] = { 3.5, 4, 5, 6, 8.5 } ; int ped_prod[ITENS_MENU]; // o pedido máximo terá ITENS_MENU itens int ped_qtde[ITENS_MENU]; int tot_itens; // total de itens no pedido corrente // essa função exibe o cardápio void exibe_menu() { int i; printf("\nMenu\n\nCod Produto Preco\n"); for (i=0;i<5;i++){ printf("%3d %18s %6.2f\n",codigos[i],produtos[i],precos[i]); }; }; // essa função adicione um novo item (se a quantidade for > 0) // se o item já existir, altera a quantidade // se o item não existir e a quantidade for >0, adiciona // se o item existir e a quantidade for 0, remove o item void novo_item( int produto, int qtde) { int i; int j; int nao_achou = 1; for (i=0;i<tot_itens;i++) { if ( ped_prod[i] == produto) { // achou nao_achou =0; // avisa que achou if (qtde >0) { // qtde > 0 ped_qtde[i] = qtde; // altera qtde break; } else { for (j=i;j<tot_itens;j++){ // qtde = 0 !! vamos tirar ped_prod[j] = ped_prod[j+1]; // tira o elemento do vetor ped_qtde[j] = ped_prod[j+1]; }; tot_itens--; // diminui o número de itens pedidos break; }; }; }; if (nao_achou) { // não achou, vamos incluir o item no pedido if (qtde>0) { // mas só se a qtde for > 0 ped_prod[tot_itens] = produto; ped_qtde[tot_itens] = qtde; tot_itens++; // incluimos +1 item no pedido }; }; } // exibe os itens do pedido até o momento void exibe_pedido() { int i; int wint; // para calcular o índice dos itens float subtotal =0; printf("\nSeu pedido atual eh: \n"); for (i=0;i<tot_itens;i++) { wint = ped_prod[i]-100; printf("%3d %18s %6.2f X %3d = %6.2f\n",ped_prod[i],produtos[wint],precos[wint],ped_qtde[i],precos[wint]*ped_qtde[i]); subtotal +=precos[wint]*ped_qtde[i]; }; printf(" Total %8.2f\n",subtotal); } int main() { int wopcao =1; int i; int wqtde; int continua =1; float total; int wint; int geralPedido; while (continua) { wopcao = 1; // zerar o pedido printf("\nIniciando novo pedido\n"); total = 0; tot_itens =0; for (i=0;i<100;i++){ ped_prod[i] = 0; ped_qtde[i] = 0; }; while (wopcao) { if (tot_itens) { exibe_pedido(); } else { exibe_menu(); }; printf("\nInforme um codigo de produto ou selecione a opcao desejada\n"); printf("0=fechar, 1=revisar o pedido 2=exibir menu -> "); scanf("%d",&wopcao); switch (wopcao) { case 1: exibe_pedido(); break; case 2: exibe_menu(); break; case 0: printf("\n--Pedido encerrado--\n"); break; default: if (wopcao < codigos[0] || wopcao > codigos[ITENS_MENU-1]) { printf("Opcao errada. Informe um codigo valido\n"); } else { do { printf("Informe a quantidade desejada: "); scanf("%d",&wqtde); if (wqtde >=0) { novo_item( wopcao,wqtde); }; } while (wqtde <0); }; }; }; if (tot_itens) { exibe_pedido(); total = 0; for (i=0;i<tot_itens;i++){ wint = ped_prod[i]-100; total += precos[wint] * ped_qtde[i]; }; printf("\nSeu pedido vai custar %6.2f.\n",total); }; printf ("Tecle 1 para novo pedido ou 0 para fechar o caixa: \n"); scanf("%d",&continua); }; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...