Esempio n. 1
0
void nomeVoo (No *lista) /*gera o nome dos voos*/
{
  No *p;

  for(p = lista; p != NULL; p = p -> anterior) /*itera por toda lista para inserir os nomes*/
  {
    if(p -> estado == 'A')
    {      
      p -> nome[0] = 'A';
      p -> nome[1] = 'B';
      
    }
    else
    {  
      p -> nome[0] = 'C';
      p -> nome[1] = 'D';

    }    
    p -> nome[2] = geraRand(48,57); /*na tabela asc os numeros de 48 a 57*/
    p -> nome[3] = geraRand(48,57); /*sao caracteres de numeros*/
    p -> nome[4] = geraRand(48,57); /*desse modo aqui esta sendo adicionado */
    p -> nome[5] = geraRand(48,57); /*numeros a string nome*/
    p -> nome[6] = '\0'; /*encerra a string como sempre*/
    
  }  
}
Esempio n. 2
0
int main() 
{
  /*VARIAVEIS*/
  int Naproximacao; /*recebe o numero de aproximacoes*/
  int Ndecolagem; /*recebe o numero de docolagens*/
  
  /*declaracao dos voos*/
  No *voos;
  
  /*declaracao das pistas*/
  Fila *pista1; 
  Fila *pista2;
  Fila *pista3;
  
  /*aloca memoria*/
  pista1 = malloc(sizeof(Fila)); /*somente dec*/
  pista2 = malloc(sizeof(Fila)); /*dec e ater*/
  pista3 = malloc(sizeof(Fila)); /*dec e ater*/ 
  voos = malloc(sizeof(No));
  
  /*FUNCOES*/
  criaLista(voos); /*cria a lista com as informacoes*/
  criaPista(pista1);/*cria a pista 1*/
  criaPista(pista2);/*cria a pista 2*/
  criaPista(pista3);/*cria a pista 3*/
  
  srand(time(NULL));/*pega a hora a sua como base para calculos aleatorios*/
  Naproximacao = geraRand(0, 26); /*define o numero de proximacoes que terao no programa*/
  Ndecolagem = geraRand(0, 16); /*define o numero de decolagens que terao no programa*/
  voos = geraVoos(Naproximacao,voos, 1); /*perceber que aqui temos o final da lista entao o proximo e NULL*/
  voos = geraVoos(Ndecolagem,voos, 2); /*perceber que aqui temos o final da lista entao o proximo e NULL*/
  nomeVoo(voos); /*gera os nomes dos voos*/

  mostra(voos);
  preenchePistas(voos, pista1, pista2, pista3);
  /*clear();*/
  liberaPistas(pista1, pista2, pista3);
  
  return 0;
}
Esempio n. 3
0
No* insereLista (int estado, No *lista)
{  
  No *temp;
  if (lista -> comb == -1) /*testa se a lista esta vazia*/ 
  {
    if (estado == 1)
    {      
      lista -> estado = 'A';      
    }/*atribui o estado do aviao*/
    else
    {      
      lista -> estado = 'D';      
    }

    lista -> comb = geraRand(0,12);
    
    return lista;
  }/*testa se a lista esta vazia*/
  
  temp = malloc(sizeof(No));/*aloca memoria para o ponteiro */
  
  temp -> comb = geraRand(0,12);/*insere o combustivel aleatoriamente*/
  if(estado == 1)
  {  
    temp -> estado = 'A';       
  }
  else
  {    
    temp -> estado = 'D';          
  }
  
  temp -> proximo = lista -> proximo;/*aponta no sentido do final*/
  temp -> anterior = lista;/*aponta no sentido do inicio*/
  lista -> proximo = temp; /*faz o apontamento*/
  return temp;
}
Esempio n. 4
0
int main()
{
    time_t hora;
    struct tm *timeinfo;
    int Nvoos;
    int Ndecolagens;
    int Npousos;
    
    char codigo_voo[7];
    char tipo_voo;
    int combustivel_voo;
    int aviso_voo;
    int pista_voo = 1;
    
    char codigos[64][7] = {"VG3001", "JJ4404", "LN7001", "TG1501",
    "GL7602", "TT1010", "AZ1009", "AZ1008", "AZ1010", "TG1506", "VG3002", "JJ4402", "GL7603",
    "RL7880", "AL0012", "TT4544", "TG1505", "VG3003", "JJ4403", "JJ4401", "LN7002", "AZ1002",
    "AZ1007", "GL7604", "AZ1006", "TG1503", "AZ1003", "JJ4403", "AZ1001", "LN7003", "AZ1004",
    "TG1504", "AZ1005", "TG1502", "GL7601", "TT4500", "RL7801", "JJ4410", "GL7607", "AL0029",
    "VV3390", "VV3392", "GF4681", "GF4690", "AZ1020", "JJ4435", "VG3010", "LF0920", "AZ1065",
    "LF0978", "RL7867", "TT4502", "GL7645", "LF0932", "JJ4434", "TG1510", "TT1020", "AZ1098",
    "BA2312", "VG3030", "BA2304", "KL5609", "KL5610", "KL5611"};
    
    srand(time(NULL));
    
    //Gerador de número de vôos, pousos e decolagens
    Nvoos = geraRand (0, 64);
    Ndecolagens = geraRand (0, Nvoos);
    Npousos = Nvoos - Ndecolagens;
    int voos = 0;
    int dec = Ndecolagens;
    int pouso = Npousos;
     
    FILA fila = cria_fila();
    
    for(voos = 1; voos <= Nvoos; voos++){
             strcpy(codigo_voo, codigos[voos]);
             
             if(pouso > 0 && dec >0){
                      if(geraRand(0,1)){
                                  tipo_voo = 'D';
                                  dec--;
                                  combustivel_voo = geraRand (24, 48);
                                  pista_voo = ((voos-1)%3)+1;
                                  }
                      else{
                           tipo_voo = 'P';
                           pouso--;
                           combustivel_voo = geraRand (0, 12);
                           
                           if (combustivel_voo == 0)
                                                   aviso_voo = 1;
                           
                           else
                                aviso_voo = 0;
                                
                           
                           pista_voo = ((voos - 1)%3) + 1;
                           if(pista_voo == 3 && tipo_voo == 'P' && aviso_voo == 0){
                                        pista_voo = ((voos)%3) + 1;
                                        }
                           }
                      }
                      
             else if (pouso == 0 && dec !=0){
                  tipo_voo = 'D';
                  dec--;
                  combustivel_voo = geraRand (24, 48);
                  pista_voo = ((voos-1)%3) + 1;
                  }
                  
             else if (pouso != 0 && dec == 0){
                  tipo_voo = 'P';
                  pouso--;
                  combustivel_voo = geraRand (0, 12);
                  
                  if (combustivel_voo == 0){
                                          aviso_voo = 1;
                                          }
                  else{
                       aviso_voo = 0;
                       }
                  
                  pista_voo = ((voos - 1)%3) + 1;
                  if(pista_voo == 3 && tipo_voo == 'P' && aviso_voo == 0){
                               pista_voo = ((voos)%3) + 1;
                               }
                  }
                  
             insere_fila(fila, codigo_voo, tipo_voo, combustivel_voo, aviso_voo, pista_voo);
             }
    
    printf ("\n              Aeroporto Internacional de Brasilia\n");
    hora = time(NULL);
    timeinfo = localtime(&hora);
    printf("                   Hora atual: %02d:%02d:%02d\n", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
    printf("                       Fila de pedidos:\n");
    printf("                          Nvoos: %d\n", Nvoos);
    printf("                       Ndecolagens: %d\n", Ndecolagens);
    printf("                         Npousos: %d\n\n", Npousos);
    printf("             Fila designada (na ordem) por pistas:\n\n");
    printf("                     ******Pista 1:******\n                           Pousos:\n\n");
    ver_fila(fila, 'P', 1);
    printf("\n                         Decolagens:\n\n");
    ver_fila(fila, 'D', 1);
    printf("\n                     ******Pista 2:******\n                           Pousos:\n\n");
    ver_fila(fila, 'P', 2);
    printf("\n                         Decolagens:\n\n");
    ver_fila(fila, 'D', 2);
    printf("\n                     ******Pista 3:******\n                           Pousos:\n\n");
    ver_fila(fila, 'P', 3);
    printf("\n                         Decolagens:\n\n");
    ver_fila(fila, 'D', 3);
    printf("\n");
     
    libera_fila (fila);
    return 0;   
}