Advertisement
BadLuizPB

pratica 1 lincoln

Oct 28th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.17 KB | None | 0 0
  1. /*
  2.  * main.c
  3.  *
  4.  * Arquivo principal do projeto.
  5.  *
  6.  *  Criado em: 20 de abr de 2016
  7.  *  Autor: lincoln
  8.  *  Modificado por:
  9.  */
  10.  
  11. #include <stdio.h>
  12.  
  13. #define PRODUTO_PAO       1     /* numero que identifica o pao */
  14. #define PRODUTO_MORTADELA 2     /* numero que identifica mortadela */
  15. #define PRODUTO_BOLO      3     /* numero que identifica bolo */
  16. #define PRODUTO_LEITE     4     /* numero que identifica o leite */
  17. #define PRODUTOS_PERMITIDO 1000 /* Numero que identifca a quantidade maxima de produtos permitidos */
  18.  
  19. #define MAX_COMPRAS       200    /* numero total de compras que o programa aceita */
  20.  
  21. int produtoVendido[PRODUTOS_PERMITIDO];
  22. float totalProdutos[PRODUTOS_PERMITIDO];
  23. float totalCompras[MAX_COMPRAS]; /* armazena o total de cada compra */
  24. int nCompras = 0;                /* numero de compras ja registradas */
  25. int nProdutos;
  26. int i;
  27.  
  28. void ApresentaMenu(void)
  29. {
  30.     printf("\n\nOpcoes:\n"
  31.             "\n\t1 - Inicia uma venda"
  32.             "\n\t2 - Informa o total de vendas"
  33.             "\n\t3 - Informa a media das vendas"
  34.             "\n\t4 - Informa o valor da maior venda"
  35.             "\n\t5 - Lista todas as compras"
  36.             "\n\t6 - Informa qual o produto mais vendido"
  37.             "\n\t7 - Informa o total de venda por o produto"
  38.             "\n\t8 - Ordena compras"
  39.             "\n\t9 - Encerrar\n\n");
  40. }
  41.  
  42. /**
  43.  *  NovaVenda: Le o total vendido de cada produto e calcula o total dessa venda.
  44.  *             A propria funcao armazena os produtos vendidos e total da venda
  45.  *             nas variaveis adequadas.
  46.  *  Parametros:
  47.  *      (nenhum)
  48.  *  Retorno:
  49.  *      Retorna o total da venda.
  50.  *      Ou -1 caso não tenha mais espaço para armazenar.
  51.  */
  52. float NovaVenda(void)
  53. {
  54.     float totalVenda = 0.0, totalProduto;
  55.     int produto;
  56.  
  57.     if (nCompras >= MAX_COMPRAS){
  58.         /* Caso o array de compras esteja cheio, nao registrar nova compra */
  59.         printf("Nao ha mais espaco para armazenar nova compra.");
  60.         return -1;
  61.     }
  62.  
  63.     printf("\n\n ***** Iniciando a venda #%d ***** \n", nCompras + 1);
  64.     printf("Codigo dos produtos: "
  65.             "\n\t1 - Pao"
  66.             "\n\t2 - Mortadela"
  67.             "\n\t3 - Bolo"
  68.             "\n\t4 - Leite"
  69.             "\n\t0 - Sair\n\n");
  70.  
  71.     /** laco que pede indefinidamente um produto e o valor total vendido desse produto
  72.      * ate que seja digitado produto zero.
  73.      */
  74.     while(1) {
  75.         printf("Digite o codigo do produto a adicionar ou 0 para sair: ");
  76.         scanf("%d%*c", &produto);
  77.  
  78.         if (produto == 0) {
  79.             /* encerrar a compra */
  80.             break;
  81.         }
  82.  
  83.         printf("Digite o total vendido desse produto: ");
  84.         scanf("%f%*c", &totalProduto);
  85.  
  86.         totalVenda += totalProduto; /* adiciona o valor vendido na compra */
  87.         /* TODO 1: registrar o produto e o valor do produto vendido */
  88.         printf("Adicionado R$%.2f do produto %d a compra.\nSubtotal: R$%.2f.\n\n", totalProduto, produto, totalVenda);
  89.         produtoVendido[nProdutos]=produto;
  90.         totalProdutos[nProdutos]=totalProduto;
  91.  
  92.         nProdutos++;
  93.  
  94.  
  95.         totalCompras[nCompras]=totalVenda;
  96.  
  97.     }
  98.     totalCompras[nCompras]=totalVenda;
  99.  
  100.  
  101.     /* TODO 2: armazene o total da nova compra no array totalCompras aqui.
  102.      *       A primeira compra deve ficar no indice 0, a segunda 1, ...
  103.      *       Exemplo: totalCompras[indice] = valor;  */
  104.  
  105.     nCompras++; /* Finaliza essa compra, a próxima sera armazenada no proximo item */
  106.  
  107.     return totalVenda;
  108. }
  109.  
  110. /**
  111.  * TotalVendas: Informa o total geral vendido, somando todas as vendas já realizadas.
  112.  */
  113. float TotalVendas(void)
  114. {
  115.     float totalVendas = 0;
  116.     for(i=0;i<=nCompras-1;){
  117.  
  118.         totalVendas = totalVendas + totalCompras[i];
  119.         i++;
  120.     }
  121.    /* while(){
  122.  
  123.     }*/
  124.  
  125.     /* TODO percorrer cada elemento do array das compras ja vendidas
  126.      *      (ou seja, indice 0 ateh nCompras -1) e informar o total */
  127.  
  128.     return totalVendas;
  129. }
  130.  
  131. /**
  132.  * MediaVendas: Informa a media de valor das vendas.
  133.  */
  134. float MediaVendas(void)
  135. {
  136.     float mediaVendas = 0;
  137.  
  138.     mediaVendas = TotalVendas()/nCompras;
  139.     /* TODO calcular a media das vendas ja realizadas */
  140.  
  141.     return mediaVendas;
  142. }
  143.  
  144. /**
  145.  * MaiorVenda: Informa o valor da maior venda já realizada.
  146.  */
  147. float MaiorVenda(void)
  148. {
  149.     float maiorVenda = totalCompras[0];
  150.         for(i=0;i<=nCompras;){
  151.             if(maiorVenda<totalCompras[i]){
  152.                 maiorVenda=totalCompras[i];
  153.             }
  154.             i++;
  155.         }
  156.  
  157.  
  158.  
  159.  
  160.     return maiorVenda;
  161. }
  162.  
  163. /**
  164.  * ListaVendas: Lista o valor de cada venda já realizada.
  165.  */
  166. void ListaVendas(void)
  167. {
  168.     for(i=0;i<=nCompras-1;){
  169.         printf("Na %d Venda foi gasto %0.2f\n",i+1,totalCompras[i]);
  170.         i++;
  171.     }
  172. }
  173.  
  174. /**
  175.  * TotalVendidoPorProduto: Informa o total vendido do produto especificado.
  176.  *  Parametros:
  177.  *      produto (entrada): o codigo do produto
  178.  *  Retorno:
  179.  *      o total que foi vendido do produto especificado
  180.  */
  181. float TotalVendidoPorProduto(int produto)
  182. {
  183.     int total=0;
  184.     for(nProdutos=0;nProdutos!=1000;){
  185.  
  186.         if(produtoVendido[nProdutos]==produto){
  187.             total = total + totalProdutos[nProdutos];
  188.  
  189.         }
  190.         nProdutos++;
  191.     }
  192.  
  193.  
  194.     /* TODO calulcar o total vendido do produto passado no parametro */
  195.     return total;
  196. }
  197.  
  198. /**
  199.  * ProdutoMaisVendido: Informa o código do produto mais vendido.
  200.  */
  201. int ProdutoMaisVendido(void)
  202. {
  203.     float pao,mortadela,bolo,leite;
  204.     pao=TotalVendidoPorProduto(1);
  205.     mortadela=TotalVendidoPorProduto(2);
  206.     bolo=TotalVendidoPorProduto(3);
  207.     leite=TotalVendidoPorProduto(4);
  208.  
  209.     if(pao>mortadela && pao > bolo && pao > leite){
  210.         printf("O Produto mais vendido é pao com %0.2f vendas",pao);
  211.     }
  212.     else{
  213.          if(pao < mortadela && mortadela > bolo && mortadela > leite){
  214.         printf("O Produto mais vendido é mortadela com %0.2f vendas",mortadela);
  215.     }
  216.          if(bolo>mortadela && bolo > pao && bolo > leite){
  217.         printf("O Produto mais vendido é bolo com %0.2f vendas",bolo);
  218.     }
  219.          if(leite > mortadela && leite > bolo && pao < leite){
  220.         printf("O Produto mais vendido é leite com %0.02f vendas",leite);
  221.     }
  222.     }
  223.     /* TODO procurar qual produto mais aparece no array de produtos vendidos */
  224.  
  225.     return 0;
  226. }
  227.  
  228. float OrdenarCrescente(void){
  229.     float aux;
  230.     int o=0;
  231.     int y=0;
  232.     for(o=0;o<nCompras;o++){
  233.         for(y=o+1;y<nCompras;y++){
  234.             if(totalCompras[o]>totalCompras[y]){
  235.                 aux=totalCompras[o];
  236.                 totalCompras[o]=totalCompras[y];
  237.                 totalCompras[y]=aux;
  238.                             }
  239.         }
  240.     }
  241.  
  242.     for(o=0;o<nCompras;o++){
  243.         printf("Compras em ordens crescente %d  = %0.2f\t",o+1,totalCompras[o]);
  244.     }
  245.  
  246. }
  247.  
  248. /**
  249.  * Funcao main()
  250.  */
  251.  
  252.  
  253.  
  254.  
  255. int main()
  256. {
  257.     float totalVenda, total, media;
  258.     char opcao;
  259.  
  260.     /* Mensagem de boas vindas */
  261.     printf("Ola, esse programa registra as compras"
  262.             "de um mercadinho\n");
  263.  
  264.     /* Loop infinito com opcoes do usuario */
  265.     while(1) {
  266.         ApresentaMenu();
  267.         printf("Escolha uma opcao do menu: ");
  268.         scanf("%c%*c", &opcao);
  269.  
  270.         if (opcao == '9') {
  271.             break;
  272.         }
  273.  
  274.         switch (opcao) {
  275.             case '1':
  276.                 totalVenda = NovaVenda();
  277.                 printf("Venda #%d finalizada. Total: R$%.2f.\n", nCompras, totalVenda);
  278.                 break;
  279.             case '2':
  280.                 total = TotalVendas();
  281.                 printf("Total vendido em %d compras: R$ %.2f", nCompras, total);
  282.                 break;
  283.             case '3':
  284.                 media= MediaVendas();
  285.                 printf("A Média de %d compras  é R$%0.2f\n",nCompras,media);
  286.                 break;
  287.             case '4':
  288.                 printf("A Maior venda foi %0.2f",MaiorVenda());
  289.                 break;
  290.             case '5':
  291.                 ListaVendas();
  292.                 break;
  293.             case '7':
  294.                 printf("O total Vendido de Pao foi : %0.2f\n", TotalVendidoPorProduto(1));
  295.                 printf("O total Vendido de mortadela foi : %0.2f\n", TotalVendidoPorProduto(2));
  296.                 printf("O total Vendido de bolo foi : %0.2f\n", TotalVendidoPorProduto(3));
  297.                 printf("O total Vendido de leite foi : %0.2f\n", TotalVendidoPorProduto(4));
  298.                 break;
  299.             case '6':
  300.                     ProdutoMaisVendido();
  301.                     break;
  302.             case '8':
  303.                 OrdenarCrescente();
  304.                 break;
  305.  
  306.  
  307.             /* TODO: adicionar demais opcoes */
  308.             default:
  309.                 printf("Opcao \'%c\' invalida, tente novamente.\n", opcao);
  310.         }
  311.     }
  312.  
  313.     printf("Obrigado por utilizar esse programa.");
  314.  
  315.     return 0;
  316. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement