This website uses cookies to manage authentication, navigation, and other functions. By using our website, you agree that we can place these types of cookies on your device.

View e-Privacy Directive Documents

You have declined cookies. This decision can be reversed.

You have allowed cookies to be placed on your computer. This decision can be reversed.

Teaching

Ejercicio especial programación - Tema 4: Métodos

Ejercicio especial programación - Tema 4: Métodos

 

Descripción del negocio (Universo del discurso)

Queremos hacer un sistema de gestión de una biblioteca de libros.

Nuestra biblioteca tendrá colecciones.

Dentro de cada colección tendremos libros.

A nuestra biblioteca le podremos añadir y eliminar colecciones. Nuestra biblioteca tendrá un nombre, una dirección y un teléfono.

Las colecciones tendrán un nombre por ejemplo: “Colección de Quevedo” y pertenecerán a un género concreto. Los géneros podrán ser: “Drama”, “Poesía”, “Novela”, “Ciencia Ficción”, “Romántica”

A una colección le podremos dar de alta y baja libros. Un libro podrá pertenecer a varias colecciones.

De un libro queremos saber el nombre, el autor, año de escritura y a que colección pertenece.

 

Tarea -> Hacer un análisis del problema.

 

Diseño de la solución:

-Queremos poder crear un libro de las siguientes maneras:

Book (String nombre, String autor, int anno)

Book (String nombre, String autor)

(Si no se sabe el año se pondrá por defecto 0)

Book (String nombre)

(Si no se sabe el año se pondrá por defecto 0, si no se sabe el autor se pondrá “anónimo”)

-Queremos poder crear colecciones de la siguiente manera:

BookCollection(String nombre, Genero genero)

BookCollection(Genero genero)

(Si no se sabe el nombre de la colección se pondrá “una colección”).

-No se puede añadir un mismo libro a una colección dos veces.

-Al añadir un libro a una colección debemos devolver True o False si se ha realizado con éxito.

-Al eliminar un libro de una colección debemos devolver True o False si se ha realizado con éxito.

-Todas las clases tendrán un método toString("")

-La clase Book, devolverá todos los datos del libro.

-La clase BookCollection, devolverá el nombre de la colección, el género y un listado de todos los libros.

-La clase Library, devolverá los datos de la biblioteca.

 

Implementación:

A programar en JAVA!!!!

 

Pruebas:

Cree una clase BibliotecaTest.java con el método "main" para probar el sistema.

Deberá:

Crear una biblioteca,

Crear al menos 3 colecciones usando distintos constructores,

Crear al menos 10 libros usando distintos constructores,

Añadirlos a las colecciones,

Eliminarlos de las colecciones.

 

Ampliación para el Tema 5:

Punto 1:

En la clase BookCollection, cuando se quiera añadir un libro cuyo nombre sea igual a alguno que pertenezca a esa colección se deberá lanzar una excepción del tipo "IllegalArgumentException" explicando el problema encontrado.

Capturar dicha excepción en nuestro código cliente (clase de pruebas) y mostrar un mensaje de error por la consola explicando el problema.

Pruebas:

Crear una biblioteca,

Crear (al menos) 2 colecciones,

Crear (al menos) 5 libros. 2 de ellos con el mismo nombre, por ejemplo, "El Quijote".

Probar a añadir a una colección los dos libros con el mismo nombre, capturando la excepción y sin capturarla con un Try - catch.

Punto 2:

Sobreescribir el método "AddBook (String nombre, String autor, int anno)." (crear un método nuevo pero distintos parámetros de entrada) de la clase "BookCollection", donde pasemos los datos de un libro.

Este método creará un libro con los datos y lo añadirán a la colección. Pero si ya existe un libro con ese nombre, entonces lanzaremos una excepción del tipo "LibroExistenteException". Para ello tendremos que crear una nueva excepción con una clase nueva "LibroExistenteException" que herede de la clase "Exception", ver ejemplo en la web.

Para hacer este método, se tendrá que reuitilizar todo el código que hicimos para el punto 2 y NO PROGRAMAR NADA NUEVO

Pruebas:

Crear una biblioteca,

Crear (al menos) 2 colecciones,

Crear (al menos) 5 libros. 2 de ellos con el mismo nombre, por ejemplo, "El Quijote". Usando el método AddBook (String nombre, String autor, int anno)

Probar capturando la excepción y sin capturarla con un Try - catch.

 

Formal education

 

Year

Institution

Subject

Hours - ECTS

2017 - Second term Universidad Politécnica de Madrid Programación  
2016 - First term Universidad Politécnica de Madrid Sistemas Distribuidos y Computación en la Nube 45hrs - 4.5ECTS
2016 - Second term Universidad de Valladolid Fundamentos de las tecnologías de la información 60hrs - 6ECTS
2011 - Second term Universidad Carlos III de Madrid Diseño Basado en Componentes (Colmenarejo Campus) 60hrs - 6ECTS
2011 - Second term Universidad Carlos III de Madrid Diseño Basado en Componentes (Leganes Campus) 60hrs - 6ECTS
2011 - First term Universidad Carlos III de Madrid Metodología de desarrollo visual 21hrs - 6ECTS
2010 - Second term Universidad Carlos III de Madrid Diseño Basado en Componentes 60hrs - 6ECTS
2010 - First term Universidad Carlos III de Madrid Procesos de desarrollo del software 28hrs - 6ECTS
2009 - Second term Universidad Carlos III de Madrid Diseño Basado en Componentes 60hrs - 6ECTS
2009 - First term Universidad Carlos III de Madrid Ingeniería de la información 30hrs - 6ECTS
2008 - Second term Universidad Carlos III de Madrid Diseño basado en componentes 60hrs - 6ECTS
2007 - Second term Universidad Carlos III de Madrid Diseño basado en componentes 60hrs - 6ECTS
2006 - Second term Universidad Carlos III de Madrid Diseño de software avanzado 75hrs - 7ECTS
2006 - First term Universidad Carlos III de Madrid Diseño basado en componentes 60hrs - 6ECTS
2005 - Second term Universidad Carlos III de Madrid Diseño software avanzado 75hrs - 7ECTS
2005 - Second term Universidad Carlos III de Madrid Diseño basado en componentes 60hrs - 6ECTS
2004 - Second term Universidad Carlos III de Madrid Diseño basado en componentes 60hrs - 6ECTS
   

Total:

894hrs - 96.5ECTS

Copyright © 2017 Diego Martín. All Rights Reserved.