用JAVA1.实现程序模拟简单的企业职工管理系统。编写程序实现以下要求: (1)请按继承层次构建企业的各种职工类型,包括超类Employee,以及相应的子类Manager、Secretary和Programmer,从Manager继承又可得到Executive。超类Employee有编号,姓名,年龄,薪金、地址和雇佣日期等信息。 (2)用户可以根据职工编号或职工姓名查找所需的信息。管理人员可以增加,删除数据;可以写入一个数据,查找一个数据,或删除一个数据;此外,管理人员可以增加或降低每个职工的薪金。程序通过ArrayList来实现增加,查找,删除数据。

时间: 2024-03-01 10:52:00 浏览: 29
好的,这是一个比较复杂的任务,需要涉及到面向对象的编程思想,也需要一些基础的Java语法知识。我会尽力帮你解答,但是可能需要比较长的篇幅。首先,我们需要定义一个超类Employee,包括编号,姓名,年龄,薪金、地址和雇佣日期等信息: ```java public class Employee { private int id; // 编号 private String name; // 姓名 private int age; // 年龄 private double salary; // 薪水 private String address; // 地址 private Date hireDate; // 雇佣日期 // 构造方法 public Employee(int id, String name, int age, double salary, String address, Date hireDate) { this.id = id; this.name = name; this.age = age; this.salary = salary; this.address = address; this.hireDate = hireDate; } // getter和setter方法 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Date getHireDate() { return hireDate; } public void setHireDate(Date hireDate) { this.hireDate = hireDate; } } ``` 接下来,我们需要定义Manager、Secretary和Programmer子类,并从Manager继承得到Executive子类: ```java public class Manager extends Employee { private String department; // 部门 public Manager(int id, String name, int age, double salary, String address, Date hireDate, String department) { super(id, name, age, salary, address, hireDate); this.department = department; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } } public class Secretary extends Employee { private String boss; // 上司 public Secretary(int id, String name, int age, double salary, String address, Date hireDate, String boss) { super(id, name, age, salary, address, hireDate); this.boss = boss; } public String getBoss() { return boss; } public void setBoss(String boss) { this.boss = boss; } } public class Programmer extends Employee { private String language; // 编程语言 public Programmer(int id, String name, int age, double salary, String address, Date hireDate, String language) { super(id, name, age, salary, address, hireDate); this.language = language; } public String getLanguage() { return language; } public void setLanguage(String language) { this.language = language; } } public class Executive extends Manager { public Executive(int id, String name, int age, double salary, String address, Date hireDate, String department) { super(id, name, age, salary, address, hireDate, department); } } ``` 接下来,我们需要实现一个职工管理系统类,包括增加、查找、删除和修改职工信息的方法: ```java import java.util.ArrayList; import java.util.Date; public class EmployeeManagementSystem { private ArrayList<Employee> employeeList = new ArrayList<>(); // 职工列表 // 增加职工信息 public void addEmployee(Employee employee) { employeeList.add(employee); } // 根据编号查找职工信息 public Employee findEmployeeById(int id) { for (Employee employee : employeeList) { if (employee.getId() == id) { return employee; } } return null; } // 根据姓名查找职工信息 public ArrayList<Employee> findEmployeeByName(String name) { ArrayList<Employee> result = new ArrayList<>(); for (Employee employee : employeeList) { if (employee.getName().equals(name)) { result.add(employee); } } return result; } // 删除职工信息 public void deleteEmployee(Employee employee) { employeeList.remove(employee); } // 修改职工薪水 public void updateSalary(Employee employee, double salary) { employee.setSalary(salary); } // 获取职工列表 public ArrayList<Employee> getEmployeeList() { return employeeList; } public static void main(String[] args) { // 创建一个职工管理系统实例 EmployeeManagementSystem ems = new EmployeeManagementSystem(); // 增加职工信息 ems.addEmployee(new Manager(1, "Tom", 30, 10000, "北京", new Date(), "销售部")); ems.addEmployee(new Secretary(2, "Mary", 25, 5000, "北京", new Date(), "Tom")); ems.addEmployee(new Programmer(3, "Jack", 28, 8000, "上海", new Date(), "Java")); ems.addEmployee(new Executive(4, "Jerry", 35, 15000, "北京", new Date(), "财务部")); // 查找职工信息 Employee employee1 = ems.findEmployeeById(1); System.out.println(employee1.getName() + ", " + employee1.getSalary()); ArrayList<Employee> employee2 = ems.findEmployeeByName("Mary"); for (Employee employee : employee2) { System.out.println(employee.getName() + ", " + employee.getSalary()); } // 修改职工薪水 ems.updateSalary(employee1, 12000); System.out.println(employee1.getName() + ", " + employee1.getSalary()); // 删除职工信息 ems.deleteEmployee(employee2.get(0)); System.out.println(ems.getEmployeeList().size()); } } ``` 以上是一个简单的职工管理系统的Java实现,包括超类Employee和子类Manager、Secretary和Programmer、Executive的定义,以及职工管理系统类EmployeeManagementSystem的实现。该系统可以通过增加、查找、删除和修改职工信息的方法来管理职工信息。

最新推荐

recommend-type

java实现投票程序设计

主要介绍了java实现投票程序设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

使用Java程序模拟实现新冠病毒传染效果

主要介绍了用Java程序模拟实现新冠病毒传染效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

java实现简单的学生信息管理系统代码实例

主要介绍了java实现简单的学生信息管理系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

Java实现飞机航班管理系统的思路详解

主要介绍了Java实现飞机航班管理系统的思路详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

Java 实现简易教务管理系统的代码

主要介绍了Java 实现简易教务管理系统的代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

用Spring boot和vue写一个登录注册界面

好的,这是一个比较常见的技术问题,我可以为您提供一些参考资料和思路。首先,您可以使用Spring Boot作为后端框架来处理用户认证和注册的逻辑,比如使用Spring Security实现用户登录认证。同时,您还需要设计相应的数据模型和数据库表结构来存储用户信息。在前端方面,您可以使用Vue.js作为框架来构建登录注册页面,使用Axios来发起API请求并和后端进行交互。当然,在实现过程中,还需要考虑一些具体细节,比如数据校验、安全性和用户体验等方面。希望这些信息能够帮助到您。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。