Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*programa que simula uma biqueira */
- #include <stdio.h> /*I/O*/
- #include <stdlib.h>/*malloc */
- #include <stdbool.h>/*bool*/
- #include <time.h>/*srand && rand */
- #include <unistd.h> /*sleep */
- typedef struct Queue
- {
- int qtd_po,qtd_mac,qtd_crack,xlen,len,size;
- struct Queue *begin,*end;
- }queue;
- queue *queue_create(void)
- {
- queue *q = (queue *) malloc(sizeof(queue));
- if (q!= NULL)
- q->begin =NULL;
- q->end = NULL;
- return q;
- }
- int len=0,size=0,_size1=0,lucro=0,lucro1=0,lucro2=0;
- int random_id(void)
- {
- srand(time(NULL));
- return rand() %1000;
- }
- queue *enfileirar(queue **q,int qtd,int qtd1,int qtd2)
- {
- queue *novo = (queue *) malloc(sizeof(queue));
- int y,r,x,k;
- x= random_id();
- (*q)->qtd_mac =qtd;
- (*q)->qtd_crack =qtd1;
- (*q)->qtd_po=qtd2;
- srand(time(NULL));
- if (novo == NULL)
- {
- fprintf(stderr,"erro de alocacao\n");
- exit( 0 );
- }
- if (novo != NULL)
- {
- novo->begin = NULL;
- novo->end = (*q);
- if ((*q)->end == NULL)
- {
- printf("\nFILA VAZIA--\n");
- (*q)->begin = novo;
- }else
- {
- printf("\nTEM\n");
- (*q)->end = novo;
- }
- r = rand() %4;
- if (r == 1)
- {
- k = rand() % 10;
- if (k!=0){
- printf("Cliente: %d Quer: %d maconha \n",x,k);
- printf("CONFERINDO...\n");
- sleep(2);
- if (k > (*q)->qtd_mac)
- {
- printf("\nn[!] NAO TEM ESSA QUANTIDADE NO MOMENTO \n");
- len--;
- }else
- {
- sleep(1);
- printf("CLIENTE %d COMPROU: %d Maconha \n",x,k);
- (*q)->qtd_mac = (*q)->qtd_mac -k;
- lucro= lucro+10*k;
- len= len+1*k;
- }
- }else{
- sleep(0x2);
- printf("\nCLIENTE: %d DESISTIU\n",x);
- }
- }else if (r == 2)
- {
- k = rand() %10;
- if (k == 0){
- printf("\nCliente: %d Desistiu \n",x);
- }else{
- printf("Cliente: %d Quer: %d cocaina \n",x,k);
- printf("CONFERINDO...\n");
- sleep(2);
- if (k > (*q)->qtd_po)
- {
- printf("\nnao tem essa quantidade no momento \n");
- size--;
- }else
- {
- sleep(1);
- printf("\nCliente %d: Comprou %d de Cocaina \n",x,k);
- (*q)->qtd_po = (*q)->qtd_po -k;
- lucro1= lucro1=20*k;
- size=size+1*k;
- }
- }
- }else if (r == 3)
- {
- k= rand() %10;
- if (k!=0){
- printf("Cliente: %d Quer: %d Pedra \n",x,k);
- printf("CONFERINDO...\n");
- sleep(2);
- if (k > (*q)->qtd_crack)
- {
- printf("\n[!]nao tem essa quantidade no momento \n");
- _size1--;
- }else
- {
- sleep(1);
- printf("\n[+] CLIENTE %d: COMPROU %d quantidade de Crack \n",x,k);
- (*q)->qtd_crack = (*q)->qtd_crack-k;
- lucro2= lucro2+5*k;
- _size1=_size1+1*k;
- }
- }else{
- sleep(2);
- printf("\nCliente: %d Desistiu \n",x);
- }
- }else if (r ==0)
- {
- sleep(2);
- printf("....");
- }
- }
- return novo;
- }
- void show(queue **q)
- {
- printf("\n\t---------------------------");
- printf("\n\t|MACONHA | COCAINA | CRACK |");
- printf("\n\t|--------|---------|-------|");
- printf("\n\t|QUANTIDADE| QUANTIDADE | QUANTIDADE |");
- printf("\n\t| %d | %d | %d |",len,size,_size1);
- printf("\n\t| LUCROS | LUCROS | LUCROS |");
- printf("\n\t|----------------------------");
- printf("\n\t| M: %d$| CO: %d$ | CK:%d$ |",lucro,lucro1,lucro2);
- printf("\n\t|----------------------------|");
- }
- int main()
- {
- queue *q = queue_create();
- int opc,po,mac,cra;
- if (q != NULL)
- for(;;){
- printf("\n\t_(0)--------- [ SAIR ]");
- printf("\n\t_(1)--------- [ Enfileirar ] ");
- printf("\n\t_(2)--------- [ TABELA DE LUCROS ] \n");
- printf("> "); scanf("%d",&opc);
- switch(opc){
- case 0:
- exit( 0 );
- case 1:
- printf("\nDIGITE A quantidade dos produtos a ser inseridos \n");
- printf("PO: "); scanf("%d",&po);
- printf("\n\tMACONHA: "); scanf("%d",&mac);
- printf("\n\tCRACK: "); scanf("%d",&cra);
- q=enfileirar(&q,po,mac,cra);
- break;
- default:
- break;
- case 2:
- show(&q);
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement