public class CuentaBancariaBaseDatos {
  private CuentaBancaria[] cuentas;
  private int ultimo;
  public final static int MAX = 100;
  public CuentaBancariaBaseDatos() {
   cuentas = new CuentaBancaria[MAX];
   ultimo = -1;
  }
 public CuentaBancaria buscar(String kNombre){
    DesignByContract.require(kNombre!=null, 
    new RuntimeException("kNombre != null"));
    boolean encontrado = false;
    CuentaBancaria objetivo=null;
    for (int i=0;
     (i<(ultimo+1))&&!encontrado;i++) {
     CuentaBancaria cta= cuentas[i];
     if (kNombre.equals(cta.getNombre())){
         encontrado = true;
         objetivo = cta;
     }//if
    }//for
    return objetivo;
  }//buscar
  public void insertar(String nombre)
   throws Exception {
   DesignByContract.require(nombre!=null, 
    new RuntimeException("nombre != null"));     
   CuentaBancaria cta = 
     new CuentaBancaria(nombre);  
   int old_ultimo=ultimo;
   if ( ultimo < MAX ) {
      cuentas[ultimo+1] = cta;
      ultimo++;
   } else { throw new Exception
     ("insertar:Espacio excedido");
   }
   DesignByContract.ensure(
     ultimo == old_ultimo + 1,
     new RuntimeException
     ("ultimo == old_ultimo+1"));
  }//insertar
  public void borrar(String kNombre)
    throws Exception{
    DesignByContract.require(kNombre!=null, 
    new RuntimeException("kNombre != null"));
    int donde = -1;
    boolean encontrado = false;
    int old_ultimo=ultimo;
    for (int i=0;
     (i<(ultimo+1))&&!encontrado;i++) {
      CuentaBancaria cta= cuentas[i];
      if (kNombre.equals(cta.getNombre())){
         encontrado = true;
         donde = i;
      }//if
     }//for
     if (donde != -1) {
	CuentaBancaria extremo = 
          cuentas[ultimo];
        cuentas[donde] = extremo;
        cuentas[ultimo] = null;
        ultimo--;
     } else { throw new Exception(
       "borrar:Elemento no encontrado");
     }//if
     DesignByContract.ensure(
     ultimo==old_ultimo -1,new 
     RuntimeException("ultimo==old_ultimo -1"));
  } //borrar 

  public void init() {
    try {
     insertar("Gus");
     insertar("Vic");
     insertar("Luis");
     insertar("Gaby");
     insertar("Jose");
     insertar("Liz");
     insertar("Felipe");
    } catch( Exception ex) {
      ex.printStackTrace();
    }//try
  }//init
  public void print() {
    for (int i=0;  i<(ultimo+1);i++) {
       System.out.println(cuentas[i].getNombre());
    }
  }

}//CuentaBancaria