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