Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web

Programa de prueba

El programa consiste en ir despachando un cierto número de clientes (15) que se encuentran en una cola , en forma aleatoria.

Se asigna al azar un número del 0 al 9. Si sale el número 5 , este cliente se retira de la cola y se muestran sus datos, en función del tiempo que estuvo en la cola.
Si al contrario , no sale el 5 , el cliente vuelve a la cola y tiene que esperar una próxima ronda.
Este proceso no acaba mientras exitan clientes en la cola.


salida del programa


Desde el punto de vista del cliente se produce lo siguiente :

SI (sale el 5) 
   se imprimen mis datos y me voy
SINO
   me integro nuevamente a la cola y espero 
   tener suerte en la proxima ronda
FIN SI

Se creó una estructura que almacenara el número de veces que tuvo que esperar ser "atendido", y el número que lo identifica.

Por cada vuelta que da la cola, el valor de esperas se va incrementando.


Código fuente

#include<stdio.h>
#include<stdlib.h>

typedef struct
{
    int esperas;
    int num;
} CLIENTE;

typedef CLIENTE TipoC;

#include "tadCola.h"

int main()
{

   printf("\n\tPROGRAMA DE PRUEBA");
   printf("\n\t------------------\n\n");
   Cola c = inicCola();

   CLIENTE aux;
   aux.esperas = 0;

   double tiempo_espera = 0.0;
    
   for(int i = 0 ; i < 15; )
   { 
      aux.num = ++i;
      adicCola(c,aux);
   }
    
   printf("\tnum\tesperas\t\ttiempo\n");
   printf("\t---\t-------\t\t------\n");

   while(!vaciaCola(c))
   {
      int despachado = rand() % 10;
      tiempo_espera += double (rand() % 20) / 10;        

      aux = infoCola(c);
        
      if (despachado == 5)
         printf("\n\t%d\t%d\t\t%.2lf",aux.num,aux.esperas,tiempo_espera);    
      else
      {
         aux.esperas++;
         adicCola(c,aux);
      }
            
      elimCola(c);
   }    
        
   destruirCola(c);
   printf("\n\n");
   return 0;
}

Bajar TAD Cola y programa de prueba