Post on 12-Jul-2016
description
PROGRAMACIÓN ORIENTADA A OBJETOS
Curso: 2014/15
EJERCICIOS DE COLECCIONES
Ejercicio 1. Dado el tipo Libro con esta interfaz:
public interface Libro extends Comparable<Libro>{ String getCodigo(); String getAutor(); String getTitulo(); Integer getNumPaginas(); Integer getNumCopiasVendidas(); Double getPrecio(); Boolean getBestSeller(); TipoPrestamo getTipoPrestamo(); void setNumCopiasVendidas(Integer nc); void setTipoPrestamo(TipoPrestamo tp); }
Cree un tipo Librería para implementar una colección de libros con las siguientes
funcionalidades:
1. Dado un valor real p devuelva cuántos libros tienen precio menor que p
2. Dada una cadena de caracteres s devuelve cuántos libros contienen en su título la palabra s
3. Dado un tipo de préstamo devuelve si hay algún libro con ese tipo de préstamo
4. Devuelve la suma de los precios de los libros que son best sellers
5. Dado un autor devuelve la suma de las copias vendidas de libros de ese autor
6. Dado un autor devuelve si todos los libros de ese autor son bestsellers
7. Dado un autor devuelve la recaudación obtenida por la venta de todos sus libros
8. Dado un entero n incrementa en esa cantidad el número de copias vendidas de todos los
libros que son bestsellers
9. Devuelve el libro de más páginas
10. Devuelve el libro de menos precio
11. Devuelve el libro de mayor recaudación
12. Dado un autor devuelve una Librería con los libros de ese autor
13. Dado un autor devuelve el libro de mayor recaudación de ese autor
Ejercicio 2. Añada al tipo Punto un tipo para guardar el cuadrante en el que se encuentra un
punto. Para ello defina un tipo enumerado como este:
public enum TipoCuadrante {
PRIMER, SEGUNDO, TERCER, CUARTO, EJES
}
Añada al tipo Punto un método que devuelva en qué cuadrante se encuentra un punto en
función del signo de su abscisa y su ordenada y otro método que devuelva la distancia al
origen de coordenadas, reutilizando el método que calcula la distancia entre dos puntos.
PROGRAMACIÓN ORIENTADA A OBJETOS
Curso: 2014/15
EJERCICIOS DE COLECCIONES
La interfaz de Punto sería por tanto:
public interface Punto extends Comparable<Punto>{ Double getX(); Double getY(); void setX(Double nx); void setY(Double ny); Double getDistanciaOtroPunto(Punto q); Double getDistanciaAlOrigen(); TipoCuadrante getCuadrante(); void moverDireccion(Double nx, Double ny); }
Ejercicio 3. Cree un tipo NubePuntos que tenga como atributo una lista de objetos de tipo
Punto. Añada métodos a NubePuntos para responder a las siguientes preguntas:
1. Cuántos puntos tienen la abscisa mayor que una dada 2. Cuántos puntos hay en el primer cuadrante 3. Dado un cuadrante cuántos puntos hay en ese cuadrante 4. Dada una distancia d cuántos puntos están a una distancia del origen menor de d 5. Dados dos valores reales dx y dy, cuántos puntos tienen su abscisa mayor que dx y su
ordenada mayor dy 6. Devuelve el centro de gravedad de la nube 7. Dado un cuadrante devuelve el centro de gravedad de los puntos de ese cuadrante 8. Devuelve si existe algún punto sobre el eje de abscisas 9. Dado una distancia d devuelve si todos los puntos están a una distancia menor de d del
origen 10. Dado un Punto como centro y un radio devuelve si hay algún punto dentro de del
circulo definido 11. Ordenar la colección de puntos por el orden natural 12. Ordenar los puntos por su distancia al origen 13. Cuál es el punto más cercano y el más lejano al origen de coordenadas 14. Cuál es el punto con mayor abscisa 15. Dado un cuadrante devuelve una NubePuntos con sólo los puntos de ese cuadrante 16. Dado una distancia d, devuelve una NubePuntos con sólo los puntos que están a
menos de d del origen de coordenadas.