Practica 02. Lenguajes de programación III Grupo 412. Enero-Junio 2006 Entrega: 07 de la mañana del día viernes 28 de abril del 2006. Se debe entregar código fuente, empaquetado en formato ZIP, con el nombre practica02.zip; y para los ejercicios de applets, una página HTML que contenga ligas a cada applet pedido. La dirección de la página Web (URL) debe ser enviada a gusdelact@yahoo.com.mx, en el encabezado debe indicar Practica 02 4122006, y en el cuerpo del correo, debe contener la liga, y el nombre y clave ulsa de cada integrante Objetivo. Ejercitar los conocimientos de Java Básico (estructuras de control, metodos, arreglos,objetos) y manejo de gráficos con Applets. Equipo: La práctica debe realizarse en equipo. El equipo debe ser de 2 a 4 personas. Seleccionar con cuidado al equipo. Recuerden que son un equipo y al momento de formarlo consideren que el éxito o fracaso de la práctica es de todos, no de una sola persona en particular. No tratar de solucionar la practica buscando culpables. Organizar las actividades de cada integrante y cuidar que cada uno de ellos concluya sus tareas. Limitarse a resolver la problemática del ejercicio, para que tengan tiempo de resolver a todos los ejercicios. Desginar a un responsable que revise la entrega del código y de los applets. NO ES MOTIVO DE DISPENSA EL QUE EL EQUIPO NO FUNCIONE. ES RESPONSABILIDAD DE LOS ALUMNOS EL LOGRAR QUE LA SOLUCION DE TODOS LOS EJERCICIOS, CON LA CANTIDAD Y CALIDAD QUE TENGAN EN EL EQUIPO. Codificación: Todo el código Java debe seguir las reglas establecidas en la materia (nombre de clases, de variables, de métodos, parámetros, paquetes e indentación) Cada clase debe tener documentación en formato JavaDoc(exceptuando pruebas unitarias) Evaluación: Ejercicio que no compile, equivale a 0 puntos. Ejercicios señalados con el caracter de +, debe ofrecer pruebas unitarias. Diseñar sus ejercicios para que la solución pueda ser probada con JUnit. Se deja a criterio del alumno la codificación de cada prueba unitaria, pero es muy importante que se ejerciten aquellos métodos que representen a la funcionalidad de la solución Ejercicios señalados con el caracter de &, deben ser subidos como applets, a la pagina en donde deposite la práctica. En cuestion de applets, se debe utilizar la clase java.awt.Applet como base. Para elementos de captura utilizar a las clases java.awt.Label, java.awt.TextField, java.awt.TextArea, java.awt.Button, o todos los componentes que el alumno crea pertinente Ejercicios señalados con el caracter de %, utilizan para captura y/o despliegue de resultados, a las clase de Swing, JOptionPane, e implica la escritura de un programa con rutina main. Ejercicios señalados con el caracter de #, son de codificación simple Ejercicios señalados con el caracter de $, son de codificación mediana, y mezclan varios conceptos ya vistos en la materia Ejercicios señalados con el caracter de !, son de codificación compleja, e implica investigar cuestiones aun no vistas en clase o aplicar algortimos elaborados Todos los ejercicios deben englobarse en el paquete mx.edu.ulsa.cib4122006.practica02. Si el alumno lo considera necesario, puede agregar mas paquetes, a partir de esta estructura. Todos los ejercicios marcados con # valen un (1) punto Todos los ejercicios marcados con $ valen dos (2) puntos Todos los ejercicios marcados con ! valen tres (3) puntos Para todos los ejercicios marcados con +, todas las pruebas unitarias deben ser probadas con éxito, y ejecutadas via una clase que ejecute un TestSuite. Las pruebas unitarias deben quedar bajo el paquete test.mx.edu.ulsa.cib4122006.practica02 Para todos los ejercicios que contienen applets, subirlos a la página del grupo, con su respectivo archivo HTML. Todos los applets se deben empaquetar en un archivo denominado practica02.jar, y de dicho archivo debe tomar cada applet su correspondiente código binario. Por cada ejercicio, se tienen las siguientes reglas de evaluación Compilación: 5% Reglas de codificación: 5% Documentación disponible con JavaDoc: 5% Solución: (85%) Si la aplicación no tiene pruebas unitarias ni es un applet Cumplimiento de requerimientos funcionales: 85% Si la aplicación tiene pruebas unitarias Pruebas unitarias: 15% Cumplimiento de requerimientos funcionales: 70% Si la aplicación es un applet Applet en página: 5% Cumplimiento de requerimientos funcionales: 80% Si la aplicación tiene pruebas unitarias y es un applet Pruebas unitarias: 15% Applet en página: 5% Cumplimiento de requerimientos funcionales: 65% EJERCICIOS Los ejercicios son tomados del libro "Como Programar en Java" de Harvey & Paul Deitel, Quinta edición, Ed. Pearson. El numeral se refiere al número de capitulo y número de ejercicio 01. (%#) Resolver del libro D&D 2.33 02. (&#) Resolver del libro D&D 3.8 03. (&#) Resolver del libro D&D 3.13 04. (+%#) Resolver del libro D&D 4.11 05. (+%#) Resolver del libro D&D 4.12 06. (+%$) Resolver del libro D&D 4.13 07. (+%#) Resolver del libro D&D 4.14 08. (&#) Resolver del libro D&D 4.23 09. (%#) Resolver del libro D&D 4.24 10. (%#) Resolver del libro D&D 4.25 11. (+%$) Resolver del libro D&D 4.31 12. (+%$) Resolver del libro D&D 4.32. Nota, cada inciso se debe mostrar en una sola aplicación. Pedir con un menu, al usuario que quiere calcular, factorial, el número de Euler o número elevado al número de Euler. 13. (%$) Resolver del libro D&D 5.10. Nota, cada patrón a mostrar, deberá ser seleccionado por el usuario, usando un menu 14. (&$) Resolver del libro D&D 5.11 15. (%#) Resolver del libro D&D 5.12 16. (+%$) Resolver del libro D&D 5.17 17. (+&$) Resolver del libro D&D 6.14. Nota: En el ejercicio se habla de un componente JTextField, sustituirlo por TextField. 18. (+&$) Resolver del libro D&D 6.17. Nota: En el ejercicio se habla de un componente JTextField, sustituirlo por TextField. 19. (+&#) Resolver del libro D&D 6.23. Nota: En el ejercicio se habla de un componente JTextField, sustituirlo por TextField. 20. (+&!) Resolver del libro D&D 6.24. 21. (+&!) Resolver del libro D&D 6.25. Nota: En el ejercicio se habla de un componente JTextArea, sustiturlo por TextArea 22. (+&!) Resolver del libro D&D 6.26. Nota: En el ejercicio se habla de un componente JTextArea, sustiturlo por TextArea 23. (+&!) Resolver del libro D&D 6.27. 24. (+&$) Resolver del libro D&D 6.30. 25. (+&#) Resolver del libro D&D 6.31. Nota: En el ejercicio se habla de un componente JTextField, sustituirlo por TextField. 26. (+&$) Resolver del libro D&D 6.34. Nota: En el ejercicio se habla de un componente JTextField, sustituirlo por TextField. 27. (+&$) Resolver del libro D&D 6.37. Nota: En el ejercicio se habla de un componente JTextArea, sustiturlo por TextArea 28. (&$) Resolver del libro D&D 7.10. Nota: En el ejercicio se habla de un componente JTextArea, sustiturlo por TextArea 29. (+&$) Resolver del libro D&D 7.15. Nota: En el ejercicio se habla de un componente JTextArea, sustiturlo por TextArea, y del componente JButton, sustituirlo por Button 30. (+&$) Resolver del libro D&D 7.18. 31. (+&$) Resolver del libro D&D 7.20. Nota: En el ejercicio se habla de un componente JTextArea, sustiturlo por TextArea 32. (+&!) Resolver del libro D&D 7.21. Nota: En el ejercicio se habla de un componente JTextArea, sustiturlo por TextArea 33. (+&!) Resolver del libro D&D 7.22. Nota. Diseñar la solución para ser reutilizable, en el ejercicio 39 se pide extensión a esta solución. Usar interfaces de Java pueda ayudar 34. (+&!) Resolver del libro D&D 7.24. 35. (+&!) Resolver del libro D&D 7.27. 36. (+&!) Resolver del libro D&D 7.29. Nota. Diseñar la solución para ser reutilizable, en el ejercicio 40 se pide extensión a esta solución. Usar interfaces de Java pueda ayudar 37. (+&#) Resolver del libro D&D 7.30. 38. (+&!) Resolver del libro D&D 7.40 y 7.41. 39. (+&!) Resolver del libro D&D 12.26. Nota: Reutilizar al ejercicio 33. Utilizar técnicas de animación y usar mapas de bits con imagenes gif, png o jpeg 40. (+&!) Resolver del libro D&D 12.26. Nota: Reutilizar al ejercicio 36. Utilizar técnicas de animación y usar mapas de bits con imagenes gif, png o jpeg 41. (+&#) Resolver del libro D&D 8.2. 42. (+%#) Resolver del libro D&D 8.10. 43. (+&!) Resolver del libro D&D 8.18 y 10.9 44. (+&!) Resolver del libro D&D 11.27 Nota: El alumno puede implantar todo utilizando Swing, tema aun no visto en la materia. Para el caso de applets, se debe usar la clase javax.swing.JApplet