import javabook.*;
public class AdministradorPersonas {
   private CapturadorPersona capturador;
   private Persona[] personas;
   private int ultimo;
   public AdministradorPersonas(int maxPersonas) {
      personas = new Persona[maxPersonas];
      capturador = new CapturadorPersona();
      ultimo = 0;
   }
   /** Agregar una nueva persona */
   public void agregar() {
     if ( ultimo < personas.length ) {//hay espacio ??
       personas[ultimo] = new Persona();
       capturador.capturar(personas[ultimo]);
       ultimo++;
     }
   }//agregar
   /** Buscar por nombre, encuentra la primera ocurrencia*/
   public Persona buscar(String nombre) {
      Persona buscado = null;
      boolean encontrado = false;
      int i=0;
      while ((i<ultimo) && !encontrado) { //busqueda lineal
        String nombreTmp = personas[i].getNombre();  
        if ( nombreTmp.equals(nombre))  {
           buscado = personas[i];
           encontrado= true;
        }//if
        i++;
      }//while
      return buscado;
   }//buscar
   /** encuentra la edad promedio de las personas capturadas*/
   public double promedioEdad() {
     double acum=0;
     for (int i=0;i<ultimo;i++) {
        acum += personas[i].getEdad();
     }
     return acum/(ultimo+1);
   }//promedioEdad
   /**encuentra la edad maxima de las personas*/
   public int edadMaxima() {
      int maximo = 0;
      for (int i=0;i<ultimo;i++) {
         if ( personas[i].getEdad() > maximo) {
             maximo = personas[i].getEdad();
          }
      }
      return maximo;
   }
   /**cuenta cuantos hombres o mujeres hay*/
   public int contadorSexo(char sexo) {
      int contador =0;
      for (int i=0;i<ultimo;i++) {
          if ( personas[i].getSexo() == sexo ) {
		contador ++;
          }//if
      }//for
      return contador;
   }//contadorSexo
   public void dialogar() {
        MainWindow ventana = new MainWindow();
        boolean salir = false;
        //desplegar opciones
        OutputBox out = new OutputBox(ventana);
        out.printLine("Seleccionar una opcion");
        out.printLine("1. Agregar una persona");
        out.printLine("2. Buscar una persona");
        out.printLine("3. Obtener edad promedio del grupo");
        out.printLine("4. Obtener edad maxima");
        out.printLine("5. Contar elementos de un sexo");
        out.printLine("0. Salir");
        out.show();
        String [] etiquetas = {"Opcion"};
        while (!salir) {
         //pedir opcion
         MultiInputBox in = new MultiInputBox(ventana,etiquetas);
         String[] sopcion=in.getInputs();
         int opcion = Convert.toInt(sopcion[0]);
         if ( opcion == 0 ) { salir = true; }
         else if ( opcion ==1) { agregar() ; }
         else if ( opcion == 2) {
               String [] et= { "Nombre a Buscar"};
               in.setLabels(et);
               String [] nombre = in.getInputs();
               Persona p=buscar(nombre[0]);
               if ( p!=null) {
                OutputBox resultado= new OutputBox(ventana);
                resultado.printLine(p.getNombre());
                resultado.printLine(p.getEdad());               
                resultado.printLine(p.getSexo());               
                resultado.show();
              } else {
                MessageBox msg = new MessageBox(ventana);
                msg.show("No se encontro persona");
              }
         }
        } //while    
    
   }
}











