Advertisement
luciana1237

Untitled

Dec 1st, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 17.89 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];
  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;
  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.     printf("\n\t      _  _                                                               ");
  163.     printf("\n\t    ( `   )_                                                             ");
  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    ''''''-|---|--L    L==][^',_m_,'^][==L    L--|---|-''''''            ");
  173.     printf("\n\t                  L    L  ||L   H   L||  L    L                          ");
  174.     printf("\n\t                   '--'   OO   O|O   OO   '--'                           ");
  175.  
  176. }
  177.  
  178. int random_id_aviao()
  179. {
  180.     srand(time(NULL));
  181.  
  182.     return rand() %10000;
  183.  
  184. }
  185.  
  186. fila_d *Create_Queue_Airplane(void)
  187. {
  188.     fila_d *f = (fila_d *) malloc(sizeof(fila_d));
  189.    
  190.     if (f != NULL)
  191.         f->inicio = NULL;
  192.         f->fim = NULL;
  193.     return f;
  194.    
  195. }
  196.  
  197. int enqueue_airplane(fila_d **f,int id_airplane)
  198. {
  199.     struct pista_decolagem *p1 = (struct pista_decolagem *) malloc(sizeof(struct pista_decolagem));
  200.     struct tempo_t t_d;
  201.     int opc,i=0;
  202.    
  203.     srand(time(NULL));
  204.    
  205.     int r;
  206.  
  207.        
  208.     p1->prateleiras[i] = id_airplane;
  209.     t_d.Mm = rand() %5;
  210.  
  211.  
  212.     if (t_d.Mm != 0)
  213.     {
  214.         printf("AVIAO %d esta pronto para decolar ",id_airplane);
  215.         sleep(2);
  216.        
  217.         for(; t_d.Mm >0; t_d.Mm--)
  218.         {
  219.             printf("\n FALTAM {0: %d } Para Proxima Decolagem \n",t_d.Mm);
  220.        
  221.             sleep(1); /* se for no windows 1000 */
  222.        
  223.             if (t_d.Mm == 1)
  224.             {
  225.                 r= rand() %5;
  226.  
  227.                 if (r == 1 || r==2 || r==3 || r== 4 || r==5)
  228.                 {
  229.                     printf("Tempo Esta bom para decolagem \n");
  230.                     printf("\n AVIAO %d DECOLANDO \n",id_airplane);
  231.                
  232.                     imprime;
  233.                
  234.                     if (p1 != NULL)
  235.                     {
  236.                         p1->id = id_airplane;
  237.  
  238.                         p1->prox = NULL;
  239.                    
  240.                         if ((*f)->inicio == NULL)
  241.                         {
  242.                             /*insira no inicio */
  243.                             (*f)->inicio = p1;
  244.                        
  245.                         }else
  246.                         {
  247.                             (*f)->fim->prox =p1;
  248.                         }
  249.                     }
  250.                 }else if (r == 0)
  251.                 {
  252.                
  253.                    printf("\n DESEJA COLOAR O AVIAO PRA DECOLAR TEMPO NAO ESTA BOM PARA DECOLAGEM  (1/SIM) (2/NAO)\n");
  254.                    printf("> "); scanf("%d",&opc);
  255.  
  256.                    switch(opc)
  257.                    {
  258.                        default:
  259.                            break;
  260.                        case 1:
  261.                            r = rand() %10;
  262.                            if (r >1 || r <5)
  263.                            {
  264.                                printf("AVIAO %d Decolando ",id_airplane);
  265.                                imprime;
  266.                                if ((*f)->inicio == NULL)
  267.                               {
  268.                                    (*f)->inicio =p1;
  269.                                }else
  270.                                {
  271.                                    (*f)->fim->prox =p1;
  272.                                }
  273.                            }else
  274.                            {
  275.                                printf("aviao perdendo a força \n");
  276.                                r = rand() %10;
  277.  
  278.                                if (r %2 ==0)
  279.                                {
  280.                                    printf("aviao conseguiu voar");
  281.  
  282.                                }else
  283.                                {
  284.                                    printf("AVIAO SEM COMBUSTIVEL \n");
  285.                                    fall++;
  286.                                    p1->prateleirasf[fall] = id_airplane;
  287.                                    count--;
  288.                                }
  289.                            }
  290.                            break;
  291.                         case 2:
  292.                             printf("AVIAO %d NA FILA DE ESPERA PARA DECOLAGEM \n",id_airplane);
  293.                             break;    
  294.                    }
  295.                 }
  296.             }
  297.         }
  298.     }
  299.     count++;
  300.    
  301.     return 1;
  302. }
  303.  
  304. void show(fila_d **f)
  305. {
  306.     struct pista_decolagem *p1;
  307.     int i=0;
  308.  
  309.     printf("QUANTIDADE DE AVIAOS DECOLADOS %d \n",count);
  310.     sleep(1);
  311.  
  312.     if ((*f)->inicio == NULL)
  313.     {
  314.         return;
  315.  
  316.     }else
  317.     {
  318.         for(p1 = (*f)->inicio; p1 != NULL; p1=p1->prox)
  319.         {
  320.             printf("ID AVIAO %d \n",p1->id);
  321.         }
  322.  
  323.         printf("QUANTIDADE DE AVIAOES SEM COMBUSTIVEL %d \n",fall);
  324.         if (fall == 0)
  325.         {
  326.             return;
  327.         }else
  328.         {
  329.             for(int y=0; y <=fall; y++)
  330.             {
  331.                 printf("ID AVIAO: %d \n",p1->prateleirasf[y]);
  332.             }
  333.         }
  334.     }
  335.  
  336. }
  337.  
  338. queue *Create_Queue_Aterrissagem(void)
  339. {
  340.     queue *q = (queue *) malloc(sizeof(queue));
  341.  
  342.     if (q != NULL)
  343.         q->begin = NULL;
  344.         q->end = NULL;
  345.    
  346.     return q;
  347. }
  348.  
  349. int enqueue_aterrisagem(queue **q,int id_aviao)
  350. {
  351.     struct pista_aterrissagem *pointer  = (struct pista_aterrissagem *) malloc(sizeof(struct pista_aterrissagem));
  352.  
  353.     struct tempo_a t_a;
  354.     int r;
  355.  
  356.     printf("AVIAO %d Aterrisando...\n",id_aviao);
  357.     sleep(2);
  358.  
  359.     for(t_a.Mm = rand() % 5; t_a.Mm >0; t_a.Mm--)
  360.     {
  361.         printf("TEMPO PREVISTO PARA ATERRISAGEM {0 : %d } \n",t_a.Mm);
  362.         sleep(1);
  363.  
  364.         if (t_a.Mm == 1)
  365.         {
  366.             r = rand() % 5;
  367.             printf("AVIAO %d Aterrisando \n",id_aviao);
  368.             ArteAir();
  369.  
  370.             sleep(2);
  371.            
  372.             if ( r > 1 || r <5)
  373.             {
  374.                 if (pointer != NULL)
  375.                 {
  376.                     pointer->id = id_aviao;
  377.                     pointer->next = NULL;
  378.  
  379.                     if ((*q)->begin == NULL)
  380.                     {
  381.                         (*q)->begin = pointer;
  382.  
  383.                     }else
  384.                     {
  385.                         (*q)->end->next = pointer;
  386.                     }
  387.                 }else
  388.                 {
  389.                     printf("AVIAO COM PROBLEMAS NA ATERRISAGEM \n");
  390.                     sleep(2);
  391.  
  392.                     r = rand() %10;
  393.  
  394.                     if (r > 1 || r < 5)
  395.                     {
  396.                         printf("AVIAO MESMO COM PROBLEMAS CONSEGUIU ATERRISAR COM SUCESSO \n");
  397.                         ArteAir();
  398.                         if ((*q)->begin == NULL)
  399.                         {
  400.                             (*q)->begin =pointer;
  401.                         }else
  402.                         {
  403.                             (*q)->end->next = pointer;
  404.                         }
  405.                     }else
  406.                     {
  407.                         sleep(1);
  408.                         printf("AVIAO %d CAIU \n",id_aviao);
  409.                         count--;
  410.                     }
  411.                 }
  412.             }
  413.         }
  414.     }
  415.     count++;
  416.     return 1;
  417.  
  418. }
  419.  
  420. void Show_a(queue **q)
  421. {
  422.     struct pista_aterrissagem *pointer;
  423.     int y=0;
  424.  
  425.     printf("AVIAOS ATERRISADOS COM SUCESSO \n");
  426.     for(pointer = (*q)->begin; pointer != NULL; pointer=pointer->next)
  427.     {
  428.         y++;
  429.         printf("PRATELEIRA [%d]: id AVIAO: %d \n",y,pointer->id);
  430.     }
  431.     printf("AVIAOES CAIDOS \n\n");
  432.  
  433. }
  434. /*void winColorir(int Y, int B) {
  435.     WORD wColor = ((B & 0x0F) << 4) + (Y & 0x0F);
  436.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
  437. }*/
  438.  
  439. int LiberarDecolagem(fila_d **f)
  440. {
  441.     struct pista_decolagem *p1;
  442.     struct pista_decolagem *p2;
  443.     p2 = (*f)->inicio;
  444.    
  445.     for(p1 = (*f)->inicio; p1 != NULL; p1 = p1->prox)
  446.     {
  447.         free(p1);
  448.     }
  449.     return 1;
  450. }
  451.  
  452. int LiberarAterrissagem(queue **q)
  453. {
  454.     struct pista_decolagem *p1;
  455.  
  456.     return 1;
  457. }
  458.  
  459. int main(void)
  460. {
  461.     fila_d *f = Create_Queue_Airplane();
  462.     queue *q = Create_Queue_Aterrissagem();
  463.  
  464.  
  465.     int opc,r;
  466.    
  467.    
  468.     do
  469.     {
  470.      
  471.         printf("\n\t (0) --------- [SAIR]");
  472.         printf("\n\t (1) --------- [DECOLAGEM]      ");
  473.         printf("\n\t (2) --------- [ATERRISAGEM]   ");
  474.         printf("\n\t (3) --------- [LISTAR/DECOLAGEM]  ");
  475.         printf("\n\t (4) --------- [LISTAR/ATERRISSAGEM]    ");
  476.         printf("\n\t (5)           [LIBERAR/DECOLAGEM]     ");
  477.         printf("\n\t (6)           [LIBERAR/ATERRISSAGEM] \n ");
  478.  
  479.         printf("> "); scanf("%d",&opc);
  480.  
  481.         switch(opc)
  482.         {
  483.             default:
  484.                 break;
  485.             case 0:
  486.                 exit( 0 );
  487.             case 1:
  488.                enqueue_airplane(&f,3);
  489.                break;
  490.             case 2:
  491.                 ArteAir();
  492.                 break;
  493.             case 3:
  494.                 show(&f);
  495.                 break;
  496.             case 4:
  497.                 Show_a(&q);
  498.                 break;
  499.             case 5:
  500.                 LiberarDecolagem(&f);
  501.                 break;
  502.             case 6:
  503.                 LiberarAterrissagem(&q);
  504.             default:
  505.                 break;
  506.                          
  507.         }
  508.  
  509.    }while(opc !=0);
  510.  
  511.    return 0;
  512. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement