Advertisement
luciana1237

Untitled

Aug 23rd, 2018
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.45 KB | None | 0 0
  1. /*programa que simula uma biqueira */
  2.  
  3. #include <stdio.h> /*I/O*/
  4. #include <stdlib.h>/*malloc */
  5. #include <stdbool.h>/*bool*/
  6. #include <time.h>/*srand && rand */
  7. #include <unistd.h> /*sleep */
  8.  
  9.  
  10. typedef struct Queue
  11. {
  12.     int qtd_po,qtd_mac,qtd_crack,xlen,len,size;
  13.     struct Queue *begin,*end;
  14. }queue;
  15.  
  16.  
  17. queue *queue_create(void)
  18. {
  19.     queue *q = (queue *) malloc(sizeof(queue));
  20.    
  21.     if (q!= NULL)
  22.         q->begin =NULL;
  23.         q->end = NULL;
  24.    
  25.     return q;
  26. }
  27.  
  28. int len=0,size=0,_size1=0,lucro=0,lucro1=0,lucro2=0;
  29.  
  30. int random_id(void)
  31. {
  32.     srand(time(NULL));
  33.    
  34.     return rand() %1000;
  35. }
  36.  
  37. queue *enfileirar(queue **q,int qtd,int qtd1,int qtd2)
  38. {
  39.     queue *novo = (queue *) malloc(sizeof(queue));
  40.     int y,r,x,k;
  41.  
  42.     x= random_id();
  43.    
  44.     (*q)->qtd_mac =qtd;
  45.     (*q)->qtd_crack =qtd1;
  46.     (*q)->qtd_po=qtd2;
  47.    
  48.     srand(time(NULL));
  49.    
  50.    
  51.     if (novo == NULL)
  52.     {
  53.         fprintf(stderr,"erro de alocacao\n");
  54.         exit( 0 );
  55.     }
  56.    
  57.    
  58.     if (novo != NULL)
  59.     {
  60.         novo->begin = NULL;
  61.         novo->end = (*q);
  62.        
  63.         if ((*q)->end == NULL)
  64.         {
  65.             printf("\nFILA VAZIA--\n");
  66.             (*q)->begin = novo;
  67.         }else
  68.         {
  69.             printf("\nTEM\n");
  70.             (*q)->end = novo;
  71.         }
  72.        
  73.         r = rand() %4;
  74.        
  75.         if (r == 1)
  76.         {
  77.             k = rand() % 10;
  78.             if (k!=0){
  79.                 printf("Cliente: %d Quer: %d maconha \n",x,k);
  80.                 printf("CONFERINDO...\n");
  81.                 sleep(2);
  82.            
  83.                 if (k > (*q)->qtd_mac)
  84.                 {  
  85.                     printf("\nn[!] NAO TEM ESSA QUANTIDADE NO MOMENTO \n");
  86.                     len--;
  87.    
  88.                 }else
  89.                 {
  90.                     sleep(1);
  91.                     printf("CLIENTE %d COMPROU: %d Maconha \n",x,k);
  92.                     (*q)->qtd_mac = (*q)->qtd_mac -k;
  93.                     lucro= lucro+10*k;
  94.                     len= len+1*k;
  95.                 }
  96.             }else{
  97.                 sleep(0x2);
  98.                 printf("\nCLIENTE: %d DESISTIU\n",x);
  99.             }
  100.         }else if (r == 2)
  101.         {
  102.             k = rand() %10;
  103.             if (k == 0){
  104.                 printf("\nCliente: %d Desistiu \n",x);
  105.             }else{
  106.                 printf("Cliente: %d Quer: %d cocaina \n",x,k);
  107.                 printf("CONFERINDO...\n");
  108.                 sleep(2);
  109.                 if (k > (*q)->qtd_po)
  110.                 {
  111.                     printf("\nnao tem essa quantidade no momento \n");
  112.                     size--;
  113.                
  114.                 }else
  115.                 {
  116.                     sleep(1);
  117.                     printf("\nCliente %d: Comprou %d de Cocaina \n",x,k);
  118.                     (*q)->qtd_po = (*q)->qtd_po -k;
  119.                     lucro1= lucro1=20*k;
  120.                     size=size+1*k;
  121.                
  122.             }
  123.         }
  124.            
  125.         }else if (r == 3)
  126.         {
  127.             k= rand() %10;
  128.             if (k!=0){
  129.                 printf("Cliente: %d Quer: %d Pedra \n",x,k);
  130.                 printf("CONFERINDO...\n");
  131.                 sleep(2);
  132.            
  133.                 if (k > (*q)->qtd_crack)
  134.                 {
  135.                     printf("\n[!]nao tem essa quantidade no momento \n");
  136.                     _size1--;
  137.    
  138.                 }else
  139.                 {
  140.                     sleep(1);
  141.                     printf("\n[+] CLIENTE %d: COMPROU %d quantidade de Crack \n",x,k);
  142.                     (*q)->qtd_crack = (*q)->qtd_crack-k;
  143.                     lucro2= lucro2+5*k;
  144.                     _size1=_size1+1*k;
  145.                 }
  146.             }else{
  147.                 sleep(2);
  148.                 printf("\nCliente: %d Desistiu \n",x);
  149.             }
  150.         }else if (r ==0)
  151.         {
  152.             sleep(2);
  153.             printf("....");
  154.         }
  155.        
  156.     }
  157.  
  158.  
  159.     return novo;
  160.        
  161. }
  162.  
  163. void show(queue **q)
  164. {
  165.    
  166.     printf("\n\t---------------------------");
  167.     printf("\n\t|MACONHA | COCAINA | CRACK |");
  168.     printf("\n\t|--------|---------|-------|");
  169.     printf("\n\t|QUANTIDADE| QUANTIDADE | QUANTIDADE |");
  170.     printf("\n\t|   %d   |    %d    |   %d   |",len,size,_size1);
  171.     printf("\n\t| LUCROS |  LUCROS  | LUCROS |");
  172.     printf("\n\t|----------------------------");
  173.     printf("\n\t|  M: %d$|  CO: %d$ | CK:%d$ |",lucro,lucro1,lucro2);
  174.     printf("\n\t|----------------------------|");
  175.    
  176. }
  177.  
  178.  
  179. int main()
  180. {
  181.     queue *q = queue_create();
  182.     int opc,po,mac,cra;
  183.    
  184.     if (q != NULL)
  185.         for(;;){
  186.             printf("\n\t_(0)--------- [ SAIR ]");
  187.             printf("\n\t_(1)--------- [ Enfileirar ] ");
  188.             printf("\n\t_(2)--------- [ TABELA DE LUCROS ] \n");
  189.             printf("> "); scanf("%d",&opc);
  190.            
  191.             switch(opc){
  192.                 case 0:
  193.                     exit( 0 );
  194.                 case 1:
  195.                     printf("\nDIGITE A quantidade dos produtos a ser inseridos \n");
  196.                     printf("PO: "); scanf("%d",&po);
  197.                     printf("\n\tMACONHA: "); scanf("%d",&mac);
  198.                     printf("\n\tCRACK: "); scanf("%d",&cra);
  199.                     q=enfileirar(&q,po,mac,cra);
  200.                     break;
  201.                 default:
  202.                     break;
  203.                 case 2:
  204.                     show(&q);
  205.                     break;
  206.                
  207.             }
  208.            
  209.         }
  210.         return 0;
  211.        
  212. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement