Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

AED Solucion EF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

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 java.util.ArrayList;
import clase.Empleado;

public class ArregloEmpleados {


private ArrayList<Empleado> lista;

public ArregloEmpleados() {
lista = new ArrayList<>();
}

public void adicionar(Empleado emp) {


lista.add(emp);
}

public Empleado obtener(int posicion) {


if (posicion >= 0 && posicion < lista.size()) {
return lista.get(posicion);
}
return null;
}

public Empleado buscar(String nombre) {


for (Empleado emp : lista) {
if (emp.getNombre().equalsIgnoreCase(nombre)) {
return emp;
}
}
return null;
}

public void eliminar(Empleado emp) {

IES CIBERTEC 2
lista.remove(emp);
}

public ArrayList<Empleado> obtenerLista() {


return lista;
}
}

package Arreglo;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JOptionPane;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import clase.Empleado;

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) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
EmpleadoGUI frame = new EmpleadoGUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.

IES CIBERTEC 3
*/
public EmpleadoGUI() {
arreglo = new ArregloEmpleados();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 500, 400);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);

txtS = new JTextArea();


txtS.setEditable(false);
contentPane.add(new JScrollPane(txtS),
BorderLayout.CENTER);

JPanel panel = new JPanel();


contentPane.add(panel, BorderLayout.SOUTH);

JButton btnAdd = new JButton("Adicionar Empleado");


btnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
agregarEmpleado();
}
});
panel.add(btnAdd);

JButton btnShow = new JButton("Mostrar Empleados");


btnShow.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mostrarEmpleados();
}
});
panel.add(btnShow);
}

private void agregarEmpleado() {


try {
int codigo =
Integer.parseInt(JOptionPane.showInputDialog(this, "Ingrese el
código:"));
String nombre = JOptionPane.showInputDialog(this,
"Ingrese el nombre:");
String direccion =
JOptionPane.showInputDialog(this, "Ingrese la dirección:");
String telefono =
JOptionPane.showInputDialog(this, "Ingrese el teléfono:");
String correo = JOptionPane.showInputDialog(this,
"Ingrese el correo electrónico:");

IES CIBERTEC 4
Empleado emp = new Empleado(codigo, nombre,
direccion, telefono, correo);
arreglo.adicionar(emp);
txtS.append("Empleado añadido: " + nombre + "\n");
} catch (Exception e) {
txtS.append("Error al añadir empleado.\n");
}
}

private void mostrarEmpleados() {


txtS.setText("");
for (Empleado emp : arreglo.obtenerLista()) {
txtS.append("Código: " + emp.getCodigo() + ",
Nombre: " + emp.getNombre() +
", Dirección: " + emp.getDireccion() +
", Teléfono: " + emp.getTelefono() +
", Correo: " +
emp.getCorreoElectronico() + "\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) {
this.codigo = codigo;
this.nombre = nombre;
this.direccion = direccion;
this.telefono = telefono;
this.correoElectronico = correoElectronico;
}

public int getCodigo() {


return codigo;
}

public void setCodigo(int codigo) {


this.codigo = codigo;
}

public String getNombre() {

IES CIBERTEC 5
return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public String getDireccion() {


return direccion;
}

public void setDireccion(String direccion) {


this.direccion = direccion;
}

public String getTelefono() {


return telefono;
}

public void setTelefono(String telefono) {


this.telefono = telefono;
}

public String getCorreoElectronico() {


return correoElectronico;
}

public void setCorreoElectronico(String correoElectronico)


{
this.correoElectronico = 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);
this.categoria = categoria;
}

public int getCategoria() {


return categoria;
}

IES CIBERTEC 7
public void setCategoria(int categoria) {
this.categoria = 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 java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;

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) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
HospitalGUI frame = new HospitalGUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();

IES CIBERTEC 8
}
}
});
}

/**
* Create the frame.
*/
public HospitalGUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

txtS = new JTextArea();


txtS.setEditable(false);
JScrollPane scrollPane = new JScrollPane(txtS);
scrollPane.setBounds(10, 11, 414, 239);
contentPane.add(scrollPane);

txtS.append("\n\nDatos del Doctor:\n");


Doctor doctor1 = new Doctor(1, "Dr. Juan Perez",
"Cardiología", 2);
txtS.append("Nombre: " + doctor1.getNombre() +
"\n");
txtS.append("Especialidad: " +
doctor1.getEspecialidad() + "\n");
txtS.append("Categoría: " + doctor1.getCategoria() +
"\n");
txtS.append("Sueldo: S/. " +
doctor1.calcularSueldo() + "\n");

txtS.append("\nDatos del Paciente:\n");


Paciente paciente1 = new Paciente(101, "Ana Gómez",
"Pediatría", "Consultorio A", "2024-06-28", "15:00");
txtS.append("Nombre: " + paciente1.getNombre() +
"\n");
txtS.append("Especialidad: " +
paciente1.getEspecialidad() + "\n");
txtS.append("Consultorio: " +
paciente1.getConsultorio() + "\n");
txtS.append("Fecha de atención: " +
paciente1.getFecha() + "\n");
txtS.append("Hora de atención: " +
paciente1.getHora() + "\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);
this.consultorio = consultorio;
this.fecha = fecha;
this.hora = hora;
}

public String getConsultorio() {


return consultorio;
}

public void setConsultorio(String consultorio) {


this.consultorio = consultorio;
}

public String getFecha() {


return fecha;
}

public void setFecha(String fecha) {


this.fecha = fecha;
}

public String getHora() {


return hora;
}

public void setHora(String hora) {


this.hora = 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) {
this.codigo = codigo;
this.nombre = nombre;
this.especialidad = especialidad;
}

public int getCodigo() {


return codigo;
}

public void setCodigo(int codigo) {


this.codigo = codigo;
}

public String getNombre() {


return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public String getEspecialidad() {


return especialidad;
}

public void setEspecialidad(String especialidad) {


this.especialidad = especialidad;
}
}

IES CIBERTEC 11

También podría gustarte