Guest User

Untitled

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