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