Autor Tema: código ejercicio Java galería de arte, Registrar obras artista y Listar con Menú  (Leído 2570 veces)

CesarJ

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Buenas tardes, acabo de empezar hace poco a programar. He estado resolviendo unos ejercicios sencillos pero al estar intentando este me he complicado mucho y me está saliendo humo de tanto pensar y enredarme yo mismo.

Agradecería que me ayudaran en este problema (en los detalles de la exposición con solo la hora de inicio y fin esta bien, y en la del artista nombre y dni).


ENUNCIADO:
En un museo, existen varios tipos de exposiciones de arte. Una exposición se da en una galería a la véz y el museo cuenta con varias galerias. El museo requiere registrar los detalles de las exposiciones y del artista. El menu de navegación de la clase principal permitirá:

1. Registrar exposición
      - Registrar exposición
      - Registrar artista
      - Registrar exposiciones del artista (anteriores y actuales)
      - Listar exposiciones activas

2. Configurar exposiciones y galerías
      - Listar tipos de exposición
      - Listar galerias ocupadas y vacantes


- Adjunto hasta donde he avanzado que no es mucho, el main aun no lo he empeado


Clase Artista

Código: [Seleccionar]
package Ejercicio;
import java.util.Scanner;

public class Artista {
    private String dni;
    private String nombre;

    public Artista(String dni, String nombre) {
        this.dni = dni;
        this.nombre = nombre;
    }

     
    }

    public String getdni() {
        return dni;
    }

public void setDNI(String DNI) {this.dni = dni;}
public String getnombre() {return nombre;}
public void setNombre(String nombre) {
this.nombre = nombre;}

}


Clase Exposicion

Código: [Seleccionar]
package Ejercicio;

import java.util.ArrayList;
import java.util.Scanner;
public class Exposicion {

    private double inicio;
    private double fin;
    ArrayList<Artista> LArtista;

    public Exposicion(double inicio, double fin, Artista Artista) {
        this.inicio = inicio;
        this.fin = fin;
       
        this.LArtista = new ArrayList();
    }

    public  void AgregarArtistaDatos(Artista a){
        Scanner in = new Scanner(System.in);
        System.out.print("Ingrese el dni");
        int dni = in.nextInt();
        System.out.print("Ingrese el nombre");
        String nombre = in.next();
        this.LArtista.add(new Artista (dni,nombre));
    }

   
public ArrayList<Artista> getLArtista() {return LArtista;}
public void setLArtista(ArrayList<Artista> LArtista) {this.LArtista = LArtista;}
public double getInicio() {return inicio;}
public void setInicio(double inicio) {this.inicio = inicio;}
public double getFin() {return fin;}
public void setFin(double fin) {this.fin = fin;}

}


Clase Garelias


Código: [Seleccionar]
package Ejercicio;

import java.util.ArrayList;
import java.util.Scanner;
public class Garelias {
    private int codigo;
    private int capacidad;
    ArrayList<Exposicion> LExposicion;

    public Garelias(int codigo, int capacidad) {
        this.codigo = codigo;
        this.capacidad = capacidad;
        this.LExposicion = new ArrayList();
    }

    public void AgregarExposicionDatos(Exposicion expo){
   
    Scanner in = new Scanner(System.in);
    System.out.print("Ingrese la hora de inicio");
    double inicio = in.nextDouble();
    System.out.print("Ingrese la hora del final");
    double fin = in.nextDouble();
    this.LExposicion.add(new Exposicion (inicio,fin));
   
    System.out.print("Exposicion creada ...");
}
     
    public void ImprimirListaExposicion(){
       
        System.out.println("Lista de exposiciones ");
        for ( Exposicion  Expo : this.LExposicion){
            System.out.println("Inicio: " + Expo.getInicio() + "Fin: "+ Expo.getFin());
        }
    }
   
    public int getCodigo() {return codigo;}
public void setCodigo(int codigo) {this.codigo = codigo;}
public int getCapacidad() {return capacidad;}
public void setCapacidad(int capacidad) {this.capacidad = capacidad;}
public ArrayList<Exposicion> getLExposicion() {return LExposicion;}
public void setLExposicion(ArrayList<Exposicion> LExposicion) {this.LExposicion = LExposicion;}
void AgregarExposicionDatos() {throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.}

   }
