一个简易任务分配系统需支持任务创建、分配、查看、状态更新和用户管理。使用Java设计Task和User类分别存储任务与用户信息,TaskManager类通过集合管理数据并提供增删改查方法,结合Scanner实现控制台交互,完成任务生命周期管理。核心逻辑包括任务状态流转、按负责人筛选任务及基本输入处理,适合小型项目协作。后续可扩展持久化存储或Web接口。
开发一个简易任务分配系统可以帮助团队高效协作,尤其适用于小型项目管理或内部流程调度。在Java中实现这样一个系统,核心在于设计合理的数据结构、任务状态流转逻辑以及用户与任务的交互机制。下面从需求分析到代码实现,一步步带你完成这个项目。
一个简易任务分配系统应具备以下基础功能:
不需要复杂的权限体系或前端界面,可用控制台模拟交互,便于快速验证逻辑。
基于功能需求,定义几个关键Java类:
Task 类代表一个任务,包含基本信息和状态字段:
public class Task {
private int id;
private String title;
private String description;
private String status; // 如 "待处理", "进行中", "已完成"
private String priority; // 如 "高", "中", "低"
private String assignee; // 负责人用户名
private String deadline;
// 构造方法、getter/setter 省略
}
User 类
表示系统用户:
public class User {
private String username;
private String role; // 如 "admin", "member"
// 构造方法、getter/setter
}
TaskManager 类
负责任务的增删改查,使用集合存储数据:
import java.util.*;
public class TaskManager {
private List tasks = new ArrayList<>();
private List users = new ArrayList<>();
private int taskIdCounter = 1;
public void addTask(Task task) {
task.setId(taskIdCounter++);
tasks.add(task);
}
public List getTasksByAssignee(String username) {
return tasks.stream()
.filter(t -> t.getAssignee().equals(username))
.toList();
}
public void updateTaskStatus(int taskId, String newStatus) {
tasks.stream()
.filter(t -> t.getId() == taskId)
.findFirst()
.ifPresent(t -> t.setStatus(newStatus));
}
}
通过 Scanner 实现简单的命令式操作,适合演示和测试:
public class TaskSystem {
private TaskManager manager = new TaskManager();
private Scanner scanner = new Scanner(System.in);
public void start() {
System.out.println("欢迎使用任务分配系统");
while (true) {
System.out.println("\n1. 创建任务 2. 分配任务 3. 查看我的任务 4. 更新任务状态 5. 退出");
System.out.print("请选择操作:");
int choice = scanner.nextInt();
scanner.nextLine(); // 消费换行
switch (choice) {
case 1:
createTask();
break;
case 2:
assignTask();
break;
case 3:
viewMyTasks();
break;
case 4:
updateTaskStatus();
break;
case 5:
System.out.println("退出系统");
return;
default:
System.out.println("无效选择");
}
}
}
private void createTask() {
System.out.print("任务标题:");
String title = scanner.nextLine();
Task task = new Task();
task.setTitle(title);
task.setStatus("待处理");
// 设置其他字段...
manager.addTask(task);
System.out.println("任务创建成功,ID:" + task.getId());
}
// 其他方法略
}
主程序启动入口:
public static void main(String[] args) {
new TaskSystem().start();
}
当前为内存版实现,所有数据在程序关闭后丢失。若需持久化,可引入文件存储(如 JSON 或 CSV)或嵌入式数据库(如 SQLite)。后续可扩展方向包括:
基本上就这些,不复杂但容易忽略细节,比如状态合法性校验、用户是否存在等,实际开发中应加入相应判断。通过这个小项目,能很好锻炼Java面向对象设计和基础逻辑控制能力。