任务分派信息管理系统
[问题描述]
参考办公室任务分派工作的相关信息需求,提供任务,员工,任务执行等信息的管理功
能。
[实现要求]
能够根据员工的技能和空闲情况来分派任务。并能够对每月的员工的任务执行情况进行
统计。要用数据结构来存储数据,不要用数据库或者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无用
悬赏问题
- ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
- ¥20 Java-Oj-桌布的计算
- ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
- ¥20 有人知道这种图怎么画吗?
- ¥15 pyqt6如何引用qrc文件加载里面的的资源
- ¥15 安卓JNI项目使用lua上的问题
- ¥20 RL+GNN解决人员排班问题时梯度消失
- ¥60 要数控稳压电源测试数据
- ¥15 能帮我写下这个编程吗
- ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路