« Última modificación: 13 de Abril 2022, 19:06 por Alex Rodríguez »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Dudas con un ejercicio Java, Registrar y Listar con Menú
« Respuesta #1 en: 18 de Octubre 2021, 12:19 »
Hola.

A ver, algunas correcciones en la clase Artista.

- No se necesita importar la clase Scanner, porque no se van a pedir datos desde esta clase.
- Hay una llave de cierre equivocada que provoca que la clase se cierre donde no debe, dejando FUERA de ella los métodos que vienen a continuación.
- El método setDNI(), recibe entre paréntesis un argumento llamado "DNI", todo en mayúscula. Pero luego dentro de su cuerpo se usa la palabra "dni", en minúscula.
Por tanto Java considera que no se está haciendo nada con el argumento DNI, porque no se le está nombrando en el código.
Hay que escribirlo exactamente igual, de lo contrario, se consideran variables distintas.
Citar
import java.util.Scanner; //Este import es innecesario

public class Artista {
    private String dni;
    private String nombre;

    public Artista(String dni, String nombre) {
        this.dni = dni;
        this.nombre = nombre;
    }

     
    } //Esta llave está CERRANDO la clase antes de tiempo.

    public String getdni() {
        return dni;
    }

    public void setDNI(String DNI) {
        this.dni = dni; //El argumento DNI es en mayúsucula, no es en minúscula
    }


    public String getnombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
this.nombre = nombre;
    }

   
       
}

Una vez corregido, debería quedar así:
Código: [Seleccionar]
public class Artista {

private String dni;
private String nombre;

public Artista(String dni, String nombre) {
this.dni = dni;
this.nombre = nombre;
}

public String getdni() {
return dni;
}

public void setDNI(String DNI) {
this.dni = DNI;
}

public String getnombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

}

Sobre la clase Exposicion.
Hablemos de sus atributos.
Para la hora de inicio y fin, has elegido el tipo double.
Existen clase para trabajar con horas, tiempos y fechas.... pero ahora mismo es mejor no usarlas para no complicar más la cosa.
Así que el tipo double puede servir perfectamente, aunque yo incluso optaría por usar el tipo int y así trabajamos con enteros para las horas.
Esta exposición empieza a las 16 y termina a las 18, esta otra empieza a las 7 y acaba a las 10, etc...

Para el artista, he visto que has puesto un ArrayList. Esto podría estar bien si vamos a considerar que una exposición, puede tener muchos artistas.
Pero leyendo el enunciado, parece que lo que vamos a considerar es que una exposición, tiene solo un único artista.
Así que yo optaría por esto último, además simplifica las cosas.

Además, en el constructor de Exposicion ya has puesto que se recibe un Artista de forma externa, aunque luego no haces nada con él.
Aquí tenemos dos opciones:
- el Artista se recibe por constructor, y por tanto, esta clase no es necesario que pida datos para crear un artista.
- el constructor NO recibe ningún Artista, y por tanto, esta clase ha de tener un método para pedir datos mediante Scanner y así construir el artista.

Ambas posibilidades son válidas. Yo, personalmente, prefiero la primera. Porque me gusta más que haya una sola clase encargada de pedir datos, ya sea la clase prinicipal o una clase "gestora" que se encargue expecíficamente de esto.
El resto de clases prefiero que tan solo reciban datos, los guarden, operen con ellos... pero que no tengan que pedirlos.

Si lo hacemos así, ya no necesitamos tampoco importar la clase Scanner, ni tampoco la clase ArrayList porque solo vamos a tener un artista por exposición.

Yo, por ahora, dejaría así la clase Exposicion
Código: [Seleccionar]
public class Exposicion {

private int inicio;
    private int fin;
    private Artista artista; //Una exposicion, solo tiene un artista

    public Exposicion(int inicio, int fin, Artista artista) {
        this.inicio = inicio;
        this.fin = fin;
        this.artista = artista;
    }

    public int getInicio() {
        return inicio;
    }

    public void setInicio(int inicio) {
        this.inicio = inicio;
    }

    public int getFin() {
        return fin;
    }

