任务分派信息管理系统
[问题描述]
参考办公室任务分派工作的相关信息需求,提供任务,员工,任务执行等信息的管理功
能。
[实现要求]
能够根据员工的技能和空闲情况来分派任务。并能够对每月的员工的任务执行情况进行
统计。要用数据结构来存储数据,不要用数据库或者hashmap,treemap,就用链表那些基础数据结构(不要用arraylist类这种,要直接写链表)
[选作内容]
GUI界面实现。(可以不做,直接控制台菜单输出也可以)
仅供参考:
import java.util.ArrayList
import java.util.List
import java.util.Scanner
public class TaskManagementSystem {
public static void main(String[] args) {
// 创建任务列表
List < Task > tasks = new ArrayList < Task > ();
// 创建员工列表
List < Employee > employees = new ArrayList < Employee > ();
Scanner scanner = new Scanner(System. in);
while (true) {
// 输出菜单
System.out.println("1. 添加任务");
System.out.println("2. 添加员工");
System.out.println("3. 分派任务");
System.out.println("4. 查看员工完成的任务");
System.out.println("5. 退出");
System.out.print("请输入选项: ");
// 读取用户输入
int option = scanner.nextInt();
scanner.nextLine(); // 读取换行符
if (option == 1) {
// 添加任务
System.out.print("请输入任务名称: ");
String name = scanner.nextLine();
System.out.print("请输入任务描述: ");
String description = scanner.nextLine();
System.out.print("请输入任务所需技能: ");
String skills = scanner.nextLine();
Task task = new Task(name, description, skills);
tasks.add(task);
System.out.println("任务已添加"); } else if (option == 2) {
// 添加员工
System.out.print("请输入员工名字: ");
String name = scanner.nextLine();
System.out.print("请输入员工技能: ");
String skills = scanner.nextLine();
Employee employee = new Employee(name, skills);
employees.add(employee);
System.out.println("员工已添加"); } else if (option == 3) {
// 分派任任务
System.out.print("请输入任务名称: ");
String taskName = scanner.nextLine();
System.out.print("请输入员工名字: ");
String employeeName = scanner.nextLine();
// 查找任务和员工
Task task = null;
Employee employee = null;
for (Task t: tasks) {
if (t.getName().equals(taskName)) {
task = t;
break;}
}
for (Employee e: employees) {
if (e.getName().equals(employeeName)) {
employee = e;
break;}
}
// 分派任务
if (task != null & & employee != null) {
if (task.assignToEmployee(employee)) {
System.out.println("任务已分派");} else {
System.out.println("员工技能不足,无法分派");}
} else {
System.out.println("任务或员工不存在");}
} else if (option == 4) {
// 查看员工完成的任务
System.out.print("请输入员工名字: ");
String employeeName = scanner.nextLine();
// 查找员工
Employee employee = null;
for (Employee e: employees) {
if (e.getName().equals(employeeName)) {
employee = e;
break;}
}
// 查看员工完成的任务
if (employee != null) {
List < Task > completedTasks = employee.getCompletedTasks();
if (completedTasks.isEmpty()) {
System.out.println("员工还没有完成任务");} else {
System.out.println("员工完成的任务: ");
for (Task t: completedTasks) {
System.out.println(t.getName());}
}
} else {
System.out.println("员工不存在");}
} else if (option == 5) {
// 退出
break;} else {
System.out.println("无效的选项");}
}
scanner.close();}
}
// 任务类
class Task {
private String name
private String description
private String skills
private int progress
// 任务完成进度(百分比)
private Employee assignedEmployee
// 分派的员工
public Task(String name, String description, String skills) {
this.name = name
this.description = description
this.skills = skills
this.progress = 0
this.assignedEmployee = null
}
// 分派任务给员工
public boolean assignToEmployee(Employee employee) {
// 检查员工是否有足够的技能
if (!employee.hasSkills(skills)) {
return false
}
// 检查员工是否空闲
if (!employee.isAvailable()) {
return false
}
// 分派任务
this.assignedEmployee = employee
employee.setAvailability(false)
return true
}
// 任务完成
public void complete() {
progress = 100
assignedEmployee.setAvailability(true)
assignedEmployee.addCompletedTask(this)
}
public String getName() {
return name
}
public String getDescription() {
return description
}
public String getSkills() {
return skills
}
public int getProgress() {
return progress
}
public Employee getAssignedEmployee() {
return assignedEmployee
}
}
// 员工类
class Employee {
private String name;
private String skills;
private boolean availability; // 空闲状态
private List < Task > completedTasks; // 完成的任务列表
public Employee(String name, String skills) {
this.name = name;
this.skills = skills;
this.availability = true;
this.completedTasks = new ArrayList < Task > ();}
// 检查员工是否有指定的技能
public boolean hasSkills(String requiredSkills) {
String[] requiredSkillsArray = requiredSkills.split(",");
for (String requiredSkill: requiredSkillsArray) {
if (!skills.contains(requiredSkill)) {
return false;}
}
return true;}
// 设置员工的空闲状态
public void setAvailability(boolean availability) {
this.availability = availability;}
// 检查员工是否空闲
public boolean isAvailable() {
return availability;}
// 添加完成的任务
public void addCompletedTask(Task task) {
completedTasks.add(task);}
// 获取完成的任务列表
public List < Task > getCompletedTasks() {
return completedTasks;}
public String getName() {
return name;}
public String getSkills() {
return skills;}
}
望采纳。
看起来有点复杂,大兄弟。得加价 哈哈
Java模拟禅道的团队任务分配管理系统
借鉴下,非常详细
https://blog.csdn.net/weixin_59661960/article/details/125542874
需要定义若干类来描述你的系统中的对象。这些类应该包括:
1.任务类(Task):该类应该包含任务的名称、描述、分配给的员工、任务的状态(未开始、进行中、已完成)等属性。
2.员工类(Employee):该类应该包含员工的名字、技能、空闲情况(是否空闲)、已分配的任务等属性。
3.任务管理类(TaskManager):该类应该负责管理员工和任务的信息,包括分配任务、查询员工的任务执行情况等功能。
本地简单编写了参考代码,以下是类图:
下面是相应的 Java 代码实现:
import java.util.List;
// 任务类
class Task {
private String name;
private String description;
private Employee employee;
private TaskStatus status;
public Task(String name, String description) {
this.name = name;
this.description = description;
this.status = TaskStatus.NOT_STARTED;
}
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 Employee getEmployee() {
return employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
public TaskStatus getStatus() {
return status;
}
public void setStatus(TaskStatus status) {
this.status = status;
}
}
// 员工类
class Employee {
private String name;
private List<String> skills;
private boolean isFree;
private List<Task> tasks;
public Employee(String name, List<String> skills) {
this.name = name;
this.skills = skills;
this.isFree = true;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getSkills() {
return skills;
}
public void setSkills(List<String> skills) {
this.skills = skills;
}
public boolean isFree() {
return isFree;
}
public void setFree(boolean free) {
isFree = free;
}
public List<Task> getTasks() {
return tasks;
}
public void setTasks(List<Task> tasks) {
this.tasks = tasks;
}
}
// 任务状态枚举类
enum TaskStatus {
NOT_STARTED, IN_PROGRESS, FINISHED
}
// 任务管理类
class TaskManager {
private List<Task> tasks;
private List<Employee> employees;
public void assignTask(Task task, Employee employee) {
// 为任务分配员工
task.setEmployee(employee);
// 修改员工的空闲状态
employee.setFree(false);
// 修改任务的状态
task.setStatus(TaskStatus.IN_PROGRESS);
}
public TaskStatus getTaskStatus(Task task) {
return task.getStatus();
}
public Employee getEmployee(Task task) {
return task.getEmployee();
}
}