viernes, 19 de noviembre de 2010

PROGRAMA DE COLAS

import java.util.*;

//import Elemento

public class Cola extends Vector {
 
  public int anadirElememto(int tiempo){
    Elemento elem;
    elem = new Elemento(tiempo);
    this.addElement(elem);
    return elem.creado;
  }

  public boolean tieneElementos(){
    Enumeration NUm = this.elements();
    return NUm.hasMoreElements();
  }

  public Elemento procesarElemento(Vector colaProcesados){
    Elemento elem =(Elemento)this.elementAt(0);
    elem.tiempoProceso = (int)(Math.random() * 10);
    colaProcesados.addElement(elem);
    this.removeElementAt(0);
    return elem;
  }
}
                                                         
                                                                                                                 
import java.lang.Math;
import java.awt.*;

public class Elemento {
  public int creado;
  public int inicioProceso;
  public int tiempoProceso;

  public Elemento(int tiempo) {
    creado = tiempo + (int)(Math.random() * 10);
  }



  public void Dibujar(Graphics g){
    g.setColor(Color.black);
    g.drawRect(creado*5,100,2,2);
    g.drawLine(creado*5,100,inicioProceso*5,150);
    g.drawRect(inicioProceso*5,150,tiempoProceso*5,2);
  }
}





                                          

import java.lang.Math;
import java.awt.*;
import java.util.*;

public class ColaSimple {
  private static int tiempo;
  private static int horaLibre;

  public static void main(String args[]) {
    System.out.println("Inicio de Simulación de Cola simple");
    Cola cola = new Cola();
    Vector colaProcesada = new Vector();

    Frame ventana = new Frame("Simulación de cola simple");
    DrawWindow mipanel = new DrawWindow(colaProcesada);
  ventana.add(mipanel);
  ventana.pack();
  ventana.setSize(500,500);






    while (tiempo < 100) {
      tiempo = cola.anadirElememto(tiempo);
      System.out.println("Tiempo:" + tiempo+ " Items: " + cola.size());
          while ((horaLibre < tiempo) && (cola.tieneElementos())) {
            Elemento procesado = cola.procesarElemento(colaProcesada);
            procesado.inicioProceso =  Math.max(horaLibre, procesado.creado);
            horaLibre = procesado.inicioProceso + procesado.tiempoProceso;
            System.out.println("Tiempo:" + tiempo+ " Items: " + cola.size()
              + " Hora entrada: " + procesado.creado+ " Tiempo proceso: " + procesado.tiempoProceso);

          }
    }
  ventana.show();
  }
}



                                           

import java.awt.*;
import java.util.Vector;
import java.util.Enumeration;

public class DrawWindow extends Panel {
    private Vector v;
    public DrawWindow(Vector v) {
        super(new FlowLayout());
        this.v=v;
    }

    public void paint(Graphics g) {
        Elemento dib;
        Enumeration e;
        e = v.elements();
        while(e.hasMoreElements()){
            dib=(Elemento)e.nextElement();
            dib.Dibujar(g);

       }

   }

}

No hay comentarios:

Publicar un comentario