Diseño
y Programación Orientados a Objetos
1er. Sem 2008
Tarea 2: Tómbola en Java
Recomendación: Lea detenidamente la tarea, si algo no lo
entiende consulte en clases, si es preciso se incorporarán
aclaraciones al final.
Esta tarea tiene por objetivo
que continúe ejercitando las destrezas de la tarea 1 y cubra los
siguientes nuevos objetivos:
- A través de la ejercitación comprenda la
programación conducida por eventos.
- Desarrollo de interfaces gráficas en Java
- Ejercite el manejo de excepciones
Contexto de la tarea
A través de esta tarea se desea desarrollar en Java
una herramienta para definir un orden aleatorio para una lista de
nombres. Ésta puede ser usada cuando se desea definir por
ejemplo el orden de las presentaciones de proyectos. Esta tarea le pide
hacer una versión tipo aplicación para este problema.
Descripción General
Esta tarea busca que usted mejore los aspectos
conceptuales de la primera tarea y
luego reutilice parte de ella para desarrollar el programa
tómbola. Al ejecutar su programa la interfaz debe presentar un
menú con opciones Archivo, Acción y About.
Bajo Archivo se presentas los items "abrir" archivo y
"terminar". Bajo Acción los items son "rodar" y "buscar".
La opción abrir permite
seleccionar el archivo de nombres a procesar. Se espera que usted haga
uso de JFileChooser para navegar por los directorios hasta seleccionar
el archivo con la lista de nombres a considerar en al tómbola.
Una vez abierto el archivo los nombres de la lista son mostrados el
sector izquierdo de la ventana y bajo la barra de menú.
Considere una barra de scroll en caso que la lista sea muy larga.
La opción terminar da
término a la aplicación.
La opción rodar bajo Acción
muestra, en el sector derecho de la ventana y bajo la barra de
menú, una permutación de los nombres de la lista del
sector izquierdo. Esta lista incluye un número correlativo y un
nombre por línea. Como en este caso considere barra de scroll si
es necesario.
La opción buscar bajo Acción,
presenta una ventana de diálogo. Donde usted entregará el
nombre o apellido de un alumno, como respuesta el programa
destacará en color azul todas las líneas que contengan
ese nombre o apellido. Si no está, no hay acción visible.
La opción About,
mostrará una ventana de diálogo con el nombre del curso,
los nombres de los integrantes de su grupo, del profesor y la fecha.
Requerimiento para encontrar la permutación y búsqueda.
Una forma de conseguir una permutación aleatoria es asociar a
cada nombre un número aleatorio y luego ordenar la lista
según ese nombre. Ésta no es la forma más
eficiente en tiempo, pero es la pedida para que usted reuse el
código de su primera tarea. Puede usar cualquiera de las clases
para ordenamiento de la tarea previa. Igualmente para la
búsqueda de un nombre. Usted deberá cambiar el
método de búsqueda para retornar más de un
índice en caso de múltiples coincidencias del nombre o
apellido.
Notas:
En la documentación de esta tarea, no es necesario que usted
haga una descripción en alto nivel de los algoritmos usados.
Usted debe
entregar su código documentado siguiendo el estándar del
utilitario javadoc. Dé una mira al Generador
de Documentación y en particular los rótulos.
El archivo de nombres proporcionado
fue obtenido a partir de la lista del curso,
la cual fue procesada para generar los
nombres naturales.
Considere que el ayudante podría desarrollar otro main para
probar sus clases. Por ejemplo al buscar podría hacerlo con una
objeto copia (clone) de alguno del arreglo.
Petición Final: Su aprendizaje será mucho más
grato para todos si usted trabaja en la tarea desde que ésta es
publicada. Con gusto atenderé sus consultas en clases o en la
oficina (preferiblemente en mi horario de atención de alumnos),
gracias.
Vea el ejemplo
de
Makefile. Más información
sobre
Makefiles.