Java - Ayuda con este proyecto

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con este proyecto

Publicado por Abel (6 intervenciones) el 07/02/2019 09:17:35
Buenos días, tengo este ejercicio de Java en clase y llevo una semana con este proyecto y no soy capaz de sacarlo. Os dejo el enunciado del ejercicio y a ver si alguien puede echarme una mano.

Aplicación compuesta por las siguientes clases:

Libro con los atributos: título, autores (array de String), editorial, año publicación, páginas, número de ejemplares disponibles, ISBN. Todos los atributos son privados y tendrá métodos getter, setter, constructores, y un método que genere un libro aleatorio.

Lector, con los atributos: nombre, dni, número de libros prestados. Todos los atributos son privados y tendrá métodos getter, setter, constructores, y un método que genere un lector aleatorio (el número de libros prestados será 0).

Préstamo. Con los atributos, libro, lector y número de préstamo.

Biblioteca compuesta por un array de libros, un array de lectores y un array de préstamos. El array de libros se inicializará con 300 libros, el de lectores con 50, ambos de forma aleatoria en el constructor. Hay que tener en cuenta que no puede haber ISBN repetidos, ni DNI repetidos. El array de préstamos se inicializará con 150 préstamos todos ellos con número de préstamo igual a 0.

Programa principal con un menú con las siguientes opciones: realizar préstamo, devolver libro, relación de préstamos (número de préstamo, título del libro y nombre del lector).

Un libro sólo se puede prestar si el número de ejemplares disponibles es mayor que 0. Cada vez que se presta, se decrementa este valor en el libro correspondiente de la biblioteca. Un lector sólo puede tener 3 libros prestados. Y el préstamo se coloca en la primera posición que tenga número de préstamo igual a 0.
Al devolver el libro, se incrementa el número de ejemplares disponibles en el array de libros, se decrementa el número de libros prestados en el array de lectores, y se pone a 0 el número de préstamo.

Con la clase libro nos hacemos un poco lió con el atributo autor, que debe ser una array de String, y con las clases biblioteca y préstamos también tenemos bastante lió. No quiero que alguien me haga el ejercicio y listo, me gustaría entender como solucionarlo.

Muchas gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con este proyecto

Publicado por Billy Joel (874 intervenciones) el 10/02/2019 20:25:13
Que tal Abel,
Ha pasado un tiempo desde que publicaste este post. Lo he visto y estaba casi seguro que nadie respondería, bueno aquí estoy con la solución.

El mayor problema que he visto al realizar este proyecto ha sido generar nombres, titulos y autores.
Para solventar esta dificultad hago uso del famoso Lorem ipsum https://es.lipsum.com/ en donde genero un texto de 5 parrafos, elimino las comas, los puntos y los puntos y comas, además de los saltos de linea. Luego aplico un split separado por espacios en blanco y lo almaceno en una lista para su posterior acceso aleatorio a través de su indice.

Con el problema de los nombres superados entonces es un poco de carpintería.
Lo que queda es a hacer un menú:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public static final int OPCION_SALIR = 0;
public static final int OPCION_REALIZAR_PRESTAMO = 1;
public static final int OPCION_DEVOLVER_LIBRO = 2;
public static final int OPCION_RELACION_DE_PRESTAMOS = 3;
 
public static void main(String[] args) throws IOException {
    //Primero leemos el archivo XML
    Biblioteca b = new Biblioteca();
    int opcion = -1;
    while (opcion != OPCION_SALIR) {
        opcion = b.readOpcion("Introduzca " + OPCION_SALIR + " para salir"
                + "\nIntroduzca " + OPCION_REALIZAR_PRESTAMO + " para realizar un prestamo"
                + "\nIntroduzca " + OPCION_DEVOLVER_LIBRO + " para devolver un libro"
                + "\nIntroduzca " + OPCION_RELACION_DE_PRESTAMOS + " para mostrar relación de prestamos",
                OPCION_SALIR, OPCION_RELACION_DE_PRESTAMOS);
        switch (opcion) {
            case OPCION_SALIR:
                System.out.println("adios");
                break;
            case OPCION_REALIZAR_PRESTAMO:
                b.realizarPrestamo();
                break;
            case OPCION_DEVOLVER_LIBRO:
                b.devolverLibro();
                break;
            case OPCION_RELACION_DE_PRESTAMOS:
                b.relacionPrestamos();
                break;
        }
    }
}

El proyecto completo lo puedes descargar acá http://bit.ly/2tc4Uz4

Cualquier duda solo escribe
Saludos!!
;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con este proyecto

Publicado por Abel (6 intervenciones) el 10/02/2019 21:37:43
Muchas gracias por dedicarle tiempo a esto. Estoy aprendiendo Java y este ejercicio se me estaba complicando. Le intentaré pegar un ojo esta noche y a ver si entiendo lo que has hecho. El otro día avance un poquito en el proyecto, a base de repetición y fallo aprendo alguna cosa. El ejercicio no se entiende muy bien porque nuestra profesora no se expresa de la mejor forma, pero aún así muchas gracias. Estoy muy agradecido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar