Cola

4
“Año de la Promoción de la Industria Responsable y del Compromiso Climático” UNIVERSIDAD PRIVADA TELESUP COLA ALUMNA: RAMOS LAZARO Shelly TUTOR: CARDENAS DIAZ Enrique CARRERA: INGENERIA DE SISTEMAS HUANCAYO-2014

Transcript of Cola

Page 1: Cola

“Año de la Promoción de la Industria Responsable y del Compromiso Climático”

UNIVERSIDAD PRIVADA TELESUP

COLAALUMNA:

RAMOS LAZARO Shelly

TUTOR:

CARDENAS DIAZ Enrique

CARRERA:

INGENERIA DE SISTEMAS

HUANCAYO-2014

Page 2: Cola

COLASe considera una cola frente a una ventanilla en la cual al llegar a la misma no puede ser atendido, se le reintegra a la cola a la posición Nº 10, si hay más de 10 personas o al final de la misma, en caso contrario. Diseñar un procedimiento de ATENCION (lo que debe suceder cuando un cliente es atendido). REINGRESO (vuelta a la cola) y otro de INGRESO (inicial) en la cola.

RESOLUCION

public class Cola {private java.util.ArrayList<String> cola = null;private java.util.Random alea = new java.util.Random();private boolean isDebug = true;

public Cola(){cola = new java.util.ArrayList<String>();this.runProccess();

}

private boolean isAccepted(){return ((int) alea.nextInt(2)) == 0;

}

private void muestraCola(){if(isDebug)

System.out.println("-------------------------------------------");System.out.print("[");String sep = "";for(String c : cola){

System.out.print(sep + c);sep = ", ";

}System.out.print("]\n");if(isDebug)

System.out.println("-------------------------------------------");}

private void runProccess(){int pos = 0;int final_size = cola.size();while(pos < final_size){

if(isDebug) System.out.println(String.format("Atendiendo posición %d[%s]",pos, cola.get(pos)));

if(this.isAccepted()){cola.remove(pos);if(isDebug) System.out.println("Aceptado,

se le atiende y se saca de la cola");} else {

if(isDebug) System.out.println("No se puede atender en estos momentos");

Page 3: Cola

if(cola.size() > 10){for(int nJ = pos; nJ < final_size;

nJ++){if(cola.size() > (10+nJ)){

if(isDebug) System.out.println(String.format("Se mueve a %s de la posición %d a la posición %d en la que está %s", cola.get(pos),pos,(10+nJ),cola.get(10+nJ)));

java.util.Collections.swap(cola, pos, 10+nJ);}else{

cola.add(cola.get(pos));cola.remove(pos);break;

}if(isDebug)

System.out.println("La cola queda así:");if(isDebug) muestraCola();

}

} else {java.util.Collections.swap(cola,

pos, cola.size()-1);if(isDebug) System.out.println("Se

mueve al final");}

}final_size = cola.size();if(isDebug) System.out.println("La cola queda

así:");muestraCola();

}}

public void setAllItems(String[] items){this.cola = new

java.util.ArrayList<String>(java.util.Arrays.asList(items));}

public void addItem(String nuevo){this.cola.add(nuevo);

}

public java.util.ArrayList<String> getCola(){return this.cola;

}

public static void main(String[] args){Cola c = new Cola();c.setAllItems(new String[]

{"enero[1]","febrero[2]","marzo[3]","abril[4]","mayo[5]","junio[6]",

"julio[7]","agosto[8]","septiembre[9]","octubre[10]","noviembre[11]","diciembre[12]"});

Page 4: Cola

System.out.println("La cola comienza así:");c.muestraCola();c.runProccess();System.out.println("La cola termina así:");c.muestraCola();

}