Advertisement
SergioRP

Lista Compras Edilson 14/09

Sep 14th, 2016
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.94 KB | None | 0 0
  1. /*
  2.  Utilizando estrutura de dados e funcao crie um programa utilizando a linguagem C para
  3.  armazenar a lista de compras de uma pessoa, sendo que na lista hΓ‘:
  4.  - O numero do item;
  5.  - O nome do produto;
  6.  - A quantidade;
  7.  - O valor do produto.
  8.  A lista terΓ‘ 10 itens de produtos.
  9.  
  10.  Criar uma funcao para listar:
  11.  - Os produtos comprados;
  12.  - A quantidade total de produtos;
  13.  - O valor total da lista de compras.
  14.  
  15.  Criar tambem um menu para:
  16.  - Permitir o cadastro dos produtos na lista de compras;
  17.  - A visualizacao dos produtos na lista de compras.
  18.  */
  19.  
  20. #include <stdio.h>
  21. #include <stdlib.h>
  22. #include <string.h>
  23. #define MAX 10
  24.  
  25. struct produto {
  26.     int codigo;
  27.     char nome[30];
  28.     int qtd;
  29.     float valor;
  30. };
  31.  
  32. struct produto lista[MAX];
  33. int produtos = 0, i;
  34.  
  35. void cadastrar_produto(struct produto *produto) {
  36.  
  37.     if (produtos == MAX) {
  38.         printf("Sua lista esta cheia!");
  39.         system("pause");
  40.         return;
  41.     }
  42.  
  43.     printf("Codigo do produto: ");
  44.     scanf("%i", &produto->codigo);
  45.     printf("Nome do produto: ");
  46.     fflush(stdin);
  47.     gets(produto->nome);
  48.     printf("Quantidade do produto: ");
  49.     scanf("%i", &produto->qtd);
  50.     printf("Valor da unidade: ");
  51.     scanf("%f", &produto->valor);
  52.  
  53.     produtos++;
  54.  
  55. }
  56.  
  57. void listar_compras(struct produto lista[]) {
  58.     if (produtos == 0)
  59.         printf("Sua lista esta vazia!\n");
  60.     else {
  61.         float total = 0;
  62.         int itens = 0;
  63.         for (i = 0; i < produtos; i++) {
  64.             printf("%i - %s (R$%.2f): %i itens\n", lista[i].codigo, lista[i].nome, lista[i].valor, lista[i].qtd);
  65.             total += ((float) lista[i].qtd * lista[i].valor);
  66.             itens += lista[i].qtd;
  67.         }
  68.         printf("Total de produtos: %i\n", itens);
  69.         printf("Preco total: R$%.2f\n", total);
  70.     }
  71.     system("pause");
  72. }
  73.  
  74. int menu() {
  75.  
  76.     int opcao;
  77.  
  78.     printf("********************************************\n");
  79.     printf("**                                        **\n");
  80.     printf("**        LOJINHA MAROTA DO EDILSON       **\n");
  81.     printf("**                                        **\n");
  82.     printf("**        1 - Cadastrar  Produto          **\n");
  83.     printf("**        2 - Visualizar Produtos         **\n");
  84.     printf("**        0 - Sair                        **\n");
  85.     printf("**                                        **\n");
  86.     printf("**  Voce ainda pode escolher %i produtos  ", MAX - produtos); if (MAX - produtos < 10) printf(" "); printf("**\n");
  87.     printf("**                                        **\n");
  88.     printf("********************************************\n");
  89.  
  90.     opcao:
  91.     printf("Digite sua opcao: ");
  92.     scanf("%i", &opcao);
  93.  
  94.     if (opcao > 2 || opcao < 0) {
  95.         goto opcao;
  96.     }
  97.  
  98.     return opcao;
  99. }
  100.  
  101. int main() {
  102.     int opcao;
  103.  
  104.     do {
  105.         opcao = menu();
  106.         switch(opcao) {
  107.             case 1:
  108.                 cadastrar_produto(&lista[produtos]);
  109.                 break;
  110.             case 2:
  111.                 listar_compras(lista);
  112.                 break;
  113.             default:
  114.                 break;
  115.         }
  116.  
  117.         system("cls");
  118.  
  119.     } while (opcao != 0);
  120.     printf("Programa finalizado!\n");
  121.     system("pause");
  122.     return 0;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement