INSTITUTO DE EDUCACIÓN SUPERIOR CIBERTEC
DIRECCIÓN ACADÉMICA
CARRERA PROFESIONALES
CURSO : Algoritmos y Estructura de Datos
SEMESTRE : 2024
NOTA
CICLO : Segundo
SECCIÓN : T2PO
DURACIÓN : 90 min
Fecha : 27/06/2024 Horas: 19:00 – 20.30
EVALUACIÓN FINAL (EF)
Consideraciones generales:
• La solución debe ser presentada en el archivo AED_Solucion_EF.pdf.
• Lea cuidadosamente la rúbrica para cumplir con todo lo solicitado.
• Si dos o más alumnos presentan la misma solución, recibirán la nota 99 (cero anulado).
LOGRO
Al término del curso, el alumno implementa los conceptos de encapsulamiento, herencia y
polimorfismo de la programación orientada a objetos en la construcción de aplicaciones java
básicas que realizan mantenimiento de datos almacenados en arreglo de objetos y archivos
planos.
Consolidado
Puntaje Llenar solo en caso de recalificación justificada
Pregunta
Máximo Obtenido Sustento Puntaje
1 10
2 10
Nota Recalificada
IES CIBERTEC 1
Problema 1 (8 puntos)
Se tiene la clase Empleado en el paquete clase, con los atributos privados: código (int), nombre
(String), Direccion (Sring) y telefono (String) y correo electrónico (String), un constructor que inicialice
los atributos privados, los métodos de acceso público set/get necesarios.
Se tiene la clase ArregloEmpleados en el paquete arreglo, con el atributo privado lista (ArrayList de
tipo Producto)
Implemente los métodos básicos
- Un constructor que cree el ArrayList.
- Método adicionar que recibe un nuevo empleado y la adicione al ArrayList.
- Método obtener que reciba una posición y retorne el objeto empleado respectivo.
- Método buscar que reciba un nombre y retorne el objeto empleado que los contiene.
En caso no exista retorne null.
- Método eliminar que reciba el objeto empleado y lo retire del ArrayList.
package Arreglo;
import [Link];
import [Link];
public class ArregloEmpleados {
private ArrayList<Empleado> lista;
public ArregloEmpleados() {
lista = new ArrayList<>();
}
public void adicionar(Empleado emp) {
[Link](emp);
}
public Empleado obtener(int posicion) {
if (posicion >= 0 && posicion < [Link]()) {
return [Link](posicion);
}
return null;
}
public Empleado buscar(String nombre) {
for (Empleado emp : lista) {
if ([Link]().equalsIgnoreCase(nombre)) {
return emp;
}
}
return null;
}
public void eliminar(Empleado emp) {
IES CIBERTEC 2
[Link](emp);
}
public ArrayList<Empleado> obtenerLista() {
return lista;
}
}
package Arreglo;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class EmpleadoGUI extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextArea txtS;
private ArregloEmpleados arreglo;
/**
* Launch the application.
*/
public static void main(String[] args) {
[Link](new Runnable() {
public void run() {
try {
EmpleadoGUI frame = new EmpleadoGUI();
[Link](true);
} catch (Exception e) {
[Link]();
}
}
});
}
/**
* Create the frame.
IES CIBERTEC 3
*/
public EmpleadoGUI() {
arreglo = new ArregloEmpleados();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 500, 400);
contentPane = new JPanel();
[Link](new EmptyBorder(5, 5, 5, 5));
[Link](new BorderLayout(0, 0));
setContentPane(contentPane);
txtS = new JTextArea();
[Link](false);
[Link](new JScrollPane(txtS),
[Link]);
JPanel panel = new JPanel();
[Link](panel, [Link]);
JButton btnAdd = new JButton("Adicionar Empleado");
[Link](new ActionListener() {
public void actionPerformed(ActionEvent e) {
agregarEmpleado();
}
});
[Link](btnAdd);
JButton btnShow = new JButton("Mostrar Empleados");
[Link](new ActionListener() {
public void actionPerformed(ActionEvent e) {
mostrarEmpleados();
}
});
[Link](btnShow);
}
private void agregarEmpleado() {
try {
int codigo =
[Link]([Link](this, "Ingrese el
código:"));
String nombre = [Link](this,
"Ingrese el nombre:");
String direccion =
[Link](this, "Ingrese la dirección:");
String telefono =
[Link](this, "Ingrese el teléfono:");
String correo = [Link](this,
"Ingrese el correo electrónico:");
IES CIBERTEC 4
Empleado emp = new Empleado(codigo, nombre,
direccion, telefono, correo);
[Link](emp);
[Link]("Empleado añadido: " + nombre + "\n");
} catch (Exception e) {
[Link]("Error al añadir empleado.\n");
}
}
private void mostrarEmpleados() {
[Link]("");
for (Empleado emp : [Link]()) {
[Link]("Código: " + [Link]() + ",
Nombre: " + [Link]() +
", Dirección: " + [Link]() +
", Teléfono: " + [Link]() +
", Correo: " +
[Link]() + "\n");
}
}
}
package clase;
public class Empleado {
private int codigo;
private String nombre;
private String direccion;
private String telefono;
private String correoElectronico;
public Empleado(int codigo, String nombre, String
direccion, String telefono, String correoElectronico) {
[Link] = codigo;
[Link] = nombre;
[Link] = direccion;
[Link] = telefono;
[Link] = correoElectronico;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
[Link] = codigo;
}
public String getNombre() {
IES CIBERTEC 5
return nombre;
}
public void setNombre(String nombre) {
[Link] = nombre;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
[Link] = direccion;
}
public String getTelefono() {
return telefono;
}
public void setTelefono(String telefono) {
[Link] = telefono;
}
public String getCorreoElectronico() {
return correoElectronico;
}
public void setCorreoElectronico(String correoElectronico)
{
[Link] = correoElectronico;
}
}
RÚBRICA
Problema 1 10 puntos 8 puntos 3 puntos 0 puntos
10 Implementa los dos Implementa un método Implementa un método No implementa ninguno
métodos correctamente correctamente y el otro parcialmente. de los dos métodos
puntos parcialmente
Problema 2 (12 puntos)
Diseñe las clases Persona, Paciente y Doctor. Las clases Paciente y Doctor serán
subclases de la clase Persona. Para el diseño de las clases considere lo siguiente:
La clase Persona debe tener:
- Atributos privados: codigo (int), nombre (String), especialidad(String).
- Un constructor que inicialice todos los atributos.
IES CIBERTEC 6
- Métodos de acceso set/get para todos los atributos.
La clase Paciente debe tener:
- Atributos privados: codigo (int), nombre (String), especialidad(String), Consultorio(String),
fecha(String), hora(String), fecha y hora se refiere a la atención.
- Un constructor que inicialice todos los atributos.
- Métodos de acceso set/get para todos los atributos.
La clase Doctor debe tener:
- Atributos privados: codigo (int), nombre (String), especialidad(String) y categoría (int).
- Un constructor que inicialice todos los atributos.
- Métodos de acceso set/get para todos los atributos.
- Un método que retorne el sueldo del doctor de acuerdo a la siguiente tabla:
Categoría Sueldo
1 S/. 12000.0
2 S/. 11800.0
3 S/. 9500.0
4 S/. 7250.0
Desarrolle lo siguiente:
- Identifique la clase padre con sus atributos y métodos
- Identifique las clases hijas con sus atributos y métodos
- Diagrame la relación entre las clases
Rúbrica
Excelente: Bueno: Regular: Deficiente:
Puntos
10 puntos 5 puntos 2 puntos 0 puntos
Identifica clase Identifica clase
Desarrolla
padre e hijas con padre con sus No implementa
10 correctamente los
sus atributos y atributos y nada.
enunciados.
métodos. métodos.
SOLUCION:
package Arreglo;
public class Doctor extends Persona {
private int categoria;
public Doctor(int codigo, String nombre, String
especialidad, int categoria) {
super(codigo, nombre, especialidad);
[Link] = categoria;
}
public int getCategoria() {
return categoria;
}
IES CIBERTEC 7
public void setCategoria(int categoria) {
[Link] = categoria;
}
public double calcularSueldo() {
switch (categoria) {
case 1:
return 12000.0;
case 2:
return 11800.0;
case 3:
return 9500.0;
case 4:
return 7250.0;
default:
return 0.0;
}
}
}
package Arreglo;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class HospitalGUI extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextArea txtS;
/**
* Launch the application.
*/
public static void main(String[] args) {
[Link](new Runnable() {
public void run() {
try {
HospitalGUI frame = new HospitalGUI();
[Link](true);
} catch (Exception e) {
[Link]();
IES CIBERTEC 8
}
}
});
}
/**
* Create the frame.
*/
public HospitalGUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
[Link](new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
[Link](null);
txtS = new JTextArea();
[Link](false);
JScrollPane scrollPane = new JScrollPane(txtS);
[Link](10, 11, 414, 239);
[Link](scrollPane);
[Link]("\n\nDatos del Doctor:\n");
Doctor doctor1 = new Doctor(1, "Dr. Juan Perez",
"Cardiología", 2);
[Link]("Nombre: " + [Link]() +
"\n");
[Link]("Especialidad: " +
[Link]() + "\n");
[Link]("Categoría: " + [Link]() +
"\n");
[Link]("Sueldo: S/. " +
[Link]() + "\n");
[Link]("\nDatos del Paciente:\n");
Paciente paciente1 = new Paciente(101, "Ana Gómez",
"Pediatría", "Consultorio A", "2024-06-28", "15:00");
[Link]("Nombre: " + [Link]() +
"\n");
[Link]("Especialidad: " +
[Link]() + "\n");
[Link]("Consultorio: " +
[Link]() + "\n");
[Link]("Fecha de atención: " +
[Link]() + "\n");
[Link]("Hora de atención: " +
[Link]() + "\n");
IES CIBERTEC 9
}
}
package Arreglo;
public class Paciente extends Persona {
private String consultorio;
private String fecha;
private String hora;
public Paciente(int codigo, String nombre, String
especialidad, String consultorio, String fecha, String hora) {
super(codigo, nombre, especialidad);
[Link] = consultorio;
[Link] = fecha;
[Link] = hora;
}
public String getConsultorio() {
return consultorio;
}
public void setConsultorio(String consultorio) {
[Link] = consultorio;
}
public String getFecha() {
return fecha;
}
public void setFecha(String fecha) {
[Link] = fecha;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
[Link] = hora;
}
}
package Arreglo;
public class Persona {
private int codigo;
private String nombre;
private String especialidad;
IES CIBERTEC 10
public Persona(int codigo, String nombre, String
especialidad) {
[Link] = codigo;
[Link] = nombre;
[Link] = especialidad;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
[Link] = codigo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
[Link] = nombre;
}
public String getEspecialidad() {
return especialidad;
}
public void setEspecialidad(String especialidad) {
[Link] = especialidad;
}
}
IES CIBERTEC 11