Download Jose Luis Garrido Sanchez DNI 28777762R MEMORIA DE

Document related concepts
no text concepts found
Transcript
Jose Luis Garrido Sanchez DNI 28777762R
MEMORIA DE PRACTICA
1ªparte: creación de una clase Nota
Para llevar a cabo esta primera parte se crea una clase Notas.
La clase Notas tiene tres campos:
-Titulo.
-Contenido.
-Fecha de creación.
Titulo y contenido serán tipo String y para la fecha se usaran tres variables tipo int( día , mes y año). El
constructor de la clase necesitara por tanto 5 parámetros que se pasaran al crear una nota nueva (String,
String, int, int, int).
La clase tendrá deferentes métodos:
-setTitulo(String)
modificara el titulo de la nota.
-getTitulo()
devuelve el titulo de la nota.
-setContenido(String)
modifica el contenido de la nota (necesita un parámetro String).
-getContenido()
devuelve el contenido de la nota.
-setFecha(int, int, int)
modifica la fecha(3 parámetros int).
-getFecha()
de vuelve la fecha completa.
-printNote()
imprime por pantalla la nota (titulo, fecha y contenido).
-getDia()
devuelve el día de creación de la nota.
-getMes()
devuelve el mes de creación de la nota
-getAño()
devuelve el año de creación de la nota
Todos estos métodos son bastante explícitos por si mismos y no necesitan mucha explicación.
Los tres últimos métodos, getDia, getMes y getAño, no fueron implementados al principio de la practica,
fueron incorporados mas tarde ya que se necesitaban para las clases de las demás partes de la practica.
Método main
Tal como se pide en el enunciado de la practica se crea una clase Lanzador en la que se implementa un
menú del tipo:
1.- Crear nota.
2.- Ver titulo.
3.- Cambiar titulo.
4.- Ver contenido.
5.- Cambiar contenido.
6.- Ver fecha de creación.
7.- Cambiar fecha de creación.
8.- Imprimir nota.
0.- Salir
Se controla la salida del menú con un bucle "do{}while()", mientras no se introduzca el 0 se estará
ejecutando el programa, y controlamos cada opción del menú con un switch() case1.....case8. Así
podemos jugar con la nota creada, ver el titulo o el contenido, cambiarlos, imprimir la nota completa por
pantalla, etc.
Además esta misma estructura de menú la reutilizaremos en las siguientes partes de la practica
2ºParte: creación de libretas
La clase Libreta necesita de un parámetro (titulo) para inicializarse.
Se implementan los siguientes campos:
-añadirNota(String, String, int, int, int).
-eliminarNota(String).
-listadoDeNotas().
-showNotas().
-buscarNotaPorFecha(int, int, int).
-buscarTituloNotaPorFecha(int, int, int).
-getTitulo().
-tamaño().
-buscarNota(String).
Se utiliza un arrayList<Notas> para la clase Libreta, por lo que tenemos una colección de notas.
añadirNota(String, String, int, int, int)
Este método añade una nota a la colección, pasándole como parámetros el titulo, el contenido, y la fecha,
comprueba mediante un bucle "foreach", si el titulo de la nota ya existe en la colección, en cuyo caso da
un error, con lo que no puede haber dos notas con el mismo titulo.
eliminarNota(String)
Este método elimina una nota de la libreta, conociendo su titulo. Se usa un bucle foreach para buscar la
coincidencia y un método de la clase ArrayList para eliminar el elemento.
listadoDeNotas()
imprime por pantalla los títulos de las notas almacenadas en la colección.
showNotas()
imprime por pantalla todas las notas de la colección. notas completas no solo títulos.
buscarNotaPorFecha(int, int, int)
busca en la colección, con un bucle "foreach", todas las notas anteriores a una fecha pasada por los
parámetros, esto se hace comparando la fecha de cada nota de la colección con la fecha dada. Primero se
compara el año, después el mes y después el día con sentencias "if", y se imprime por pantalla si cumple
la condición, a continuación se coge otra nota de la colección y se hace lo mismo, hasta terminar la
colección.
buscarTituloNotaPorFecha(int, int, int)
Este método es prácticamente igual que el anterior, el único cambio es que imprime solo los títulos de las
notas.
getTitulo()
Devuelve el titulo/nombre de la libreta.
tamaño()
Devuelve el numero de notas almacenado en la libreta.
buscarNota(String)
Busca una nota dado un titulo, si existe devuelve true.
Método main de la clase Libreta:
Se implementa en la clase Lanzador el código para crear una libreta y crear, modificar, eliminar, etc,
notas en ella.
Para ello hacemos un menú del mismo tipo que en la 1ª parte de la practica:
Menú de libreta:
1.- Añadir nota
2.- Eliminar nota
3.- Listado de notas
4.- Buscar notas por fecha
0.- Salir
Igualmente se controla la salida del menú con un "do While", y se gestiona el propio menú con un "switch
case"
Siguiente paso: Creación del gestor de libretas:
Se crea una clase llamada GestorLibretas, la cual tiene una estructura bastante parecida la clase Libreta.
Si la clase Libreta sirve para colecciones de objetos Notas, la clase GestorLibretas sirve para colecciones
de objetos Libreta
La clase tiene los siguientes métodos:
-listadoDeLibretas().
-obtenerLibreta(String).
-crearLibreta(String).
-añadirLibreta(Libreta).
-eliminarLibreta(String).
-añadirNotaALibreta(String).
-añadirNotaALibreta2(String, Notas).
-eliminarNotaDeLibreta(String, String).
-estadisticas().
-imprimirLibreta(String).
-imprimirTitulosDeNotasDeLibreta(String).
-ListadoDeLibretasDetallado().
-buscarLibreta(String).
-getLibreta().
listadoDeLibretas().
imprime por pantalla los títulos de las libretas almacenadas en la colección.
obtenerLibreta(String)
a partir del titulo de una libreta, imprime por pantalla el titulo de las notas contenidas en esa libreta
-crearLibreta(String).
crea una libreta y la añade a la colección "gestor" si ya existe una libreta con el mismo titulo da un error
-añadirLibreta(Libreta)
añade una libreta existente a la colección
-eliminarLibreta(String).
elimina la libreta a partir del titulo, si no existe la nota te lo dice
-añadirNotaALibreta(String).
dado un titulo de libreta existente te pide una nota y la añade a la libreta especificada
-añadirNotaALibreta2(String, Notas).
añade una nota pasada por parámetros a la libreta especificada también en los parámetros
-eliminarNotaDeLibreta(String, String).
Dado un titulo de libreta y de nota elimina dicha nota de dicha libreta si existen
-estadisticas().
imprime por pantalla nº de libretas en la colección, nº de notas en cada libreta y nº de notas total
-imprimirLibreta(String).
Dado el titulo de una libreta imprime todas sus notas por pantalla
-imprimirTitulosDeNotasDeLibreta(String).
Dado el titulo de una libreta imprime por pantalla los títulos de las notas contenidas en esta.
-ListadoDeLibretasDetallado().
imprime por pantalla para cada libreta todas las notas completas.
-buscarLibreta(String).
Dado un titulo de nota te dice el titulo de la libreta en la que esta contenida.
-getLibreta().
Dado el titulo de una libreta te la devuelve.
3ªParte de la practica: Herencia
Se crean 4 nuevas clases derivadas de la clase Notas:
-Alerta.
-Libro.
-Película.
-Disco.
Todas estas clases añaden nuevos campos a los existentes en Notas
clase Alerta:
añade una fecha de aviso.
clase Libro:
añade autor y numero ISBN.
clase Película:
añade director, nacionalidad y año de estreno.
clase Disco:
añade artista y año de grabación.
Método main de programa completo
Se implementa el siguiente menú
0.- Salir
1.- Crear libreta de notas
2.- Añadir nota a libreta
3.- Eliminar nota
4.- Buscar notas anteriores a una fecha
5.- Listado
6.- Eliminar libreta de notas
7.- Estadísticas
8.- Añadir alerta
9.- Añadir libro
10.- Añadir película
11.- Añadir disco
12.- Listado de notas por tipo
Edemas se modifica el método añadirNota de la clase Libreta de forma que las notas ahora se añaden de
forma ordenada en la colección.