现在开始学习吧 2023-04-29 07:34 采纳率: 31.8%
浏览 32
已结题

java UML图的应用以及解法

任务:
需要使⽤ Java 设计和实现部⻔员⼯和项⽬ (DEP) 系统。该系统帮助公司管理员⼯和项⽬。相
关主题包括接⼝、抽象、多态性和⽂件 I/O。
DEP 系统帮助公司管理部⻔、员⼯和项⽬。程序启动时,系统从⽂本⽂件加载部⻔、员⼯、项⽬和⼯作数据。然后
程序显⽰⼀个菜单,以便⽤⼾可以选择要做什么。
DEP的UML类图如下。您可以在 UML 类图中添加新的类、⽅法和属性,但不能修改或删除任何现有的类、属性
和⽅法。您的 java 实现必须与 UML 类图⼀致。
执⾏
任务
⽤⼾可以选择显⽰有关所有部⻔、员⼯、项⽬或⼯作的信息。⽤⼾可以添加新部⻔、新员⼯、新项
⽬或新的信息⼯作。⽤⼾可以将更新的数据保存到⽂本⽂件中。

img

  • 写回答

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:望采纳 谢谢!有什么问题随时可以问 学生不易!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月7日
  • 已采纳回答 4月29日
  • 创建了问题 4月29日

悬赏问题

  • ¥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 微信的店铺小程序如何修改背景图