任务:
需要使⽤ Java 设计和实现部⻔员⼯和项⽬ (DEP) 系统。该系统帮助公司管理员⼯和项⽬。相
关主题包括接⼝、抽象、多态性和⽂件 I/O。
DEP 系统帮助公司管理部⻔、员⼯和项⽬。程序启动时,系统从⽂本⽂件加载部⻔、员⼯、项⽬和⼯作数据。然后
程序显⽰⼀个菜单,以便⽤⼾可以选择要做什么。
DEP的UML类图如下。您可以在 UML 类图中添加新的类、⽅法和属性,但不能修改或删除任何现有的类、属性
和⽅法。您的 java 实现必须与 UML 类图⼀致。
执⾏
任务
⽤⼾可以选择显⽰有关所有部⻔、员⼯、项⽬或⼯作的信息。⽤⼾可以添加新部⻔、新员⼯、新项
⽬或新的信息⼯作。⽤⼾可以将更新的数据保存到⽂本⽂件中。
java UML图的应用以及解法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 黎明的前夜 2023-04-29 11:24关注
创建一个Department类,该类包含部门的名称和ID属性,以及一个方法来获取和设置这些属性。
public class Department { private String name; private int id; public Department(String name, int id) { this.name = name; this.id = id; } public String getName() { return name; } public int getId() { return id; } public void setName(String name) { this.name = name; } public void setId(int id) { this.id = id; } }
创建一个Employee类,该类包含员工的姓名、ID、部门和职位属性,以及一个方法来获取和设置这些属性。
public class Employee { private String name; private int id; private Department department; private String position; public Employee(String name, int id, Department department, String position) { this.name = name; this.id = id; this.department = department; this.position = position; } public String getName() { return name; } public int getId() { return id; } public Department getDepartment() { return department; } public String getPosition() { return position; } public void setName(String name) { this.name = name; } public void setId(int id) { this.id = id; } public void setDepartment(Department department) { this.department = department; } public void setPosition(String position) { this.position = position; } }
创建一个Project类,该类包含项目的名称、ID、开始日期和结束日期属性,以及一个方法来获取和设置这些属性。
public class Project { private String name; private int id; private Date startDate; private Date endDate; public Project(String name, int id, Date startDate, Date endDate) { this.name = name; this.id = id; this.startDate = startDate; this.endDate = endDate; } public String getName() { return name; } public int getId() { return id; } public Date getStartDate() { return startDate; } public Date getEndDate() { return endDate; } public void setName(String name) { this.name = name; } public void setId(int id) { this.id = id; } public void setStartDate(Date startDate) { this.startDate = startDate; } public void setEndDate(Date endDate) { this.endDate = endDate; } }
创建一个Work类,该类包含员工、项目、开始日期和结束日期属性,以及一个方法来获取和设置这些属性。
public class Work { private Employee employee; private Project project; private Date startDate; private Date endDate; public Work(Employee employee, Project project, Date startDate, Date endDate) { this.employee = employee; this.project = project; this.startDate = startDate; this.endDate = endDate; } public Employee getEmployee() { return employee; } public Project getProject() { return project; } public Date getStartDate() { return startDate; } public Date getEndDate() { return endDate; } public void setEmployee(Employee employee) { this.employee = employee; } public void setProject(Project project) { this.project = project; } public void setStartDate(Date startDate) { this.startDate = startDate; } public void setEndDate(Date endDate) { this.endDate = endDate; } }
创建一个DEPSystem类,该类包含一个ArrayList来存储部门、员工、项目和工作数据,以及方法来加载和保存数据,显示菜单和处理用户输入。
import java.util.ArrayList; import java.util.Date; import java.util.Scanner; public class DEPSystem { private ArrayList<Department> departments; private ArrayList<Employee> employees; private ArrayList<Project> projects; private ArrayList<Work> works; public DEPSystem() { departments = new ArrayList<>(); employees = new ArrayList<>(); projects = new ArrayList<>(); works = new ArrayList<>(); } public void load() { // 从文本文件加载数据 } public void save() { // 将数据保存到文本文件 } public void showMenu() { System.out.println("DEP System Menu:"); System.out.println("1. Show all departments"); System.out.println("2. Show all employees"); System.out.println("3. Show all projects"); System.out.println("4. Show all works"); System.out.println("5. Add new department"); System.out.println("6. Add new employee"); System.out.println("7. Add new project"); System.out.println("8. Add new work"); System.out.println("9. Save data"); System.out.println("0. Exit"); } public void processInput(int choice) { switch (choice) { case 1: showDepartments(); break; case 2: showEmployees(); break; case 3: showProjects(); break; case 4: showWorks(); break; case 5: addDepartment(); break; case 6: addEmployee(); break; case 7: addProject(); break; case 8: addWork(); break; case 9: save(); break; case 0: System.exit(0); break; default: System.out.println("Invalid choice"); break; } } private void showDepartments() { for (Department department : departments) { System.out.println(department.getName() + " (" + department.getId() + ")"); } } private void showEmployees() { for (Employee employee : employees) { System.out.println(employee.getName() + " (" + employee.getId() + ")"); } } private void showProjects() { for (Project project : projects) { System.out.println(project.getName() + " (" + project.getId() + ")"); } } private void showWorks() { for (Work work : works) { System.out.println(work.getEmployee().getName() + " worked on " + work.getProject().getName() + " from " + work.getStartDate() + " to " + work.getEndDate()); } } private void addDepartment() { Scanner scanner = new Scanner(System.in); System.out.print("Enter department name: "); String name = scanner.nextLine(); System.out.print("Enter department ID: "); int id = scanner.nextInt(); scanner.nextLine(); departments.add(new Department(name, id)); } private void addEmployee() { Scanner scanner = new Scanner(System.in); System.out.print("Enter employee name: "); String name = scanner.nextLine(); System.out.print("Enter employee ID: "); int id = scanner.nextInt(); scanner.nextLine(); System.out.print("Enter employee position: "); String position = scanner.nextLine(); System.out.print("Enter department ID: "); int departmentId = scanner.nextInt(); scanner.nextLine(); Department department = findDepartmentById(departmentId); if (department == null) { System.out.println("Department not found"); return; } employees.add(new Employee(name, id, department, position)); } private void addProject() { Scanner scanner = new Scanner(System.in); System.out.print("Enter project name: "); String name = scanner.nextLine(); System.out.print("Enter project ID: "); int id = scanner.nextInt(); scanner.nextLine(); System.out.print("Enter start date (yyyy-mm-dd): "); String startDateString = scanner.nextLine(); Date startDate = parseDate(startDateString); System.out.print("Enter end date (yyyy-mm-dd): "); String endDateString = scanner.nextLine(); Date endDate = parseDate(endDateString); projects.add(new Project(name, id, startDate, endDate)); } private void addWork() { Scanner scanner = new Scanner(System.in); System.out.print("Enter employee ID: "); int employeeId = scanner.nextInt(); scanner.nextLine(); Employee employee = findEmployeeById(employeeId); if (employee == null) { System.out.println("Employee not found"); return; } System.out.print("Enter project ID: "); int projectId = scanner.nextInt(); scanner.nextLine(); Project project = findProjectById(projectId); if (project == null) { System.out.println("Project not found"); return; } System.out.print("Enter start date (yyyy-mm-dd): "); String startDateString = scanner.nextLine(); Date startDate = parseDate(startDateString); System.out.print("Enter end date (yyyy-mm-dd): "); String endDateString = scanner.nextLine(); Date endDate = parseDate(endDateString); works.add(new Work(employee, project, startDate, endDate)); } private Department findDepartmentById(int id) { for (Department department : departments) { if (department.getId() == id) { return department; } } return null; } private Employee findEmployeeById(int id) { for (Employee employee : employees) { if (employee.getId() == id) { return employee; } } return null; } private Project findProjectById(int id) { for (Project project : projects) { if (project.getId() == id) { return project; } } return null; } private Date parseDate(String dateString) { // 解析日期字符串并返回Date对象 return null; } }
创建一个Main类,该类包含main方法,用于启动DEPSystem并显示菜单。
public class Main { public static void main(String[] args) { DEPSystem depSystem = new DEPSystem(); depSystem.load(); while (true) { depSystem.showMenu(); Scanner scanner = new Scanner(System.in); System.out.print("Enter your choice: "); int choice = scanner.nextInt(); scanner.nextLine(); depSystem.processInput(choice); } } }
PS:望采纳 谢谢!有什么问题随时可以问 学生不易!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 1
悬赏问题
- ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
- ¥15 matlab自定义损失函数
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图