¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
Gestor de Tareas con Prioridades en Java
Anuncios
Publicidad

Gestor de Tareas con Prioridades en Java

Este proyecto en Java implementa un gestor de tareas con prioridades, donde cada tarea cuenta con una descripción y un nivel de prioridad (1 = alta, 2 = media, 3 = baja).

Para lograrlo, se han creado varias clases: Tarea, que define los atributos y permite ordenar tareas mediante Comparable; MiExcepcion, que gestiona errores personalizados; GestorTareas, que contiene la lógica principal para agregar, eliminar y mostrar tareas; y ProgramMain, que ejecuta el programa.

Gracias a esta estructura, es posible organizar fácilmente las tareas, mantener un orden claro según su prioridad y manejar excepciones cuando una tarea no se encuentra en la lista.

🗂️Cómo obtener el nombre y correo de un cliente con SQL

Creamos la clase Tarea:

package com.mycompany.gestordetareasconprioridades;


// La clase tarea implementa "Implement" la clase comparable de tipo Tarea:
// Tendremos que importar su método abstracto *.


public class Tarea implements Comparable{

// Atributos de la clase:

private String descripcion; // Descripción de la tarea podrías ser "Aprender Python" "Aprender Java" "Aprender MySQL"
private int prioridad; // (1 = alta, 2 = media, 3 = baja)

// Constructor de la clase:

public Tarea(String descripcion, int prioridad) {
this.descripcion = descripcion;
this.prioridad = prioridad;
}

// Añadimos los getter y setter:

public String getDescripcion() {
return descripcion;
}

public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}

public int getPrioridad() {
return prioridad;
}

public void setPrioridad(int prioridad) {
this.prioridad = prioridad;
}

// Método ToString modificado para informar de la tarea disponible:

@Override
public String toString() {
return "descripcion: " + descripcion + ", La prioridad es: " + prioridad;
}

// Usamos la clase comparator, este nos permite definir un orden natural para los objetos de la clase.

// * Sobreescribimos su método de la clase comparable, permite comparar dos objetos.


@Override
public int compareTo(Tarea a) {
// método de la clase Integer. en concreto compare, comparamos la prioridad con la recibida.
// Usamos This.prioridad para hacer referencia al atributo de la clase.
// comparamos la tarea recibida con la actual.

return Integer.compare(this.prioridad, a.prioridad);
}}

Creamos la segunda clase MiExcepcion:

package com.mycompany.gestordetareasconprioridades.excepciones;
// Creamos una clase con una excepción personalizada, esta extiende de la clase exceptión.
public class MiExcepcion extends Exception{

// Constructor de la clase: public MiExcepcion (String mensaje){ super(mensaje);

}}

Creamos la tercera clase GestorTareas:

package com.mycompany.gestordetareasconprioridades;

import com.mycompany.gestordetareasconprioridades.excepciones.MiExcepcion;
import java.awt.AWTEventMulticaster;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

// Esta clase es la encargada de realizar la tareas

public class GestorTareas {

// Creamos una lista para almacenar las tareas de tipo Tarea, recuerda la clase creada.

List <Tarea> tareas = new ArrayList<Tarea>();

// Métodos disponibles
// Este método agrega la tarea a la lista.

public void agregarTarea(Tarea t)
{
tareas.add(t);
System.out.println("Se ha agregado la tarea con éxito.....");
};

public void eliminarTarea(String descripcion) throws MiExcepcion { Iterator<Tarea> it = tareas.iterator(); boolean encontrada = false; while (it.hasNext()) { Tarea t = it.next(); if (t.getDescripcion().trim().equalsIgnoreCase(descripcion.trim())) { it.remove(); encontrada = true; System.out.println("Tarea eliminada con éxito: " + descripcion); break; } } if (!encontrada) { throw new MiExcepcion("No se ha encontrado la tarea con la descripción: " + descripcion); }

}
// Primero Ordena la lista y luego la imprime
public void mostrarTareasOrdenadas()
{
for (Tarea tarea : tareas) {
System.out.println(tarea);
}
}}

Creamos la cuarta clase y la más importante, esta es la encargada de poner en marcha el programa, llamada ProgramMain:

import com.mycompany.gestordetareasconprioridades.GestorTareas;
import com.mycompany.gestordetareasconprioridades.Tarea;
import com.mycompany.gestordetareasconprioridades.excepciones.MiExcepcion;

/*
Clase Main
Es la que ejecuta el programa.
Crea un GestorTareas.
Añade tareas con agregarTarea().
Muestra tareas con mostrarTareasOrdenadas().
Elimina una con eliminarTarea().
Lista de tareas ordenadas:
Tarea: Estudiar Java | Prioridad: 1
Tarea: Hacer ejercicio | Prioridad: 2
Tarea: Lavar los platos | Prioridad: 3

Tarea eliminada con éxito.

📌 Lista actualizada de tareas:
Tarea: Estudiar Java | Prioridad: 1
Tarea: Hacer ejercicio | Prioridad: 2
*/
public class programMain {

public static void main(String[] args) throws MiExcepcion {
// Creamos una nueva instancia de gestorTareas llamada Nueva tarea.
GestorTareas NuevaTarea = new GestorTareas();


// Agregamos la tarea, instancia + método (agregamos la tarea y su prioridad)


NuevaTarea.agregarTarea(new Tarea("Estudiar java",1));
NuevaTarea.agregarTarea(new Tarea("Estudiar MySQL", 2));
NuevaTarea.agregarTarea(new Tarea("Estudiar Python",3));

// Eliminamos la tarea:

NuevaTarea.eliminarTarea("Estudiar java");

// Mostrar la tarea:

NuevaTarea.mostrarTareasOrdenadas();
}

}

Resultado:

Resultado si la tarea que se intenta borrar no existe:

Primero la modificación del código:

public class programMain {

public static void main(String[] args) throws MiExcepcion { // Creamos una nueva instancia de gestorTareas llamada Nueva tarea. GestorTareas NuevaTarea = new GestorTareas(); // Agregamos la tarea, instancia + método (agregamos la tarea y su prioridad) NuevaTarea.agregarTarea(new Tarea("Estudiar java",1)); NuevaTarea.agregarTarea(new Tarea("Estudiar MySQL", 2)); NuevaTarea.agregarTarea(new Tarea("Estudiar Python",3)); // Eliminamos la tarea: NuevaTarea.eliminarTarea("Estudiar programacion java"); // Mostrar la tarea: NuevaTarea.mostrarTareasOrdenadas(); }

}

Ahora sí, el resultado:

Exception in thread "main" com.mycompany.gestordetareasconprioridades.excepciones.MiExcepcion: No se ha encontrado la tarea con la descripción Estudiar programacion java

Seguir leyendo:

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

Deja una respuesta

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
error: Content is protected !!
Hablemos de informática
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.