Advertisement
luciana1237

Untitled

Dec 1st, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 19.86 KB | None | 0 0
  1. #define imprime show_decolagem()
  2. #define LIMPAR  printf("\033[H")
  3.  
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8. #include <time.h>
  9. #include <unistd.h>
  10.  
  11.  
  12. struct pista_decolagem
  13. {
  14.     int prateleiras[5],prateleirasf[5];
  15.     unsigned int id,idf[5];
  16.  
  17.    
  18.     union
  19.     {
  20.         struct pista_decolagem *prox;
  21.     };
  22. };
  23.  
  24. typedef struct Fila_d
  25. {
  26.     struct pista_decolagem *dados;
  27.     union
  28.     {
  29.         struct pista_decolagem *fim,*inicio;
  30.     };
  31. }fila_d;
  32.  
  33. struct tempo_t
  34. {
  35.     int Hh,Mm;
  36.    
  37. };
  38.  
  39. struct pista_aterrissagem
  40. {
  41.     int prateleiras[5],v[5];
  42.     unsigned int id,idf;
  43.  
  44.     union
  45.     {
  46.         struct pista_aterrissagem *next;
  47.     };
  48. };
  49.  
  50. typedef struct fila_a
  51. {
  52.     struct pista_aterrissagem *dates;
  53.  
  54.     union
  55.     {
  56.         struct pista_aterrissagem *begin,*end;
  57.     };
  58.  
  59. }queue;
  60.  
  61. struct tempo_a
  62. {
  63.     unsigned int Hh,Mm;
  64. };
  65.  
  66. int fall=0,count=0,count1=0,fail=0;
  67.  
  68. void show_decolagem()
  69. {
  70.     for(int i=0; i <1; i++){
  71.        
  72.         sleep(2);
  73.         printf("\033[H");
  74.     printf("\n\t      _  _                                                 ");
  75.     printf("\n\t    ( `   )_                                               ");
  76.     printf("\n\t   (    )    `)                                            ");
  77.     printf("\n\t  (_   (_ .  _) _)                                         ");
  78.     printf("\n\t          ______                                           ");
  79.     printf("\n\t         _L _~-L___                                        ");
  80.     printf("\n\t  =  = ==(____AA____D                                      ");
  81.     printf("\n\t            L_____L___________________,-~~~~~~~`-.._       ");
  82.     printf("\n\t  - -        /     o O o o o o O O o o o o o o O o  |L_    ");
  83.     printf("\n\t    --       `~-.__        ___..----..                 )   ");
  84.     printf("\n\t      --            `---~~L___________/------------`````   ");
  85.     printf("\n\t        -          =  ===(_________D                       ");
  86.     }
  87.     for(int i=0; i <1;i++)
  88.     {
  89.         sleep(2);
  90.         printf("\033[H");
  91.  
  92.     printf("\n\t      _  _                                                                    ");
  93.     printf("\n\t    ( `   )_                                                                  ");
  94.     printf("\n\t   (    )    `)                                                               ");
  95.     printf("\n\t  (_   (_ .  _) _)                                                            ");
  96.     printf("\n\t                             ______                                           ");
  97.     printf("\n\t                            _L _~-L___                                        ");
  98.     printf("\n\t                     =  = ==(____AA____D                                      ");
  99.     printf("\n\t                               L_____L___________________,-~~~~~~~`-.._       ");
  100.     printf("\n\t                     ---        /     o O o o o o O O o o o o o o O o  |L_    ");
  101.     printf("\n\t                       --       `~-.__        ___..----..                 )   ");
  102.     printf("\n\t                       ---            `---~~L___________/------------`````    ");
  103.     printf("\n\t                        --            =  ===(_________D                       ");
  104.     }
  105.     for(int y=0; y <1; y++)
  106.     {
  107.         sleep(2);
  108.         printf("\033[H");
  109.     printf("\n\t      _  _                                                                                       ");
  110.     printf("\n\t    ( `   )_                                                                                     ");
  111.     printf("\n\t   (    )    `)                                                                                  ");
  112.     printf("\n\t  (_   (_ .  _) _)                                                                               ");
  113.     printf("\n\t                                                ______                                           ");
  114.     printf("\n\t                                               _L _~-L___                                        ");
  115.     printf("\n\t                                        =  = ==(____AA____D                                      ");
  116.     printf("\n\t                                                  L_____L___________________,-~~~~~~~`-.._       ");
  117.     printf("\n\t                                        - -        /     o O o o o o O O o o o o o o O o  |L_    ");
  118.     printf("\n\t                                          --       `~-.__        ___..----..                 )   ");
  119.     printf("\n\t                                            --            `---~~L___________/------------`````   ");
  120.     printf("\n\t                                              -          =  ===(_________D                       ");
  121.     }
  122.    
  123.     for(int j=0; j <1; j++)
  124.     {
  125.         sleep(2);
  126.         printf("\033[H");
  127.         printf("\n\t      _  _                                                                                                                ");
  128.         printf("\n\t    ( `   )_                                                                                                              ");
  129.         printf("\n\t   (    )    `)                                                                                                           ");
  130.         printf("\n\t  (_   (_ .  _) _)                                                                                                         ");
  131.        
  132.         printf("\n\t                                                                          ______                                           ");
  133.         printf("\n\t                                                                         _L _~-L___                                        ");
  134.         printf("\n\t                                                                  =  = ==(____AA____D                                      ");
  135.         printf("\n\t                                                                            L_____L___________________,-~~~~~~~`-.._       ");
  136.         printf("\n\t                                                                  - -        /     o O o o o o O O o o o o o o O o  |L_    ");
  137.         printf("\n\t                                                                    --       `~-.__        ___..----..                 )   ");
  138.         printf("\n\t                                                                      --            `---~~L___________/------------`````   ");
  139.         printf("\n\t                                                                        -          =  ===(_________D                       ");
  140.         //printf("\n\t    
  141.        
  142.     }
  143.     for(int i=0; i <1; i++)
  144.     {
  145.         sleep(2);
  146.         printf("\033[H");
  147.         printf("\n\t                                                                                                          ______                                           ");
  148.         printf("\n\t                                                                                                         _L _~-L___                                        ");
  149.         printf("\n\t                                                                                                  =  = ==(____AA____D                                      ");
  150.         printf("\n\t                                                                                                            L_____L___________________,-~~~~~~~`-.._       ");
  151.         printf("\n\t                                                                                                  - -        /     o O o o o o O O o o o o o o O o  |L_    ");
  152.         printf("\n\t                                                                                                    --       `~-.__        ___..----..                 )   ");
  153.         printf("\n\t                                                                                                      --            `---~~L___________/------------`````   ");
  154.         printf("\n\t                                                                                                        -          =  ===(_________D                       ");
  155.         //printf("\n\t  
  156.         LIMPAR;
  157.     }
  158. }
  159.  
  160. void ArteAir()
  161. {
  162.     sleep(2);
  163.  
  164.     printf("\n\t      _  _                                                               ");
  165.     printf("\n\t    ( `   )_                                                             ");
  166.     printf("\n\t   (    )    `)                                                          ");
  167.     printf("\n\t  (_   (_ .  _) _)                                                       ");
  168.     printf("\n\t                                |                                        ");
  169.     printf("\n\t                                |                                        ");
  170.     printf("\n\t      ´´                      .-'-.        ´´ ´´                         ");  
  171.     printf("\n\t                             ' ___ '                                     ");
  172.     printf("\n\t                   ---------'  .-.  '---------                           ");
  173.     printf("\n\t   _________________________'  '-'  '_________________________           ");
  174.     printf("\n\t    ''''''-|---|--L    L==][^',_m_,'^][==L    L--|---|-''''''            ");
  175.     printf("\n\t                  L    L  ||L   H   L||  L    L                          ");
  176.     printf("\n\t                   '--'   OO   O|O   OO   '--'                           ");
  177.     LIMPAR;
  178.     for(int y=0; y <2; y++)
  179.     {
  180.         sleep(2);
  181.         printf("\n\t      _  _                                                               ");
  182.         printf("\n\t    ( `   )_                                                             ");
  183.         printf("\n\t   (    )    `)                                                          ");
  184.         printf("\n\t  (_   (_ .  _) _)                                                       ");
  185.         printf("\n\t                                |                                        ");
  186.         printf("\n\t                                |                                        ");
  187.         printf("\n\t      ´´                      .-'-.        ´´ ´´                         ");  
  188.         printf("\n\t                             ' ___ '                                     ");
  189.         printf("\n\t                   ---------'  .-.  '---------                           ");
  190.         printf("\n\t   _________________________'  '-'  '_________________________           ");
  191.         printf("\n\t    ''''''-|---|--L    L==][^',_m_,'^][==L    L--|---|-''''''            ");
  192.         printf("\n\t                  L    L  ||L   H   L||  L    L                          ");
  193.         printf("\n\t                   '--'   OO   O|O   OO   '--'                           ");
  194.         LIMPAR;
  195.     }
  196.  
  197. }
  198.  
  199. int random_id_airplane()
  200. {
  201.     srand(time(NULL));
  202.  
  203.     return rand() %10000;
  204.  
  205. }
  206.  
  207. fila_d *Create_Queue_Airplane(void)
  208. {
  209.     fila_d *f = (fila_d *) malloc(sizeof(fila_d));
  210.    
  211.     if (f != NULL)
  212.         f->inicio = NULL;
  213.         f->fim = NULL;
  214.     return f;
  215.    
  216. }
  217.  
  218. int enqueue_airplane(fila_d **f,int id_airplane)
  219. {
  220.     struct pista_decolagem *p1 = (struct pista_decolagem *) malloc(sizeof(struct pista_decolagem));
  221.     struct tempo_t t_d;
  222.     int opc,i=0;
  223.    
  224.     srand(time(NULL));
  225.    
  226.     int r;
  227.  
  228.        
  229.     p1->prateleiras[i] = id_airplane;
  230.     t_d.Mm = rand() %5;
  231.  
  232.  
  233.     if (t_d.Mm != 0)
  234.     {
  235.         printf("AVIAO %d esta pronto para decolar ",id_airplane);
  236.         sleep(2);
  237.        
  238.         for(; t_d.Mm >0; t_d.Mm--)
  239.         {
  240.             printf("\n FALTAM {0: %d } Para Proxima Decolagem \n",t_d.Mm);
  241.        
  242.             sleep(1); /* se for no windows 1000 */
  243.        
  244.             if (t_d.Mm == 1)
  245.             {
  246.                 r= rand() %5;
  247.  
  248.                 if (r == 1 || r==2 || r==3 || r== 4 || r==5)
  249.                 {
  250.                     printf("Tempo Esta bom para decolagem \n");
  251.                     printf("\n AVIAO %d DECOLANDO \n",id_airplane);
  252.                
  253.                     imprime;
  254.                
  255.                     if (p1 != NULL)
  256.                     {
  257.                         p1->id = id_airplane;
  258.  
  259.                         p1->prox = NULL;
  260.                    
  261.                         if ((*f)->inicio == NULL)
  262.                         {
  263.                             /*insira no inicio */
  264.                             (*f)->inicio = p1;
  265.                        
  266.                         }else
  267.                         {
  268.                             (*f)->fim->prox =p1;
  269.                         }
  270.                     }
  271.                 }else if (r == 0)
  272.                 {
  273.                
  274.                    printf("\n DESEJA COLOAR O AVIAO PRA DECOLAR TEMPO NAO ESTA BOM PARA DECOLAGEM  (1/SIM) (2/NAO)\n");
  275.                    printf("> "); scanf("%d",&opc);
  276.  
  277.                    switch(opc)
  278.                    {
  279.                        default:
  280.                            break;
  281.                        case 1:
  282.                            r = rand() %10;
  283.                            if (r >1 || r <5)
  284.                            {
  285.                                printf("AVIAO %d Decolando ",id_airplane);
  286.                                imprime;
  287.                                if ((*f)->inicio == NULL)
  288.                               {
  289.                                    (*f)->inicio =p1;
  290.                                }else
  291.                                {
  292.                                    (*f)->fim->prox =p1;
  293.                                }
  294.                            }else
  295.                            {
  296.                                printf("aviao perdendo a força \n");
  297.                                r = rand() %10;
  298.  
  299.                                if (r %2 ==0)
  300.                                {
  301.                                    printf("aviao conseguiu voar");
  302.  
  303.                                }else
  304.                                {
  305.                                    printf("AVIAO SEM COMBUSTIVEL \n");
  306.                                    fall++;
  307.                                    p1->prateleirasf[fall] = id_airplane;
  308.                                    count--;
  309.                                }
  310.                            }
  311.                            break;
  312.                         case 2:
  313.                             printf("AVIAO %d NA FILA DE ESPERA PARA DECOLAGEM \n",id_airplane);
  314.                             break;    
  315.                    }
  316.                 }
  317.             }
  318.         }
  319.     }
  320.     count++;
  321.    
  322.     return 1;
  323. }
  324.  
  325. void SHOW(fila_d **f)
  326. {
  327.     struct pista_decolagem *p1;
  328.     int i=0;
  329.  
  330.     printf("QUANTIDADE DE AVIAOS DECOLADOS %d \n",count);
  331.     sleep(1);
  332.  
  333.     if ((*f)->inicio == NULL)
  334.     {
  335.         return;
  336.  
  337.     }else
  338.     {
  339.         for(p1 = (*f)->inicio; p1 != NULL; p1=p1->prox)
  340.         {
  341.             printf("ID AVIAO %d \n",p1->id);
  342.         }
  343.  
  344.         printf("QUANTIDADE DE AVIAOES SEM COMBUSTIVEL %d \n",fall);
  345.  
  346.         if (fall == 0)
  347.         {
  348.             return;
  349.         }else
  350.         {
  351.             for(int y=0; y <=fall; y++)
  352.             {
  353.                 printf("ID AVIAO: %d \n",p1->prateleirasf[y]);
  354.             }
  355.         }
  356.     }
  357.  
  358. }
  359.  
  360. queue *Create_Queue_Aterrissagem(void)
  361. {
  362.     queue *q = (queue *) malloc(sizeof(queue));
  363.  
  364.     if (q != NULL)
  365.         q->begin = NULL;
  366.         q->end = NULL;
  367.    
  368.     return q;
  369. }
  370.  
  371. int Enqueue(queue **q,int id_aviao)
  372. {
  373.     struct pista_aterrissagem *pointer  = (struct pista_aterrissagem *) malloc(sizeof(struct pista_aterrissagem));
  374.  
  375.     struct tempo_a t_a;
  376.     int r;
  377.  
  378.     printf("AVIAO %d Aterrisando...\n",id_aviao);
  379.     sleep(2);
  380.  
  381.     for(t_a.Mm = rand() % 5; t_a.Mm >0; t_a.Mm--)
  382.     {
  383.         printf("TEMPO PREVISTO PARA ATERRISAGEM {0 : %d } \n",t_a.Mm);
  384.         sleep(1);
  385.  
  386.         if (t_a.Mm == 1)
  387.         {
  388.             r = rand() % 5;
  389.             printf("AVIAO %d Aterrisando \n",id_aviao);
  390.             ArteAir();
  391.  
  392.             sleep(2);
  393.            
  394.             if ( r > 1 || r <5)
  395.             {
  396.                 if (pointer != NULL)
  397.                 {
  398.                     pointer->id = id_aviao;
  399.                     pointer->next = NULL;
  400.  
  401.                     if ((*q)->begin == NULL)
  402.                     {
  403.                         (*q)->begin = pointer;
  404.  
  405.                     }else
  406.                     {
  407.                         (*q)->end->next = pointer;
  408.                     }
  409.                 }else
  410.                 {
  411.                     printf("AVIAO COM PROBLEMAS NA ATERRISAGEM \n");
  412.                     sleep(2);
  413.  
  414.                     r = rand() %10;
  415.  
  416.                     if (r > 1 || r < 5)
  417.                     {
  418.                         printf("AVIAO MESMO COM PROBLEMAS CONSEGUIU ATERRISAR COM SUCESSO \n");
  419.                         ArteAir();
  420.                         if ((*q)->begin == NULL)
  421.                         {
  422.                             (*q)->begin =pointer;
  423.                         }else
  424.                         {
  425.                             (*q)->end->next = pointer;
  426.                         }
  427.                     }else
  428.                     {
  429.                         sleep(1);
  430.                         printf("AVIAO %d CAIU \n",id_aviao);
  431.                         fail++;
  432.                         pointer->v[fall] = id_aviao;
  433.                         count1--;
  434.                     }
  435.                 }
  436.             }
  437.         }
  438.     }
  439.     count1++;
  440.     return 1;
  441.  
  442. }
  443.  
  444. void MostrarAterrissagem(queue **q)
  445. {
  446.     struct pista_aterrissagem *pointer;
  447.     int y=0;
  448.     printf(" #-------------------------------------------------#");
  449.     printf("# QUANTIDADE DE AVIAOS ATERRISSADOS COM SUCCESSO %d #\n",count1);
  450.  
  451.     if ((*q)->begin == NULL)
  452.     {
  453.         return;
  454.     }else
  455.     {
  456.         printf("AVIAOS ATERRISADOS COM SUCESSO \n");
  457.         for(pointer = (*q)->begin; pointer != NULL; pointer=pointer->next)
  458.         {
  459.             y++;
  460.             printf("PRATELEIRA [%d]: id AVIAO: %d \n",y,pointer->id);
  461.         }
  462.         printf("QUANTIDADE DE AVIOES CAIDOS %d \n",fail);
  463.         if (fail ==0)
  464.         {
  465.             return ;
  466.         }else
  467.         {
  468.             for(int j=0; j <fail; j++)
  469.             {
  470.                 printf("ID AVIAOS CAIDOS %d \n",pointer->v[j]);
  471.             }
  472.  
  473.         }
  474.     }
  475.    
  476. }
  477. /*void winColorir(int Y, int B) {
  478.     WORD wColor = ((B & 0x0F) << 4) + (Y & 0x0F);
  479.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
  480. }*/
  481.  
  482. int LiberarDecolagem(fila_d **f)
  483. {
  484.     struct pista_decolagem *p1;
  485.     struct pista_decolagem *p2;
  486.     p2 = (*f)->inicio;
  487.    
  488.     for(p1 = (*f)->inicio; p1 != NULL; p1 = p1->prox)
  489.     {
  490.         free(p1);
  491.     }
  492.     return 1;
  493. }
  494.  
  495. int LiberarAterrissagem(queue **q)
  496. {
  497.     struct pista_decolagem *p1;
  498.  
  499.     return 1;
  500. }
  501.  
  502. int main(void)
  503. {
  504.     fila_d *f = Create_Queue_Airplane();
  505.     queue *q = Create_Queue_Aterrissagem();
  506.  
  507.  
  508.     int opc,r;
  509.    
  510.    
  511.     do
  512.     {
  513.         r = random_id_airplane();
  514.      
  515.         printf("\n\t (0) --------- [SAIR]");
  516.         printf("\n\t (1) --------- [DECOLAGEM]      ");
  517.         printf("\n\t (2) --------- [ATERRISAGEM]   ");
  518.         printf("\n\t (3) --------- [LISTAR/DECOLAGEM]  ");
  519.         printf("\n\t (4) --------- [LISTAR/ATERRISSAGEM]    ");
  520.         printf("\n\t (5)           [LIBERAR/DECOLAGEM]     ");
  521.         printf("\n\t (6)           [LIBERAR/ATERRISSAGEM] \n ");
  522.  
  523.         printf("> "); scanf("%d",&opc);
  524.  
  525.         switch(opc)
  526.         {
  527.             default:
  528.                 break;
  529.             case 0:
  530.                 exit( 0 );
  531.             case 1:
  532.                enqueue_airplane(&f,r);
  533.                break;
  534.             case 2:
  535.                 Enqueue(&q,r);
  536.                 break;
  537.             case 3:
  538.                 SHOW(&f);
  539.                 break;
  540.             case 4:
  541.                 MostrarAterrissagem(&q);
  542.                 break;
  543.             case 5:
  544.                 LiberarDecolagem(&f);
  545.                 break;
  546.             case 6:
  547.                 LiberarAterrissagem(&q);
  548.  
  549.                          
  550.         }
  551.  
  552.    }while(opc !=0);
  553.  
  554.    return 0;
  555. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement