Download Declare adecuadamente las clases en Java que se derivan del sig
Document related concepts
no text concepts found
Transcript
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación LaboratorioTema: Arreglos Unidimensionales y Bidimensionales Fecha: 12 al 26 de Mayo Objetivos: 1. Comprender y aplicar el concepto de arreglos. 2. Emplear la metodología de solución de problemas mediante el enfoque orientado a objetos. 3. Desarrollar en el estudiante la destreza para la construcción de diagramas de clase. Metodología: El laboratorio debe ser desarrollado en grupos de máximo 3 personas y se deberá entregar cada uno de los archivos indicados en la sección Entregables. Problema – Aerolínea Univalle Se requiere una aplicación en Java para el registro y ubicación de pasajeros en un avión perteneciente a la Aerolínea Univalle. La aplicación debe permitir: • Ingresar e imprimir un tiquete con el nombre del pasajero, el número de su documento de identidad, edad y una ubicación en el avión, dada por la fila y columna de la silla. • Realizar consultas por medio del documento de identificación de los pasajeros para obtener su información. • Generar un reporte de la cantidad de sillas disponibles. • Generar un reporte de la cantidad de pasajeros menores de edad en el avión. Componentes de la Interfaz La interfaz requerida debe tener la siguiente apariencia: Figura 1. Interfaz Aerolineas Univalle. Descripción del Funcionamiento de la Interfaz Si alguno de los campos en el panel Informacion Pasajero no son diligenciados por el usuario, al presionar el botón Imprimir Tiquete, se debe mostrar un mensaje indicando que se debe ingresar la información completa: Figura 2. Ejemplo del ingreso incompleto de la información del pasajero. Debe tener en cuenta realizar las respectivas validaciones de acuerdo a las ubicaciones disponibles en el avión, es decir, no se debe permitir para las filas valores menores a 1 o mayores a 15 y para las columnas valores menores a 1 y superiores a 4: Figura 3. Ejemplo del ingreso de valores de fila y columna inválidos para una silla. Una vez se ingresa la información del pasajero correctamente, al presionar el botón Imprimir Tiquete se debe marcar en ubicación, la silla indicada y mostrar un mensaje con la información del pasajero: Figura 4. Ejemplo del ingreso de un pasajero. Adicionalmente, debe verificar que la silla se encuentre disponible, si ya fue asignada a otro pasajero debe mostrar un mensaje informando al usuario: Figura 5. Ejemplo del ingreso de valores para una silla ya asignada. El botón Limpiar en el panel Informacion Pasajero borra la información de cada uno de los campos. En el panel Consulta Pasajero se permite realizar búsquedas de pasajeros en el avión por medio de su documento de identificación o ID Pasajero. El botón Limpiar borra la información presente en el JTextField donde se ingresa el ID del pasajero a consultar. Si el usuario presiona el botón Consultar sin haber ingresado un número de identificación se debe mostrar un mensaje solicitando el ID a consultar: Figura 6. Ejemplo de una consulta sin ingresar el ID a buscar. Si el pasajero a buscar no se encuentra registrado en el vuelo, al presionar el botón Consultar se muestra un mensaje indicando la situación al usuario: Figura 7. Ejemplo de Consulta de un pasajero que no está en el vuelo. Si el pasajero a buscar se encuentra registrado en el vuelo, al presionar el botón Consultar se muestra un mensaje con los datos registrados del pasajero: Figura 8. Ejemplo de Consulta de un pasajero registrado en el vuelo. El panel de Reportes debe permitir generar 2 tipos de reportes. Cada reporte es generado de acuerdo al botón presionado por el usuario. Las acciones para cada reporte son: • Reporte 1: Número de sillas disponibles. • Reporte 2: Pasajeros menores de edad. El botón Limpiar en el panel Reportes borra la información presente en el área de texto o el resultado de los reportes. Ver figuras a continuación: Figura 9. Ejemplo Reporte 1: Número de sillas disponibles. Figura 10. Ejemplo Reporte 2: Pasajeros menores de edad. Aclaración Para desarrollar el problema debe ayudarse de un arreglo de Pasajeros, por tanto debe crear una clase llamada Pasajero. Un arreglo que contiene objetos de tipo Pasajero se declara así: Pasajero [] pasajeros = new Pasajero [60]; Hay 60 pasajeros (15 filas y 4 columnas). Para añadir una instancia de la clase Pasajero al arreglo es necesario: 1. crear una instancia de la clase Pasajero Pasajero unPasajero = new Pasajero(); 2. agregarle los datos de los atributos: unPasajero.nombre= <aquí va el dato>; unPasajero.edad= <aquí va el dato>; Y de la misma forma por cada atributo. 3. ponerlo en el vector. pasajeros[dir] = unPasajero; Entregables • • • (10%) Desarrollar el Diagrama de Clases. (Use la notación gráfica de las vista en el curso y muestre de forma clara las relaciones entre las clases). (20%) Instrucciones para el método actionPerformed (70%) Desarrollar las Clases en Java para la Solución del Problemas (usando las clases plantillas que se muestran a continuación). 1. Pasajero.java 2. Interfaz.java 3. Aerolinea.java Utilice las plantillas (ver los archivos) para el desarrollo de las clases. Instrucciones en JAVA DESCRIPCIÓN Declarar el contenedor Crear el contenedor Adicionar un elemento al contenedor Establecer un administrador al contenedor Declarar una etiqueta Crear una etiqueta Declarar un campo de texto Crear un campo de texto Capturar el valor de un campo de texto Declarar un botón Crear un botón Adicionar el oyente Declara un botón de selección Crear un botón de selección Adicionar el oyente Declarar un FlowLayout Crear un FlowLayout Declarar un GridLayout Crear un GridLayout Declarar un BorderLayout Crear un BorderLayout Declarar y crear área de texto de 10x20 Adicionar un mensaje al área Declarar y crear el scroll Declarar un JPanel Crear un JPanel Asigna un título al panel Asigna un layout al panel Adicionar un elemento a un JPanel Convertir String a int Convertir String a double INSTRUCCIÓN Container contenedor; contenedor = getContentPane(); contenedor.add(nombreElemento); contenedor.setLayout(administrador); JLabel label; label = new JLabel(mensaje); JTextField tf; tf = new JTextField(columnas); tf.getText(); JButton boton; boton = new JButton(“mensaje”); boton.addActionListener(this); JRadioButton botonSeleccion; botonSeleccion = new JRadioButton(); botonSeleccion.addActionListener(this); FlowLayout layout; layout = new FlowLayout(); GridLayout layout; layout = new GridLayout(fil,col); BorderLayout layout; layout = new BorderLayout(); JTextArea miArea = new JTextArea(10,20); miArea.append(“mensaje”); JScrollPane miScroll = new JScrollPane(miArea); JPanel panel; panel =new Jpanel(); panel.setBorder(BorderFactory.createTitledBorder(“mensaje”)); nombrePanel.setLayout(layout); nombrePanel.add(nombreElemento); Integer.parseInt(); Double.parseDouble(); Declara un arreglo unidimensional Crear un arreglo unidimensional Declarar un arreglo bidimensional Crear un arreglo bidimensional TipoDato[] nombreArreglo; nombreArreglo = new TipoDato[cantidadElementos] TipoDato[][] nombreArreglo; nombreArreglo = new TipoDato[filas][columnas]; Declaraciones JCheckBox chkBotones[][]; // Declara un arreglo de tipo JCheckBox chkBotones[i][j] = new JCheckBox();// Inicializa un objeto de tipo JCheckBox para la fila i y columna j chkBotones[i][j].nombreMetodo // Ejecuta el método nombreMetodo para el objeto en la fila i y columna j Pasajero pasajeros[][]; // Declara un arreglo de tipo Pasajero pasajeros[i][j] = new Pasajero(); // Inicializa un objeto de tipo Pasajero para la fila i y columna j pasajeros[i][j].nombreMetodo // Ejecuta el método nombreMetodo para el objeto en la fila i y columna j