Sei sulla pagina 1di 5

UNIVERSIDAD MARIANA

FACULTAD INGENIERÍA – PROGRAMA INGENIERÍA DE SISTEMAS


ESTRUCTURAS DE DATOS 1
HOJA DE TRABAJO NIVEL 8 – VÁLIDA PARA EL CRITERIO OTROS DEL CORTE (20%)
Objetivo Número de
participantes
1. Generar reportes de información del mundo en archivos de datos. 1
Duración de la actividad
2 HORAS
INSTRUCCIONES
1. Analiza el modelo que se encuentra en
https://cupi2.virtual.uniandes.edu.co/images/APO2/N8/CasosEstudio/Discotienda/ModeloConceptual.jpg y
contesta las preguntas:

Pregunta Respuesta Pregunta Respuesta


¿Cuántas clases tiene el 6 ¿Cuántos métodos tiene la 13
modelo? clase Disco?
¿Qué tipo de contenedora Variable ¿Qué datos se requieren Nombre, segundos,
es la relación canciones? para crear una canción? minutos, tamaño, calidad,
precio, unidaes vendidas
¿Cuántos discos puede Muchos ¿Cuáles son las clases de PercistenciaException
manejar la aplicación? tipo Exception? ArchivoVentaException
ElementoExisteException
¿Qué datos se requieren Causa y Ventas ¿En qué archivo se “.data/error/log”
para crear una excepción guardarán los datos log de
ArchivoVentaException? la discotienda?

2. Se requiere un informe de todas los discos de género y artista dados por el usuario. El informe debe tener todos
los datos de los discos incluyendo la cantidad de canciones. Si no existen discos se debe lanzar el error
correspondiente utilizando la excepción PersistenciaException.

Pista:
En el libro del curso puedes consultar la sección 3.8 Escritura de archivos que se encuentra en las páginas 115 – 116

a. Complete el requerimiento funcional.


ID: RF1 Nombre: Informe de todas los discos de género y artista dados por el usuario.

Resumen: Se requiere un informe de todas los discos de género y artista dados por el usuario. El
informe debe tener todos los datos de los discos incluyendo la cantidad de canciones. Si
no existen discos se debe lanzar el error correspondiente utilizando la excepción
PersistenciaException.
Entradas: Los datos de los discos y la cantidad de caciones

Resultado: Todos los discos de genero y artistas dados por el susario

Situación anormal: Si no existen discos se debe lanzar el error correspondiente utilizando la excepción
PersistenciaException.
b. Programe el método que permite dar respuesta al requerimiento anterior.
/**
*
*
*
*/
Public class Discotienda
__________________________________________________________________________
{
Public void generarInforme (String pGenero, String pArtista)
{

if(discos.size==0)
{ trhow new Exception (“No hay discos. Imposible generar el Informe”);
}
File archivo = new File(“./data/informe.txt”);
printWriter plumita = new PrintWriter(archivo);

for(int i=0; i<discos.size(); i++)


{Disco miDisco = (Disco) discos.get(i);
if(miDisco.darGenero().equals(pGenero) && miDisco.darArtista().equals(pArtista))
{
Plumita.printLn(miDisco.darArtista() + “” + miDisco.darGenero() + “” +
misDisco.darNombreDisco() + “” + miDisco.darImagen()+ “” +
miDisco.darPrecioDisco() + “” + );
} }
Pluma.close();
}
}
3. En la aplicación de la discotienda se requiere un servicio que permita generar un reporte de las canciones que
pertenecen a discos de género POP o ROCK baratas y de alta calidad. Una canción es barata si cuesta menos de 10
mil y es de alta calidad si tiene más de 5000 Kbps. Seleccione el directorio y nombre del archivo donde escribirá la
información del reporte. El formato debe ser el siguiente:

CANCIONES POP-ROCK BARATAS Y DE ALTA CALIDAD


-----------------------------------------------------------------------

DISCO CANCIÓN CALIDAD PRECIO


--------------------------------------------------------------------------------------------
@@@@ @@@@ #### #####
@@@@ @@@@ #### #####


Se debe reemplazar los símbolos @@@ y ### por la información correspondiente

a. Programa el método que resuelve el problema planteado anteriormente.


/**
*
*
*

*/
4. En la aplicación de la discotienda se requiere un servicio que permita generar un reporte de las canciones que
pertenecen a discos de género POP o ROCK baratas y de alta calidad. Una canción es barata si cuesta menos de
10 mil y es de alta calidad si tiene más de 5000 Kbps. Seleccione el directorio y nombre del archivo donde
escribirá la información del reporte. El formato debe ser el siguiente:

public class Discotienda


_________________________________________________________________________
{

Public void generarReporte()

{
if(discos.size==0)
{ trhow new Exception (“No hay discos. Imposible generar el Informe”);
}

File archivo = new File(“./data/reporte.txt”);


printWriter plumita = new PrintWriter(archivo)

for(int i=0; i<discos.size(); i++ )


{
Disco miDisco=(Disco) discos.get(i);
if((miDisco.darGenero.equals(“POP”) || miDisco.darGenero.equals(“ROCK”))
for(int j=o; j<canciones.size(); i++)
{
Cancion miCancion=(Cancion) canciones.get(j);
if(miCancion.darPrecio<10000 && miCancion.darCalidad>5000)
{
Plumita.printLn(miDisco.darNombreDisco() +”“+ miCancion.darNombre() +”“+
miCancion.darcalidad() +”“+ miCancion.darPrecio());
}

}
Plumita.close();

}
}

Potrebbero piacerti anche