任务分派信息管理系统
[问题描述]
参考办公室任务分派工作的相关信息需求,提供任务,员工,任务执行等信息的管理功
能。
[实现要求]
能够根据员工的技能和空闲情况来分派任务。并能够对每月的员工的任务执行情况进行
统计。要用数据结构来存储数据,不要用数据库或者hashmap,treemap,就用链表那些基础数据结构(不要用arraylist类这种,要直接写链表)
[选作内容]
GUI界面实现。(可以不做,直接控制台菜单输出也可以)
任务分派信息管理系统
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- |__WhoAmI__| 2022-12-30 20:24关注
仅供参考:
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;} }
望采纳。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么