    public void setFin(int fin) {
        this.fin = fin;
    }
   
    public Artista getArtista() {
return artista;
}

public void setArtista(Artista artista) {
this.artista = artista;
}

}

Aunque insisto en que se podría usar double en lugar de int, y que también se podría hacer que esta clase pidiera datos para crear el Artista. Esto ya es a gusto del programador.

Sobre la clase Galeria (ojo que has escrito mal el nombre).
Una galeria puede tener muchas exposiciones.
Así que en este caso, sí nos vendrá bien usar un ArrayList de exposiciones.
Has añadido dos atributos: código y capacidad.
No los pide el enunciado, pero bueno, son atributos que tienen sentido para una galería, así que podemos usarlos.

Veo que has puesto un método para pedir datos y crear exposiciones. Como ya he dicho, se puede hacer así si lo deseas.
Pero entonces no tiene sentido que el método para crear exposiciones, reciba como argumento una exposición. No la está usando para nada, porque va a crear su propio objeto Exposicion.

Otro fallo en este método es que para crear la Exposicion, llamas a un constructor que solo recibe hora de inicio y fin. Pero el constructor de Exposicion exige recibir también un Artista.

Citar
    public void AgregarExposicionDatos(Exposicion expo){ //NO ha de recibir nada por paréntesis
   
    Scanner in = new Scanner(System.in);
    System.out.print("Ingrese la hora de inicio");
    double inicio = in.nextDouble();
    System.out.print("Ingrese la hora del final");
    double fin = in.nextDouble();
    this.LExposicion.add(new Exposicion (inicio,fin)); //Constructor de exposicion erróneo, falta Artista
   
    System.out.print("Exposicion creada ...");
}


Así que tendrías que cambiar el constructor de Exposicion para que no pida recibir un Artista, o bien, añadirle un segundo constructor donde solo pida las horas de inicio y fin.
Así se podrá crear una Exposición de las dos formas, pero recuerda que luego habrá que pedir los datos del Artista.

Yo, igual que antes, voy a preferir que esta clase no pida datos, tan solo que los reciba.

Pero atención, tanto si recibe Exposiciones ya creadas, como si se encarga ella de crearlas pidiendo datos con Scanner...., antes de añadirlas al ArrayList, se ha de comprobar que sus horas de inicio y fin no se solapan con las de otra Exposicion.

Si existe una Exposicion que empieza a las 16 y acaba a las 18..., no voy a poder añadir otra Exposicion que comience a las 17..., porque de 16 a 18 ya hay otra Exposicion ocupando la Galeria.

Hemos de añadir código para decidir si aceptamos o rechazamos una Exposicion, según su hora de inicio y fin.

