Java实现任务管理系统

使用Java实现简单的任务管理系统

在现代软件开发中,任务管理系统是一个常见的需求。无论是在项目管理、待办事项列表,还是在复杂的工作流系统中,任务管理都扮演着重要的角色。本文将介绍如何使用Java语言来实现一个简单的任务管理系统。

功能需求

我们要实现的任务管理系统需要具备以下基本功能:

  1. 添加任务:用户可以添加新的任务到系统中。
  2. 删除任务:用户可以删除已存在的任务。
  3. 更新任务:用户可以更新任务的内容或状态。
  4. 查看任务:用户可以查看所有任务的列表。
  5. 标记任务完成:用户可以标记任务为已完成。

设计方案

为了实现上述功能,我们将采用面向对象的设计思想,定义几个关键的类和接口。

1. 类结构设计

  • Task类:表示一个任务,包含任务ID、名称、描述、状态(未完成、已完成)等属性。
  • TaskManager类:负责管理任务的添加、删除、更新、查看等操作。
  • TaskStatus枚举:定义任务的状态,如未完成和已完成。

2. 数据存储

为了简化实现,我们将使用Java的集合框架(如ArrayList)来存储任务。这样可以方便地对任务进行增删改查操作。

代码实现

import java.util.ArrayList;
import java.util.List;

// 枚举定义任务状态
enum TaskStatus {
    PENDING, COMPLETED
}

// 定义Task类
class Task {
    private int id;
    private String name;
    private String description;
    private TaskStatus status;

    public Task(int id, String name, String description) {
        this.id = id;
        this.name = name;
        this.description = description;
        this.status = TaskStatus.PENDING;
    }

    // Getter和Setter方法
    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public TaskStatus getStatus() {
        return status;
    }

    public void setStatus(TaskStatus status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "Task{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", status=" + status +
                '}';
    }
}

// 定义TaskManager类
class TaskManager {
    private List<Task> tasks;
    private int nextId;

    public TaskManager() {
        tasks = new ArrayList<>();
        nextId = 1;
    }

    public void addTask(String name, String description) {
        Task task = new Task(nextId++, name, description);
        tasks.add(task);
        System.out.println("Task added: " + task);
    }

    public void deleteTask(int id) {
        tasks.removeIf(task -> task.getId() == id);
        System.out.println("Task with ID " + id + " deleted.");
    }

    public void updateTask(int id, String name, String description) {
        for (Task task : tasks) {
            if (task.getId() == id) {
                task.setName(name);
                task.setDescription(description);
                System.out.println("Task updated: " + task);
                return;
            }
        }
        System.out.println("Task with ID " + id + " not found.");
    }

    public void markTaskAsCompleted(int id) {
        for (Task task : tasks) {
            if (task.getId() == id) {
                task.setStatus(TaskStatus.COMPLETED);
                System.out.println("Task marked as completed: " + task);
                return;
            }
        }
        System.out.println("Task with ID " + id + " not found.");
    }

    public void viewTasks() {
        System.out.println("Task List:");
        for (Task task : tasks) {
            System.out.println(task);
        }
    }
}

// 主类
public class TaskManagementSystem {
    public static void main(String[] args) {
        TaskManager taskManager = new TaskManager();
        
        // 添加任务
        taskManager.addTask("Finish report", "Complete the annual report by end of the week.");
        taskManager.addTask("Email client", "Send the proposal to the client.");

        // 查看任务
        taskManager.viewTasks();

        // 更新任务
        taskManager.updateTask(1, "Finish report", "Complete the report by tomorrow.");

        // 标记任务完成
        taskManager.markTaskAsCompleted(2);

        // 查看任务
        taskManager.viewTasks();

        // 删除任务
        taskManager.deleteTask(1);

        // 查看任务
        taskManager.viewTasks();
    }
}

总结

本文介绍了如何使用Java实现一个简单的任务管理系统。通过定义Task类来表示任务,TaskManager类来管理任务,我们实现了任务的添加、删除、更新、查看和标记完成等基本功能。这一实现可以作为更复杂任务管理系统的基础,进一步扩展可以包括持久化存储、用户权限管理、任务分类等功能。