|
|||||||
|
|
|
|||||
|
|
|||||||
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