Supletorio#
Punto 1: Programación Orientada a Objetos (50 puntos)#
Diseña un sistema que modele una biblioteca en Java utilizando los principios de Programación Orientada a Objetos (POO). El sistema debe considerar los siguientes elementos:
Clases: Define una clase principal llamada
Libro
, que represente los atributos y métodos necesarios para los libros que se almacenan en la biblioteca. Además, crea otras clases derivadas que hereden deLibro
, comoNovela
yEnciclopedia
, para modelar diferentes tipos de libros.Atributos y Métodos: Cada clase debe tener atributos como el título, el autor, el número de páginas, y el año de publicación. Define métodos para mostrar la información del libro y realizar otras operaciones que consideres necesarias. Al menos 2 atributos por clase y un método por clase.
Herencia: Aplica herencia para evitar la duplicación de código y agregar funcionalidades específicas en las subclases, por ejemplo, que una enciclopedia tenga un volumen y una novela un género literario.
Visibilidad: Utiliza modificadores de acceso (
private
,public
,protected
) adecuados para cada atributo y método de las clases. Justifica por qué ciertos atributos deben ser privados o protegidos y cómo se deben manipular utilizando métodos (getters y setters). De los 6 atributos creados al menos 4 deben ser privados.
En tu diseño, describe cómo cada pilar de la POO (Encapsulamiento, Herencia, Polimorfismo y Abstracción) se refleja en tu solución. No es necesario implementar el código, pero describe detalladamente cómo estructurarías cada clase y las relaciones entre ellas.
Punto 2: Arreglos Unidimensionales (50 puntos)#
Imagina que se te ha encargado desarrollar un programa que permita gestionar un inventario de una tienda de tecnología. Para ello, debes diseñar una solución que use arreglos unidimensionales para almacenar los nombres y precios de los productos. En este contexto, se te pide lo siguiente:
Definición de los Arreglos: Utiliza dos arreglos unidimensionales, uno para almacenar los nombres de los productos y otro para almacenar los precios correspondientes de cada producto.
Búsqueda: Implementa una función de búsqueda de un producto en el arreglo de nombres y que devuelva el precio asociado desde el otro arreglo.
Total de Productos: Implementa una función que dado un producto y una cantidad calculer e imprima o retorne el total de la compra.
Aplicaciones: Describe cómo esta solución basada en arreglos podría aplicarse en una tienda con un inventario fijo y pequeño. Reflexiona sobre las limitaciones de los arreglos para este tipo de problemas y posibles alternativas si el número de productos crece.