Java - Como puedo hacer este enunciado ?

 
Vista:

Como puedo hacer este enunciado ?

Publicado por vicente jesus oyarce jofre (1 intervención) el 13/11/2019 02:50:15
Se desea construir una aplicación que permita registrar los libros que se venden en la librería "La librería de papel" para poder mostrar a sus usuarios los títulos disponibles. Para esto se solicita su participación dentro del equipo de desarrollo y así permitir dar solución a este requerimiento. El jefe de proyecto ha generado el diagrama de clases que le corresponde implementar en Java.








A continuación se describen los atributos a definir en las clases Libro, Infantil y Técnico, donde correspondan:



Se sabe que los libros tienen un título, un número de páginas, un precio, los libros infantiles tiene un rango de edad (mínimo y máximo) y los libros técnicos cuentan con un indicador para saber si trae incorporado un CD o DVD con material extra.



La interface ICalculable tiene:

iva: 19%
descuentoLibroInfantil: 10%
descuentoLibroTecnico: 5%


Los métodos de la interfaz son:

obtenerTotalCompra: calcula el precio final de la compra, considere el precio del libro y la cantidad que llevará. Esta cantidad se ingresa por el usuario del sistema.
descontar: calcula el descuento que se aplica sobre el total calculado en el método anterior. Se debe calcular el descuento definido en la interfaz dependiendo del tipo de libro.
obtenerTotalFinal: calcula el total de la compra considerando los descuentos. Se debe incluir en el total, el impuesto asociado al IVA.


La clase Libro debe tener un método abstracto que retorne la clasificación del libro (INFANTIL o TÉCNICO), el título y precio. Si es un libro infantil debe agregar el rango de edad. El método debe retornar:

“INFANTIL: El principito, $9.990 para menores entre 9 y 12 años"

o

“TÉCNICO: Aprenda Java en 21 días, $39.990"



La clase Infantil no tiene subclases.



Además, deben existir los siguientes métodos en las clases:

constructores, sobrecargando el método
accesadores
mutadores considerando las reglas de negocio
toString que retorne los atributos de todas las clases sobreescribiendo el método.


Debe existir una clase RegistroLibro que permita:

Guardar en una colección todos los libros (INFANTIL o TÉCNICO) validando que no
exista el título.

Mostrar en pantalla una lista con todos los libros y sus atributos.
Eliminar un libro por su título.
Obtener la cantidad de libros que son extensos, esto es, que tienen más de 500
páginas.





Desde el método main debe:

Agregar un libro infantil y un libro técnico a la colección.
Debe mostrar el total final para el libro infantil.
Obtener la cantidad de libros extensos.
Eliminar un libro
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como puedo hacer este enunciado ?

Publicado por pablo (239 intervenciones) el 13/11/2019 14:58:06
Hola Vicente, solo debes de crear una clase libro primero que nada, luego a su vez crearas dos clases más que heradaran de dicha clase libro esto lo puedes conseguir con la palabra reservada extends es decir algo como:

1
public class LibroInfantil extends Libros

Ya también te dice que atributos de la clase llevara cada uno por ejemplo en la clase libro título, un número de páginas, un precio esto lo puedes lograr declarando los atributos de la clase de forma private de la siguiente forma:

1
2
3
4
5
public class Libros {
  private String titulo;
  private int numPag; //Para número de páginas
  private double precio;
}

A su vez debes agregar los respectivos metodos getter y setter de dichos atributos.

En cuanto a la interfaz puedes crear una interfaz con la palabra reservada interface:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public interface iCalculable{
 
//yo pondria estos atributos de tipo final pues deben de ser fijos para que no 
//sean modificables pero eso ya dependera de como tu los
//quieras trabajar
 
 final double iva =  0.19;
 final double descuentoLibroInfantil =  0.10;
 final descuentoLibroTecnico= 0.05;
 
 double obtenerTotalCompra(int precio, int cantidad);
 double  descontar (int precio, double descuento);
 double obtenerTotalFinal(double iva);
}

En las interfaces solo se define el método y después que las implementes le dirás que hacer o llevara la lógica del método.

Luego con la clase de RegistroLibros yo crearía un arreglo de tipo libros que me vaya almacenando libros o un arraylist del mismo tipo y voy recorriendo el arreglo para un bucle for o foreach, para los demás métodos por lo menos el de mostrar lo puedes recorrer ya con un arreglo, para el de eliminar si lo hiciste con un arraylist puedes eliminarlos con el método remove y para obtener los libros que son mayores a 500 páginas lo mismo recorrer con un for o foreach tu colección y luego por cada vuelta de bucle válidas con un if aquellos que son mayores de 500 páginas debes de tener tu contador que que se vaya incrementando y te de un número en concreto de libros.

Espero haberte ayudado a comprender un poco más el problema

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