Guest User

Untitled

a guest
Dec 15th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.34 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define CAPACIDADE 10
  5. #define TAMANHO_NOME 6
  6. #define TAMANHO_DATA 8
  7.  
  8. typedef struct pacote {
  9.     int numero, cod, ano, ocupado;
  10.     float peso;
  11.     char nome[TAMANHO_NOME], data[TAMANHO_DATA];
  12. } pacote;
  13.  
  14. void cadastra_pacote(pacote vet[]) // cadastra todos os pacotes gbl_15@hotmail.com
  15. {
  16.     int num_pacote, i, opc;
  17.     for(i=0; i<CAPACIDADE ; i++)
  18.     {
  19.          if(vet[i].ocupado==0)
  20.          {
  21.              num_pacote=i;
  22.              i=CAPACIDADE;
  23.          }
  24.      }                  
  25.     if(vet[num_pacote].ocupado == 0)
  26.       {
  27.         vet[num_pacote].ocupado = 1;
  28.         printf("Insira o codigo do pacote:");
  29.         scanf("%d", &opc);
  30.         vet[num_pacote].cod=opc;
  31.         //switch(opc)
  32.         //{
  33.           // case 1:
  34.               //    vet[num_pacote].nome="Milho";
  35.               //    break;
  36.           // case 2:
  37.             //      vet[num_pacote].nome="Feijao";
  38.              //     break;    
  39.          //  case 3:
  40.          //         vet[num_pacote].nome="Trigo";
  41.             //      break;
  42.           // case 4:
  43.            //       vet[num_pacote].nome="Arroz";
  44.             //      break;      
  45.           // case 5:
  46.               //    vet[num_pacote].nome="Soja";
  47.              //     break;
  48.          //  }
  49.         printf("Insira a data de validade do pacote:");
  50.         scanf("%s", vet[num_pacote].data);
  51.         printf("Insira o ano do pacote");
  52.         scanf("%d", &vet[num_pacote].ano);
  53.         printf("Insira o peso do pacote:");
  54.         scanf("%f", &vet[num_pacote].peso);
  55.       }
  56.     printf("\n\n");
  57. }
  58.  
  59. void localiza_pacote(pacote vet[])// localiza todos os pacotes
  60. {
  61.     int i;
  62.     printf("Entre com o numero do pacote:");
  63.     scanf("%d", &i);
  64.             if (vet[i].ocupado==1)
  65.             {
  66.                 printf("\tTipo: %s\n", vet[i].nome);
  67.                 printf("\tCodigo do pacote: %d", vet[i].cod);
  68.                 printf("\tAno de producao: %d\n", vet[i].ano);
  69.                 printf("\tData de validade: %s\n", vet[i].data);
  70.                 printf("\tpeso: %f quilos\n", vet[i].peso);
  71.             } else
  72.              {
  73.                 printf("\tPacote nao cadastrado.\n");
  74.             }
  75.  
  76.         }
  77.  
  78. void cancela_pacote(pacote vet[])
  79. {
  80.     int num_pacote;
  81.     printf("Digite o numero do pacote: ");
  82.     scanf("%d", &num_pacote);
  83.     if(vet[num_pacote].ocupado == 1)
  84.       {
  85.         vet[num_pacote].ocupado = 0;
  86.         printf("pacote excluido com sucesso.");
  87.     }
  88.     else
  89.       {
  90.         printf("O pacote nao existe.");
  91.     }
  92.     printf("\n\n");
  93. }
  94.  
  95. void exibir_todos(pacote vet[])// exibe todos os pacotes
  96. {
  97.      int i;
  98.      for(i=0; i<CAPACIDADE; i++)
  99.      {
  100.        if(vet[i].ocupado==1)
  101.        {
  102.        printf("\tNumero do pacote: %d",vet[i].numero);
  103.        printf("\tTipo: %s\n", vet[i].nome);
  104.        printf("\tCodigo do pacote: %d", vet[i].cod);
  105.        printf("\tAno de producao: %d\n", vet[i].ano);
  106.        printf("\tData de validade: %s\n", vet[i].data);
  107.        printf("\tpeso: %f quilos\n", vet[i].peso);
  108.        }
  109.        else
  110.        {
  111.          printf("\tNumero do pacote: %d",vet[i].numero);
  112.          printf("\tVazio");
  113.         }
  114.       }
  115. }
  116. void ordenar_pacotes(pacote vet[] , pacote ord[]) // ordena pacote pelo codigo
  117. {
  118.     int i, j, num_pacote;
  119.     num_pacote=0;
  120.     for(j=1; j<=5; j++)
  121.      {
  122.        for(i=0; i<CAPACIDADE; i++)
  123.         {
  124.           if(vet[i].ocupado == 1)
  125.           {      
  126.               if(vet[i].cod == j)
  127.                 {
  128.                   ord[num_pacote].numero=vet[i].numero;
  129.                   //ord[num_pacote].nome=vet[i].nome;
  130.                   ord[num_pacote].ano=vet[i].ano;
  131.                   //ord[num_pacote].data=vet[i].data;
  132.                   ord[num_pacote].peso=vet[i].peso;
  133.                   num_pacote++;
  134.                  }  
  135.             }
  136.           }
  137.         }
  138.        for(i=0; i<num_pacote; i++)
  139.        {
  140.               printf("\tNumero do pacote: %d",ord[i].numero);
  141.               printf("\tTipo: %s\n", ord[i].nome);
  142.               printf("\tCodigo do pacote: %d", ord[i].cod);
  143.               printf("\tAno de producao: %d\n", ord[i].ano);
  144.               printf("\tData de validade: %s\n", ord[i].data);
  145.               printf("\tpeso: %f quilos\n", ord[i].peso);
  146.           }    
  147. }        
  148. int main()
  149. {
  150.     int i, opc;
  151.     opc = 0;
  152.     pacote suprimentos[CAPACIDADE], ord[CAPACIDADE];
  153.  
  154.     for (i = 0; i < CAPACIDADE; i++)
  155.     {
  156.         suprimentos[i].ocupado = 0;
  157.     };
  158.  
  159.  
  160. do{
  161.     printf("Favor digitar\n");
  162.     printf("1 - cadastra pacote\n");
  163.     printf("2 - localiza um pacote\n");
  164.     printf("3 - excluir pacote\n");
  165.     printf("4 - Exibir todos os pacotes\n");
  166.     printf("5 - Exibe pacotes por tipo\n");
  167.     printf("6 - Ordena os pacotes por peso\n");
  168.     printf("7 - Sair\n");
  169.     printf("Opcao: ");
  170.     scanf("%d", &opc);
  171.  
  172.     switch(opc){
  173.         case 1:
  174.             cadastra_pacote(suprimentos);
  175.             break;
  176.         case 2:
  177.             localiza_pacote(suprimentos);
  178.             break;
  179.         case 3:
  180.             cancela_pacote(suprimentos);
  181.             break;
  182.         case 4:
  183.             exibir_todos(suprimentos);
  184.             break;
  185.         case 5:
  186.             ordenar_pacotes(suprimentos, ord);
  187.             break;
  188.         //case 6:
  189.             //ordenar_peso(aviao);
  190.             //break;
  191.         }
  192. } while(opc!=7);
  193.     return 0;
  194. }
Add Comment
Please, Sign In to add comment