通过面向对象设计实现任务分配与统计,定义Task和User类,使用TaskManager管理任务分配、完成状态及完成率统计,最后输出各用户任务完成情况。

任务分配与完成统计在项目管理、团队协作系统中非常常见。Java 作为一门成熟的编程语言,可以通过面向对象设计和集合类高效实现这一功能。下面介绍一个简单但实用的实现方式。
1. 定义任务与用户模型
首先要明确任务和用户的结构。每个任务应包含负责人、状态、创建时间等信息。
Task 类:
class Task {
private int id;
private String title;
private String assignee;
private boolean completed;
private long createTime;
public Task(int id, String title, String assignee) {
this.id = id;
this.title = title;
this.assignee = assignee;
this.completed = false;
this.createTime = System.currentTimeMillis();
}
立即学习“Java免费学习笔记(深入)”;
// Getter 和 Setter 方法
public int getId() { return id; }
public String getAssignee() { return assignee; }
public boolean isCompleted() { return completed; }
public void setCompleted(boolean completed) { this.completed = completed; }
public long getCreateTime() { return createTime; }
}
User 类(可选):
class User {
private String name;
private int taskCount;
public User(String name) {
this.name = name;
this.taskCount = 0;
}
public String getName() { return name; }
public int getTaskCount() { return taskCount; }
public void incrementTask() { this.taskCount++; }
}
2. 实现任务分配器
使用一个类来管理任务的分配和状态更新。
class TaskManager {
private List tasks = new ArrayList();
private Map users = new HashMap();
private int taskIdCounter = 1;
public void assignTask(String title, String assignee) {
Task task = new Task(taskIdCounter++, title, assignee);
tasks.add(task);
疯狂翻译师App
支持屏幕、图片、视频字幕、文档、漫画等多种翻译,准确率高,操作简单。
104 查看详情
users.putIfAbsent(assignee, new User(assignee));
users.get(assignee).incrementTask();
}
public void completeTask(int taskId) {
for (Task task : tasks) {
if (task.getId() == taskId) {
task.setCompleted(true);
return;
}
}
}
}
3. 统计任务完成情况
提供方法用于查看个人或整体的任务完成率。
public void printUserStats() {
Map completedCount = new HashMap();
for (Task task : tasks) {
if (task.isCompleted()) {
completedCount.merge(task.getAssignee(), 1, Integer::sum);
}
}
for (User user : users.values()) {
int total = user.getTaskCount();
int completed = completedCount.getOrDefault(user.getName(), 0);
double rate = total > 0 ? (double) completed / total * 100 : 0;
System.out.printf(“%s: 分配 %d 个任务,完成 %d 个,完成率 %.1f%%n”,
user.getName(), total, completed, rate);
}
}
4. 使用示例
演示如何调用上述代码。
public class Main {
public static void main(String[] args) {
TaskManager manager = new TaskManager();
manager.assignTask(“修复登录bug”, “张三”);
manager.assignTask(“设计数据库”, “李四”);
manager.assignTask(“编写文档”, “张三”);
manager.completeTask(1);
manager.completeTask(3);
manager.printUserStats();
}
}
输出示例:
张三: 分配 2 个任务,完成 2 个,完成率 100.0%
李四: 分配 1 个任务,完成 0 个,完成率 0.0%
基本上就这些。你可以根据实际需求扩展功能,比如加入截止日期、优先级、任务分类等。核心是通过对象建模和集合操作实现数据的追踪与统计。
以上就是如何使用Java实现任务分配与完成统计的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/736247.html
微信扫一扫
支付宝扫一扫