Ejercicios Prácticos 🛠️

Ejercicios Prácticos 🛠️


Laboratorio
ingeso java ejercicios

Ejercicios

  1. Defiina una clase que logre multiplicar 2 numeros enteros ingresados por consola
Diagrama de clase multiplicador
Solución 🎁
multiplicador
import java.util.Scanner;
 
public class Multiplicador {
    public int num1;
    public int num2;
 
    // Constructor
    public Multiplicador(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }
 
    // Método para multiplicar los números
    public int multiplicar() {
        return num1 * num2;
    }
 
    public static void main(String[] args) {
        // Crear un objeto Scanner para leer la entrada del usuario
        Scanner scanner = new Scanner(System.in);
 
        System.out.println("Ingrese el primer número entero:");
        int num1 = scanner.nextInt();
 
        System.out.println("Ingrese el segundo número entero:");
        int num2 = scanner.nextInt();
 
        // Crear una instancia de la clase Multiplicador
        Multiplicador multiplicador = new Multiplicador(num1, num2);
 
        // Llamar al método multiplicar de la instancia
        int resultado = multiplicador.multiplicar();
 
        System.out.println("El resultado de la multiplicación es: " + resultado);
 
        scanner.close();
    }
}
  1. Implemente la siguiente función en JAVA guiandose por el diagrama de clase:
f(x)=i=13xix\large f(x)=\sum_{i=1}^{3x} i \cdot x Diagrama de clase sumatoria
Solución 🎁
sumatoria
public class FuncionFx {
    // Atributo privado entero
    private int x;
 
    // Constructor para inicializar x
    public FuncionFx(int x) {
        this.x = x;
    }
 
    // Método para calcular f(x)
    public int calcularFx() {
        int resultado = 0;
        for (int i = 1; i <= 3 * x; i++) {
            resultado += i * x;
        }
        return resultado;
    }
 
    // Método main
    public static void main(String[] args) {
        // Crear una instancia de FuncionFx con un valor específico de x
        FuncionFx funcion = new FuncionFx(1);
 
        // Calcular y mostrar el resultado de f(x)
        System.out.println("El resultado de f(1) es " + funcion.calcularFx());
    }
}

  1. Sistema de Gestión de Atención a Pacientes

Objetivo: Familiarizarse con la POO, practicando la creación de clases, atributos, métodos y la interacción entre objetos.

En este ejercicio, se busca desarrollar un sistema simple de gestión para la atención de pacientes en un consultorio médico. El sistema estará compuesto por tres clases principales: Paciente, Medico, y FichaPaciente. Además, se contará con una clase principal llamada AtencionPaciente, que contendrá el método main para ejecutar el programa.

La clase Paciente representa a un paciente del consultorio médico y tiene los siguientes atributos:

  • nombre: el nombre del paciente.
  • rut: el RUT del paciente.
  • edad: la edad del paciente.
  • genero: el género del paciente.
  • motivoIngreso: el motivo de ingreso del paciente al consultorio.

La clase Paciente cuenta con un constructor para inicializar sus atributos, getters para obtener la información del paciente, y un método actualizarMotivoIngreso que permite actualizar el motivo de ingreso del paciente.

La clase Medico representa al médico encargado de atender a los pacientes. Tiene un único método llamado actualizarFicha, que permite al médico actualizar el motivo de ingreso de un paciente.

La clase FichaPaciente es responsable de crear y guardar la información de la ficha de un paciente en un archivo CSV. Esta clase tiene un atributo de tipo Paciente, que representa al paciente asociado a la ficha. Además, cuenta con un constructor para inicializar la ficha del paciente y un método guardarEnCSV que permite guardar la información de la ficha en un archivo CSV.

Por último, la clase AtencionPaciente contiene el método main, que inicia la ejecución del programa. En este método, se crean instancias de pacientes, médicos y fichas de pacientes, y se realizan las acciones correspondientes, como la actualización de la ficha del paciente y el guardado en un archivo CSV.

Pista 🗿Diagrama de clase sumatoria
Solución 🎁
AtencionPaciente
import java.io.FileWriter;
import java.io.IOException;
import java.io.File;
 
// Clase Paciente
class Paciente {
    private String nombre;
    private String rut;
    private int edad;
    private String genero;
    private String motivoIngreso;
 
    // Constructor
    public Paciente(String nombre, String rut, int edad, String genero, String motivoIngreso) {
        this.nombre = nombre;
        this.rut = rut;
        this.edad = edad;
        this.genero = genero;
        this.motivoIngreso = motivoIngreso;
    }
 
    // Getters y setters
    public String getNombre() {
        return nombre;
    }
 
    public String getRut() {
        return rut;
    }
 
    public int getEdad() {
        return edad;
    }
 
    public String getGenero() {
        return genero;
    }
 
    public String getMotivoIngreso() {
        return motivoIngreso;
    }
 
    // Método para actualizar la edad del paciente
    public void actualizarMotivoIngreso(String nuevoMotivoIngreso) {
        this.motivoIngreso = nuevoMotivoIngreso;
    }
}
 
// Clase Medico
class Medico {
    // Método para actualizar la ficha del paciente
    public void actualizarFicha(Paciente paciente, String cambioMotivoIngreso) {
        // Actualizar motivo de ingreso
        paciente.actualizarMotivoIngreso(cambioMotivoIngreso);
        System.out.println("La ficha del paciente ha sido actualizada por el médico.");
    }
}
 
// Clase FichaPaciente
class FichaPaciente {
    private Paciente paciente;
 
    // Constructor
    public FichaPaciente(Paciente paciente) {
        this.paciente = paciente;
    }
 
    // Método para guardar la ficha del paciente en un archivo CSV
    public void guardarEnCSV(String nombreArchivo) {
        // Verificar si el archivo ya existe
        File archivo = new File(nombreArchivo);
        boolean existeFicha = archivo.exists();
 
        try {
            FileWriter writer = new FileWriter(nombreArchivo, true); // Modo de append
            if (!existeFicha) {
                writer.append("Nombre,Edad,Genero\n"); // Solo si es un archivo nuevo
            }
            writer.append(
                    paciente.getNombre() + "," +
                            paciente.getRut() + "," +
                            paciente.getEdad() + "," +
                            paciente.getGenero() + "," +
                            paciente.getMotivoIngreso() + "\n");
            writer.flush();
            writer.close();
            if (existeFicha) {
                System.out.println("Ficha del paciente actualizada en el archivo " + nombreArchivo);
            } else {
                System.out.println("Ficha del paciente guardada en el archivo " + nombreArchivo);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
 
// Clase principal para probar el sistema
public class AtencionPaciente {
    public static void main(String[] args) {
        // Creamos un paciente
        Paciente paciente = new Paciente(
                "Homero Thompson",
                "14.123.432-k",
                51,
                "Masculino",
                "Fractura");
 
        // Creamos una ficha del paciente
        FichaPaciente fichaPaciente = new FichaPaciente(paciente);
 
        // Creamos un médico
        Medico medico = new Medico();
 
        // El médico actualiza la ficha del paciente
        medico.actualizarFicha(paciente, "Fractura de radio izquierdo");
 
        // Guardamos la ficha del paciente en un archivo CSV
        fichaPaciente.guardarEnCSV("ficha_paciente.csv");
    }
}