Supermercado (Cajero/cliente) en Java

DESCARGAR



public class Main  implements Runnable{
private Cliente cliente;
private Cajera cajera;
private long initialTime;

public Main ( Cliente cliente, Cajera cajera, long initialTime){
this.cajera=cajera;
this.cliente=cliente;
this.initialTime=initialTime;
}

public static void main(String[] args) {

Cliente cliente1 = new Cliente("Javi", new int[]{2,2,1,5,2,3});
Cliente cliente2 = new Cliente("Jaime", new int[] {1,3,5,1,1});

Cajera cajera1 = new Cajera("Nayala");
Cajera cajera2 = new Cajera("Nayala");

long initialTime = System.currentTimeMillis();

Runnable proceso1 = new Main(cliente1, cajera1, initialTime);
Runnable proceso2 = new Main(cliente2, cajera2, initialTime);

new Thread(proceso1).start();
new Thread(proceso2).start();
}

@Override
public void run() {

this.cajera.procesarCompra(this.cliente, this.initialTime);
}

}





public class Cliente {
private String nombre;
private int[] carroCompra;
public Cliente(String nombre, int[] carroCompra){
this.nombre=nombre;
this.carroCompra=carroCompra;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int[] getCarroCompra() {
return carroCompra;
}
public void setCarroCompra(int[] carroCompra) {
this.carroCompra = carroCompra;
}
}





public class Cajera {

private String nombre;
public Cajera(String nombre){
this.nombre=nombre;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}
public void procesarCompra(Cliente cliente, long tiempo){
System.out.println("La cajera "+this.nombre+" comienza a procesar la compra del cliente "+ 
cliente.getNombre()+" en el tiempo: "+ (System.currentTimeMillis()-tiempo)/1000+ " seg.");
for (int i = 0; i < cliente.getCarroCompra().length; i++) {
this.esperarXsegundos(cliente.getCarroCompra()[i]);
System.out.println("Procesando el producto "+(i+1)+". Tiempo: " + 
(System.currentTimeMillis()-tiempo)/1000+ " seg.");
}
System.out.println("La cajera "+this.nombre+" ha terminado de procesar la compra del cliente "+ 
cliente.getNombre()+" en el tiempo: "+ (System.currentTimeMillis()-tiempo)/1000+ " seg.");
if(cliente.getNombre().equals("Jaime")){
System.out.println("La cajera se ha enamorado del cliente y la han despedido");
}
}