Diseño e Implementación de Estructuras de Datos
Integrantes
- Heizenreder Guillermo
- Kaufmann Manuel
- Perales Ivan
Secciones
Fotos del equipo en acción
Trabajo Práctico Nº 1
Fecha de publicación: Lunes 24/09/2007
Fecha de entrega: Viernes 12/10/2007
Modalidad de entrega: archivo comprimido en el sitio, en la tarea indicada como "Trabajo Práctico Grupal Nº 1".
Consigna:
Implementar un proyecto en Java que simule un "Procesador de Palabras" utilizando los temas estudiados en la cátedra y respetando las funcionalidades mínimas que se explican a continuación. Para tal fin, se facilita un proyecto que contiene clases de utilidad y una interfaz que usted deberá utilizar para el desarrollo de la solución. Además, podrá utilizar como guía el modelo adjunto (sintaxis de los comandos).
La aplicación contará mínimamente con lo siguiente:
- Un área de texto con autoscroll, donde se visualizará el texto a procesar.
- Un área de texto con autoscroll para los comandos a ingresar, a la cual se ingresará cuando se presione la tecla "esc", y se abandonará cuando se presione nuevamente1.
- Un área donde se mostrarán las respuestas a los comandos (información sobre la operación realizada, como la cantidad de secuencias afectadas, si el comando fue exitoso, etc.).
Comandos a implementar
Sintaxis de los comandos
<comando> ::= <comando_sin_parámetros> | <comando_con_parámetros>(<lista_de_parámetros>)
<comando_sin_parámetros> ::= limpiar | limpiarComandos |
limpiarTodo | salir
<comando_con_parámetros> ::= buscar | reemplazar | reemplazarSiguiente |
eliminar | eliminarSiguiente | capitalizar | capitalizarSiguiente | escape
<lista_de_parámetros> ::= <parámetro> | <parámetro>, <lista_de_parámetros>
<secuencia_de_escape> ::= /<caracter_clave> | /<caracter_clave><cadena_patron> | /<nombre_de_variable><caracter_clave><cadena_patron>/<caracter_clave>
Semántica de los comandos:
- limpiar: deja en blanco el área de texto del editor.
- limpiarComandos: deja en blanco el área de texto de los comandos.
- limpiarTodo: deja en blanco el área de texto del editor y la de los comandos.
- salir: abandona la aplicación.
- buscar: busca y selecciona la siguiente cadena que corresponda a la que se pasa como parámetro luego del cursor en el área de texto del editor. En la cadena a buscar se pueden incluir los siguientes caracteres de escape, si estos están activados (de lo contrario, serán tomados literalmente):
- /?: cualquier carácter que no sea separador.
- /*: cualquier secuencia de caracteres que no incluya separadores.
- /%<carácter>: cualquier carácter que no sea <carácter>.
- /$
<secuencia_de_caracteres>/$: cualquier secuencia de caracteres que no incluya<secuencia_de_caracteres>. - /!
<secuencia_de_caracteres>/!: cualquier secuencia de caracteres que no incluya ningún carácter de<secuencia_de_caracteres>. - //: carácter '/'
Estas secuencias de escape se aplican también a los parámetros de los comandos capitalizar y eliminar.
- reemplazar: busca y reemplaza las cadenas que correspondan a la que se pasa como parámetro. Si se introduce alguna variable en la cadena a reemplazar, éste podrá utilizarse en la cadena de reemplazo para representar a la cadena de la entrada que se correspondió en cada matching. En la cadena de reemplazo, el caracter de escape también es '/', y los nombres de las variables se colocan entre las barras.
Por ejemplo, si se aplica:
reemplazar(+/titulo%++,
<title> /titulo/ <//title>) sobre la cadena: "+ Semántica de los comandos +"
se obtiene: "
<title> Semántica de los comandos </title>" - reemplazarSiguiente: busca y reemplaza la siguiente cadena que corresponda a la que se pasa como parámetro luego del cursor en el área de texto del editor.
- eliminar: busca y elimina las cadenas que correspondan a la que se pasa como parámetro.
- eliminarSiguiente: busca y elimina la siguiente cadena que corresponda a la que se pasa como parámetro luego del cursor en el área de texto del editor.
- capitalizar: busca y pasa a mayúsculas (M), minúsculas (m), o mayúscula (Mm) al comienzo de cada palabra las cadenas que correspondan a la que se pasa como parámetro.
- capitalizarSiguiente: busca y pasa a mayúsculas (M), minúsculas (m), o mayúscula (Mm) al comienzo de cada palabra la siguiente cadena que corresponda a la que se pasa como parámetro, luego del cursor en el área de texto del editor.
- escape: activa (on) o desactiva (off) los caracteres de escape.
Clases de utilidad: Se anexa el proyecto a utilizar, que incluye los siguientes paquetes:
- img: contiene la imagen (ícono de la aplicación).
- logica: contiene la clase “ProcesadorDeComandos”, encargada de procesar los
- comandos a implementar.
- ui: contiene las clases para implementación de la interfaz de usuario.
- util: contiene las clases que brindan soporte al resto de la aplicación.
La siguiente figura muestra la interfaz dada:
Nota:
El proyecto java es la carpeta llamada “TPs2007”. Para poder utilizarlo deben copiarlo en el workspace de Eclipse y luego importarlo desde allí. Para importar el proyecto deben seleccionar la opción File -> Import... -> Existing Project into Workspace -> Browse (seleccionar la carpeta TPs2007) -> Finish
Entregar:
- Modelo UML: diagrama de clases (archivo en formato html, doc o pdf) que representa el modelo utilizado.
- Documento Solución, que especifique la solución planteada para resolver el problema.
- Documento Pruebas, que contenga las pruebas realizadas para verificar la funcionalidades implementadas en el ítem 3 de la “consigna”.
- Archivo zip del proyecto.
Importante:
- TODOS los ítems solicitados serán tenidos en cuenta para la corrección del trabajo práctico, por lo que es obligatorio resolverlos. También se va a considerar la documentación de clases, métodos y líneas de código de la manera correspondiente, así como el formato de entrega. El código generado deberá incluir los comentarios adecuados que faciliten su comprensión.
- Tanto la compresión correcta de archivos, como la entrega y recepción satisfactoria de la resolución es responsabilidad de cada grupo.
- Se debe poder verificar la implementación de todas las funcionalidades solicitadas.
- Se debe verificar la legibilidad de los documentos y diagramas entregados.
- La fecha de entrega debe ser respetada.