Facebook
From jiji, 3 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 74
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. struct Pipoca {
  5.  
  6.         int capacidade;
  7.         float *dados;
  8.         int primeiro;
  9.         int ultimo;
  10.         int nItens;
  11.         int serie;
  12.         int data;
  13.         int hora;
  14.         int sabor;
  15.  
  16. };
  17.  
  18. void criarFila( struct Pipoca *f, int c ) {
  19.  
  20.         f->capacidade = c;
  21.         f->dados = (float*) malloc (f->capacidade * sizeof(float));
  22.         f->primeiro = 0;
  23.         f->ultimo = -1;
  24.         f->nItens = 0;
  25.         f->serie = 0;
  26.         f->data = 0;
  27.         f->hora = 0;
  28.         f->sabor= 0;
  29.  
  30. }
  31.  
  32. void inserir(struct Pipoca *f, int v, int serieParam, int horaParam, int dataParam, int saborParam) {
  33.  
  34.         if(f->ultimo == f->capacidade-1)
  35.                 f->ultimo = -1;
  36.        
  37.         f->data = dataParam;
  38.         f->hora = horaParam;
  39.         f->sabor = saborParam;
  40.         f->serie = serieParam;
  41.         f->ultimo++;
  42.         f->dados[f->ultimo] = v;
  43.         f->nItens++;
  44.  
  45. }
  46.  
  47. int remover( struct Pipoca *f ) {
  48.  
  49.         int temp = f->dados[f->primeiro++];
  50.  
  51.         if(f->primeiro == f->capacidade)
  52.                 f->primeiro = 0;
  53.  
  54.         f->nItens--;  
  55.         return temp;
  56.  
  57. }
  58.  
  59. int estaVazia( struct Pipoca *f ) {
  60.  
  61.         return (f->nItens==0);
  62.  
  63. }
  64.  
  65. int estaCheia( struct Pipoca *f ) {
  66.  
  67.         return (f->nItens == f->capacidade);
  68. }
  69.  
  70. void mostrarFila(struct Pipoca *f){
  71.  
  72.         int cont, i;
  73.  
  74.         for ( cont=0, i= f->primeiro; cont < f->nItens; cont++){
  75.  
  76.                 printf("%.2f\t",f->dados[i++]);
  77.                 printf("\n hora de fab %d ", f->hora);
  78.                 printf("\n data de fab %d ", f->data);
  79.                 printf("\n serie de fab %d ", f->serie);
  80.                 printf("\n hora de fab %c ", f->sabor);
  81.  
  82.                 if (i == f->capacidade)
  83.                         i=0;
  84.  
  85.         }
  86.         printf("\n\n");
  87.  
  88. }
  89.  
  90. int main () {
  91.  
  92.         int opcao, capa, serie, data, hora, sabor;
  93.         int valor;
  94.         struct Pipoca umaFila;
  95.  
  96.         // cria a fila
  97.         printf("\nCapacidade da fila? ");
  98.         scanf("%d",&capa);
  99.         criarFila(&umaFila, capa);
  100.  
  101.         while( 1 ){
  102.  
  103.                 printf("\n1 - Inserir elemento\n2 - Remover elemento\n3 - Mostrar Fila Pipoca\n0 - Sair\n\nOpcao? ");
  104.                 scanf("%d", &opcao);
  105.  
  106.                 switch(opcao){
  107.  
  108.                         case 0: exit(0);
  109.  
  110.                         case 1:
  111.                                 if (estaCheia(&umaFila)){
  112.  
  113.                                         printf("\nFila Cheia!!!\n\n");
  114.  
  115.                                 }
  116.                                 else {
  117.  
  118.                                         printf("\nValor do elemento a ser inserido? ");
  119.                                         scanf("%f", &valor);
  120.                                         printf("\nSerie de fab pipoca ");
  121.                                         scanf("%d", &serie);
  122.                                         printf("\nHora de fab pipoca ");
  123.                                         scanf("%d", &hora);
  124.                                         printf("\nData de fab pipoca ");
  125.                                         scanf("%d", &data);
  126.                                         printf("\nSabor de fab pipoca- 1- chocolate 2-mel 3-caramelo ");
  127.                                         scanf("%d", &sabor);
  128.                                         inserir(&umaFila,valor,serie,hora,data,sabor);
  129.  
  130.                                 }
  131.  
  132.                                 break;
  133.  
  134.                         case 2:
  135.                                 if (estaVazia(&umaFila)){
  136.  
  137.                                         printf("\nFila vazia!!!\n\n");
  138.  
  139.                                 }
  140.                                 else {
  141.  
  142.                                         valor = remover(&umaFila);
  143.                                         printf("\n%1f removido com sucesso\n\n", valor) ;
  144.  
  145.                                 }
  146.                                 break;
  147.  
  148.                                 case 3:
  149.                                         if (estaVazia(&umaFila)){
  150.  
  151.                                                 printf("\nFila vazia!!!\n\n");
  152.  
  153.                                         }
  154.                                         else {
  155.  
  156.                                                 printf("\nConteudo da fila => ");
  157.                                                 mostrarFila(&umaFila);
  158.  
  159.                                         }
  160.                                         break;
  161.  
  162.                                 default:
  163.                                         printf("\nOpcao Invalida\n\n");
  164.  
  165.                 }
  166.                 return 0;
  167.         }
  168. }