Documente Academic
Documente Profesional
Documente Cultură
º 2
Condiciones de Entrega
Página 1 de 8
Estructuras de Datos 2019 Trabajo Práctico N.º 2
Ejercicios
1. El Banco Litoral planea ofrecer a sus clientes una nueva línea de créditos y para ello
necesita un sistema informático que registre:
Cliente
Atributo Tipo de Datos
Apellido String
Nombre String
Documento String
Tipo ClienteTipoEnum
ClienteTipoEnum
Atributo Tipo de Datos
Descripción String
Valores posibles: Persona, Comercio, Empresa de Construcción
Crédito
Atributo Tipo de Datos
Número Entero
Tipo CréditoTipo
Cliente Cliente
Monto acordado Double
Plazo en años Entero
Sucursal Sucursal
Total a devolver Double
CréditoTipo
Atributo Tipo de Datos
Descripción String
Monto Mínimo Double
Monto Máximo Double
Años Mínimo Entero
Años Máximo Entero
ClienteTipo ClienteTipoEnum
Tasa de Interés Double
Página 2 de 8
Estructuras de Datos 2019 Trabajo Práctico N.º 2
a) Construya las clases y enumeraciones Java que considere necesarias para dar
solución al problema. Todas ellas deberán contar con:
1. Constructor parametrizado.
2. Método equals().
3. Método toString().
b) Agregue al constructor de la clase Crédito y a los métodos que modifiquen datos los
controles necesarios para que no se otorguen créditos que no cumplan las condiciones
establecidas por el tipo de crédito.
d) Establezca como criterio de comparación por defecto para la clase Crédito el atributo
Número.
/**
* Devuelve el credito ubicado en index.
* @param index
* @return
*/
public Credito get(int index) { return creditosList.get(index); }
/**
* Quita y devuelve el elemento ubicado index.
* @param index
* @return
*/
public Credito remove(int index) { return creditosList.remove(index); }
/**
* Devuelve todos los créditos otorgados a los clientes cuyo tipo es
* pasado por parámetro
* @param tipo
* @return
*/
public abstract List<Credito> creditosPorClienteTipo(ClienteTipoEnum tipo);
Página 3 de 8
Estructuras de Datos 2019 Trabajo Práctico N.º 2
/**
* Devuelve todos los créditos otorgados del tipo y sucursal especificados.
* @param tipo
* @param sucursal
* @return
*/
public abstract List<Credito> creditosPorCreditoTipoySucursal(CreditoTipoEnum tipo,
Sucursal sucursal);
/**
* Devuelve los créditos cuyo monto es inferior a monto.
* @param monto
* @return
*/
public abstract List<Credito> creditosInferioresA(double monto);
/**
* Devuelve los créditos cuyo monto es superior a monto.
* @param monto
* @return
*/
public abstract List<Credito> creditosSuperioresA(double monto);
/**
* Ordena los créditos por el criterio especificado en compareTo()
*/
public abstract void ordenar();
/**
* Ordena los créditos por el criterio pasado por parámetro.
* @param comparator
*/
public abstract void ordenar(Comparator comparator);
/**
* Transforma en String todas las instancias de Credito almacenadas
* en creditosList
* @return
*/
public abstract String toString();
}
Página 4 de 8
Estructuras de Datos 2019 Trabajo Práctico N.º 2
2. Scoops Ahoy necesita realizar un análisis de costos y para tal fin le solicita la construcción
de una aplicación Java que permita registrar las facturas que recibe de sus proveedores.
Se deberá registrar la siguiente información:
Factura
Atributo Tipo de Dato
Tipo de Factura TipoFacturaEnum
Punto de Venta Entero
Número Entero
Fecha Fecha
Proveedor Empresa
Detalle Factura List<FacturaDetalle>
Importe Total Punto Flotante
FacturaDetalle
Atributo Tipo de Dato
Número de ítem Entero
Producto Producto
Cantidad Entero
Precio Unitario Punto Flotante
Sub Total Punto Flotante
TipoFacturaEnum
Valores posibles: Factura A, Factura B, Factura C.
Empresa
Atributo Tipo de Dato
Cuit String
Razón Social String
Situación IVA SituacionIVAEnum
Producto
Atributo Tipo de Dato
Código Entero
Descripción String
SituacionIVAEnum
Valores posibles: Resp. Inscripto, Resp. NO Inscripto, Consumidor Final, Resp. Monotributo
Página 5 de 8
Estructuras de Datos 2019 Trabajo Práctico N.º 2
a) Construya las clases y enumeraciones Java que considere necesarias para dar
solución al problema. Todas ellas deberán contar con:
1. Constructor parametrizado.
2. Método equals().
3. Método toString().
b) Establezca como criterio de comparación por defecto para la clase Factura los datos:
Proveedor, Punto de Venta, Número de Factura.
/** Busca todas las facturas correspondientes al mes y año pasados por
* parámetro. */
public abstract List<Factura> buscarFacturasPorMesAnio(int mes, int anio);
return resultado;
}
}
Página 6 de 8
Estructuras de Datos 2019 Trabajo Práctico N.º 2
Serie
Atributo Tipo de Dato
Título String
Género GeneroEnum
Reparto List<Artista>
Temporadas List<Temporada>
Año de Estreno Entero
Estrellas de calificación Flotante (de 0 a 5)
GeneroEnum
Géneros Válidos: Thriller, Drama, Suspenso, Terror, Comedia, Acción, Ciencia Ficción, Bélica.
Artista
Atributo Tipo de Dato
Apellido String
Nombre String
Temporada
Atributo Tipo de Dato
Número Entero
Cantidad de Episodios Entero
a) Construya las clases y/o enumeraciones que considere necesarias para resolver el
problema.
b) Modifique las clases construidas en el punto anterior de forma que todas ellas cuenten
con:
1. Constructor parametrizado.
2. Métodos de acceso.
3. Métodos equals() y toString().
c) Construya la clase SeriesAdmin y los métodos necesarios para realizar las siguientes
tareas:
1. Ordenar por nombre de la Serie.
2. Ordenar por Género y luego por nombre de Serie.
3. Serie de mayor duración: la serie que mayor cantidad de temporadas tiene.
4. Serie con mayor número de artistas.
5. Series por año de estreno.
6. Peores series (menos de 2 estrellas).
Página 7 de 8
Estructuras de Datos 2019 Trabajo Práctico N.º 2
Proyectos de programación
1. Utilizando Swing o JavaFx, programe una aplicación de escritorio para el punto número 2
del trabajo práctico. Además, cada serie deberá tener una imagen con su póster y un link a
IMDB (www.imdb.com).
Página 8 de 8