Por desgracia se me acaba el tiempo y ahora no puedo seguir con esto.  :(
Luego cuando pueda intentaré seguir avanzando. Ves pensando en una forma de comprobar el tema de las horas de las exposiciones, que no coincidan unas con otras.
De momento, la clase Galeria la tengo así:

Código: [Seleccionar]
import java.util.ArrayList;

public class Galeria {
private int codigo;
private int capacidad;
private ArrayList<Exposicion> LExposicion;

public Galeria(int codigo, int capacidad) {
this.codigo = codigo;
this.capacidad = capacidad;
this.LExposicion = new ArrayList<Exposicion>();
}

public void agregarExposicion(Exposicion expo) {
/*
* Antes de aceptar la exposicion,
* hay que comprobar si sus horas de inicio/fin
* se solapan o no con otras exposiciones ya
* registradas
*/
}

public void ImprimirListaExposicion(){

System.out.println("Lista de exposiciones ");
for ( Exposicion  Expo : this.LExposicion){
System.out.println("Inicio: " + Expo.getInicio() + "Fin: "+ Expo.getFin());
}

}

public int getCodigo() {
return codigo;
}

public void setCodigo(int codigo) {
this.codigo = codigo;
}

public int getCapacidad() {
return capacidad;
}

public void setCapacidad(int capacidad) {
this.capacidad = capacidad;
}

}

NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

CesarJ

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re: Dudas con un ejercicio Java, Registrar y Listar con Menú
« Respuesta #2 en: 18 de Octubre 2021, 20:51 »
Está bien, gracias. Iré avanzando lo que pueda...
« Última modificación: 13 de Abril 2022, 18:55 por Alex Rodríguez »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Dudas con un ejercicio Java, Registrar y Listar con Menú
« Respuesta #3 en: 19 de Octubre 2021, 01:11 »
Hola de nuevo.
Releyendo el enunciado, parece ser que nos ha faltado un atributo para la clase Exposicion, ya que pide listar los "tipos de exposición".
Así que habría que agregarle dicho atributo, además de sus métodos get y set y actualizar el constructor
Citar
public class Exposicion {

   private int inicio;
    private int fin;
    private Artista artista; //Una exposicion, solo tiene un artista
    private String tipo;

    public Exposicion(int inicio, int fin, Artista artista, String tipo) {
        this.inicio = inicio;
        this.fin = fin;
        this.artista = artista;
        this.tipo = tipo;

    }

    public int getInicio() {
        return inicio;
    }

    public void setInicio(int inicio) {
        this.inicio = inicio;
    }

    public int getFin() {
        return fin;
    }

    public void setFin(int fin) {
        this.fin = fin;
    }
   
    public Artista getArtista() {
      return artista;
   }

   public void setArtista(Artista artista) {
      this.artista = artista;
   }

   public String getTipo() {
      return tipo;
   }

   public void setTipo(String tipo) {
      this.tipo = tipo;
   }


}


Dicho esto, volviendo a la clase Galeria, dijimos que al recibir una nueva Exposicion, antes de agregarla había que comprobar que su horario no se solapase con el horario de otras exposiciones ya registradas.
Así que he decidido hacer un método que sea de tipo boolean, para que retorne true si aceptamos la exposición o false si la rechazamos.

Para decidir si se acepta o no, lo que hago es recorrer el ArrayList y comparar los horarios de la nueva expo con las existentes, si veo que hay alguna que se solapa el horario, directamente retorno false y se acabó la búsqueda.
No se si el código que he puesto para comprobar los horarios es correcto, pero bueno, creo que más o menos funcionará.
Código: [Seleccionar]
public boolean agregarExposicion(Exposicion expo) {
if (LExposicion.isEmpty()) {//Lista exposiciones vacía
LExposicion.add(expo); //aceptamos expo sin comprobar nada.
return true;
}
else {
/*
* Recorremos la lista de exposiciones para ver si hay alguna
* que se solape con la que queremos agregar.
* En cuanto encontremos una que se solape, rechazaremos la nueva expo
* Si no se encuentra ninguna, entonces es aceptable
*/
for (Exposicion otraExpo: LExposicion) {
if (expo.getInicio() == otraExpo.getInicio())
return false; //Se solapan, comienzan al mismo tiempo
else if (expo.getFin() == otraExpo.getFin())
return false; //Se solapan, acaban a la misma hora
else if (expo.getInicio() < otraExpo.getInicio() && expo.getFin() > otraExpo.getInicio())
return false; //Se solapan, hay una expo que comienza antes de que la nueva termine
else if (expo.getInicio() < otraExpo.getFin())
return false; //Se solapan, la nueva expo comienza cuando ya hay otra exponiéndose
}
//Si el bucle for consigue finalizar sin retornar false, es que la nueva expo es aceptable
LExposicion.add(expo);
return true;
}
}


Bueno, tras esto, y mirando en el enunciado lo que se pide registrar y lo que se pide listar, me surge una duda.
La línea que marco en negrita:
Citar
1. Registrar exposición
      - Registrar exposición
      - Registrar artista
      - Registrar exposiciones del artista (anteriores y actuales)
      - Listar exposiciones activas
2. Configurar exposiciones y galerías
      - Listar tipos de exposición
      - Listar galerias ocupadas y vacantes

¿Es posible que esté equivocada y lo correcto sea "Listar exposiciones del artista" ?
Es que si es "Registrar", pues la verdad es que entonces no se a qué se refiere. Ya tenemos un registro de exposiciones, y cada exposición está relacionada con su artista.
¿Qué es eso de un segundo registro de "exposiciones del artista"?
No lo entiendo...

En cambio, si fuera "Listar", lo veo más lógico. Consistiría en que al usuario le preguntamos por un Artista, para luego darle un listado de las exposiciones asociadas con dicho artista.

Mientras se aclara esta duda, podemos fijarnos en los otros listados.
Nos piden:

Citar
- Listar exposiciones activas
Supongo que por "activas" se refieren a que si se están exponiendo en "este momento".
Es decir, le preguntaríamos al usuario ¿Qué hora es? y entonces recorremos las exposiciones buscando cuáles tienen horarios que coincidan con esa hora.
Para lograr esto, necesitamos que la clase Exposicion sea capaz ella misma de informar si está activa o no.
Así que podemos añadirle un método que reciba una hora y retorne true si dicha hora está dentro de su horario o false en caso contrario.
A Exposicion, le añadimos este método:
Citar
   public boolean estaActiva(int hora) {
      if (hora >= inicio && hora < fin)
         return true;
      else
         return false;
   }

También podríamos añadirle (sobreescribir para ser más exactos) el método toString().
Este método se usa para hacer que una clase devuelva una cadena de texto con los datos y formato que consideremos adecuados para mostrarse en pantalla.
Así cuando queramos listar sus objetos en pantalla, será más cómodo porque la propia clase ya nos proporcionará la cadena que hay que mostrar:
Código: [Seleccionar]
@Override
public String toString() {
String cadena = "Artista: " + artista.getnombre();
cadena += " - Tipo: " + tipo;
cadena += "\nHorario: " + inicio + ":00 - " + fin + ":00";

return cadena;
}
La etiqueta @Override es para indicarle a Java que dicho método, es para sobreescribir un método heredado.
En Java, TODAS las clases heredan el método toString() desde la clase Object, que es algo así como la superclase suprema de la que todas las demás son hijas.
Lo que pasa es que ese método heredado, solo será útil si lo sobreescribimos para decirle como tiene que actuar.

Pues bueno, ahora que la clase Exposicion ya sabe decirnos si está activa o no, y también sabe como ha de ser la cadena con la que se muestre en pantalla, vamos a ver como le decimos a Galeria que nos haga un listado de las exposiciones activas.
Bueno, en realidad no será una lista. Se supone que en cada momento solo habrá una exposicion activa en una galería.

Así que cada galería, mostrará una sola exposicion activa, o ninguna...

A la clase Galeria, le damos este método:
Código: [Seleccionar]
public void imprimirExposicionesActivas(int hora) {
System.out.println("\nCodigo de Galería: " + codigo);
System.out.println("Exposicion Activa:");
boolean hayActiva = false;
for (Exposicion expo: LExposicion)
if (expo.estaActiva(hora)) {
hayActiva = true;
System.out.println(expo); //Gracias al método toString(), con esto es suficiente
}
//Es posible que no haya ninguan expo activa, hay que informar de esto.
if (!hayActiva)
System.out.println("No hay exposiciones activas en esta Galería");
}

Que más listados nos piden:
Citar
      - Listar tipos de exposición

Pues habrá que pedirle a cada Galeria, que recorra sus exposiciones y muestre el valor del atributo "tipo".
Creo que con este método es suficiente:
Código: [Seleccionar]
public void imprimirTiposExposiciones() {
System.out.println("\nCodigo de Galería: " + codigo);
System.out.println("Tipos de Exposición:");
if (LExposicion.isEmpty())
System.out.println("No hay exposiciones en esta Galería");
else
for (Exposicion expo: LExposicion)
System.out.println("- " + expo.getTipo());
}

Más listados:
Citar
      - Listar galerias ocupadas y vacantes

Yo ahí entiendo que se refiere a listar TODAS las galerías, sin condiciones.
Pero este listado, se tendrá que hacer desde la clase principal, que será quien tenga un ArrayList de objetos Galería

Sin embargo, igual que hemos hecho antes, podemos darle a Galeria un método toString() para que ella misma sepa construir una cadena informando de si está vacante(sin exposiciones) o si está ocupada y que entonces además nos diga cuántas exposiciones tiene registradas.
Así cuando escribamos el método para listar galerías, será más sencillo.
Código: [Seleccionar]
@Override
public String toString() {
String cadena = "Codigo de Galería: " + codigo;
cadena += "\nCapacidad: " + capacidad;
if (LExposicion.isEmpty())
cadena += "\nEstado: Vacante. No hay exposiciones";
else
cadena += "\nEstado: Ocupada. Hay " + LExposicion.size() + " exposiciones";

return cadena;
}


Pues bien, solo queda aclarar la duda que puse antes, sobre si lo de las "exposiciones de artistas" es registrar, o es listar.
Y ponernos ya con la clase principal.
Pero me temo que hasta mañana por la noche no podré continuar.

Un saludo.
« Última modificación: 20 de Octubre 2021, 00:00 por Kabuto »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Dudas con un ejercicio Java, Registrar y Listar con Menú
« Respuesta #4 en: 20 de Octubre 2021, 00:25 »
A ver, sigo sin tiempo  :-\

Pero puedo proponer un diseño de como podría ser la clase principal

Tendría dos ArrayLists, uno para Galerías y otro para Artistas.
Las Exposiciones se guardaría directamente en alguna de las Galerías, podemos hacer que el usuario elija la Galería o bien que el sistema automáticamente una Galería donde pueda registrarse siempre que sea aceptable por su horario.
Si dejamos que el usuario elija Galería, igualmente puede encontrarse con que la Galería escogida rechace su Exposicion por problemas de horarios, así que quizás sea más sencillo hacer que sea el programa quien busque una Galería disponible.

Las Galerías habrá que crearlas a mano al comenzar el programa. Se puede ofrecer opción para que el usuario elija cuantas quiere crear y que inserte los datos de codigo y capacidad.
Pero como el enunciado no dice nada sobre esto, pues podemos simplificarlo creandolas "a mano" nosotros en el código.

Tras crearlas, ofrecemos menú de opciones que se repita hasta que el usuario elija terminar.
Al leer opción, la analizamos con un switch y según lo escogido, llamaremos al método correspondiente.

Porque eso lo que haremos, un método para cada función: uno para crear un artista, otro para crear una exposicion y guardarla en una galeria, etc...

Propongo este código, que como digo, es un "boceto". Habría que añadir todos los métodos para cada opción del menú.

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;

public class GestionMuseo {

private static ArrayList<Galeria> galerias = new ArrayList<Galeria>();
private static ArrayList<Artista> artistas = new ArrayList<Artista>();
private static Scanner teclado = new Scanner(System.in);

public static void main(String[] args) {
crearGalerias();
int opcion = 0;
while (opcion != 9) {
System.out.println("\n\n\tGESTION MUSEO");
System.out.println("\t------- -----\n");
System.out.println("[1] -- Registrar EXPOSICION");
System.out.println("[2] -- Registrar ARTISTA");
System.out.println("[3] -- Listar EXPOSICIONES por ARTISTA");
System.out.println("[4] -- Listar EXPOSICIONES activas");
System.out.println("[5] -- Listar tipos de EXPOSICION");
System.out.println("[6] -- Listar GALERIAS ocupadas y vacantes");
System.out.println("[9] -- TERMINAR PROGRAMA");
System.out.print("Elija opcion: ");
opcion = Integer.parseInt(teclado.nextLine());
switch(opcion) {
case 1:
//Llamar a método para registrar EXPO y asignarla a una GALERIA
break;
case 2:
//Llamar a método para registrar ARTISTA
break;
case 3:
//Llamar a método para listar EXPOS según un ARTISTA
break;
case 4:
//Llamar a método para listar EXPOS activas, según una hora indicada
break;
case 5:
//Llamar a método para listar los tipos de EXPOSICION
//O tal vez haya que pedir un tipo y listar EXPOSICIONES de dicho tipo...
//No estoy seguro.... ¯\_(ツ)_/¯
break;
case 6:
//Llamar a método para listar GALERIAS ocupadas y vacantes(o sea, todas...)
break;
case 9:
System.out.println("\n\tFIN DE PROGRAMA");
break;
default:
System.out.println("Opcion equivocada...");
}
}

}

private static void crearGalerias() {
galerias.add(new Galeria(101, 45));
galerias.add(new Galeria(102, 55));
galerias.add(new Galeria(103, 40));
galerias.add(new Galeria(104, 25));
}

}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".