Java 员工管理系统:Staff 类和 StaffManager 类实现

本示例演示如何使用 Java 编写一个简单的员工管理系统,包含两个主要类:Staff 类和 StaffManager 类。

Staff 类

Staff 类用于存储单个员工的信息,包括以下属性:

  • empNo:工号 (int)
  • password:密码 (String)
  • empName:姓名 (String)
  • gender:性别 (String)
  • idCardNo:身份证号 (String)
  • age:年龄 (int)
  • seniority:工龄 (int)
  • wages:工资 (double)
  • title:职称 (String)
  • department:所属部门 (String)
  • phoneNum:联系方式 (String)
  • homeAddress:家庭住址 (String)
  • isLoggedIn:是否已登录 (boolean)

Staff 类还提供以下方法:

  • login(int empNo, String password):登录系统方法,检查输入的工号和密码是否正确。如果正确,则将 isLoggedIn 属性设置为 true 并返回 true,否则返回 false
  • showDetail():查看个人信息方法,将员工信息打印到控制台。
  • alterDetail(String phoneNum, String homeAddress):修改个人信息方法。该方法要求用户先登录,登录成功后才能修改联系方式和家庭住址。

Staff 类代码如下:

public class Staff {
    private int empNo;
    private String password;
    private String empName;
    private String gender;
    private String idCardNo;
    private int age;
    private int seniority;
    private double wages;
    private String title;
    private String department;
    private String phoneNum;
    private String homeAddress;
    private boolean isLoggedIn;

    public Staff(int empNo, String password, String empName, String gender, String idCardNo, int age, int seniority, double wages, String title, String department, String phoneNum, String homeAddress) {
        this.empNo = empNo;
        this.password = password;
        this.empName = empName;
        this.gender = gender;
        this.idCardNo = idCardNo;
        this.age = age;
        this.seniority = seniority;
        this.wages = wages;
        this.title = title;
        this.department = department;
        this.phoneNum = phoneNum;
        this.homeAddress = homeAddress;
        this.isLoggedIn = false;
    }

    public boolean login(int empNo, String password) {
        if (this.empNo == empNo && this.password.equals(password)) {
            this.isLoggedIn = true;
            return true;
        } else {
            return false;
        }
    }

    public void showDetail() {
        System.out.println('工号:' + empNo);
        System.out.println('姓名:' + empName);
        System.out.println('性别:' + gender);
        System.out.println('身份证号:' + idCardNo);
        System.out.println('年龄:' + age);
        System.out.println('工龄:' + seniority);
        System.out.println('工资:' + wages);
        System.out.println('职称:' + title);
        System.out.println('所属部门:' + department);
        System.out.println('联系方式:' + phoneNum);
        System.out.println('家庭住址:' + homeAddress);
    }

    public boolean alterDetail(String phoneNum, String homeAddress) {
        if (!isLoggedIn) {
            return false;
        } else {
            this.phoneNum = phoneNum;
            this.homeAddress = homeAddress;
            return true;
        }
    }

    // Getter 方法
    public int getEmpNo() {
        return empNo;
    }

    public String getEmpName() {
        return empName;
    }

    public String getGender() {
        return gender;
    }

    public String getIdCardNo() {
        return idCardNo;
    }

    public int getAge() {
        return age;
    }

    public int getSeniority() {
        return seniority;
    }

    public double getWages() {
        return wages;
    }

    public String getTitle() {
        return title;
    }

    public String getDepartment() {
        return department;
    }

    public String getPhoneNum() {
        return phoneNum;
    }

    public String getHomeAddress() {
        return homeAddress;
    }
}

StaffManager 类

StaffManager 类用于管理员工列表,并提供以下方法:

  • checkAdmin(String user, String password):检查管理员账号和密码是否正确。
  • addStaff(Staff staff):新增员工方法,将新的员工对象添加到员工列表中。
  • findStaff(int empNo):查找员工方法,根据输入的员工编号查找对应员工,并返回对应员工对象。
  • updateStaffInfo(int empNo, Staff newStaff):更新员工信息方法,根据输入的员工编号查找对应员工,并用新的员工对象替换原有对象。
  • deleteStaff(int empNo):删除员工方法,根据输入的员工编号查找对应员工,并将其从员工列表中删除。

StaffManager 类代码如下:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class StaffManager {
    private List<Staff> staffLists;
    private String user;
    private String password;

    public StaffManager(String user, String password) {
        this.staffLists = new ArrayList<>();
        this.user = user;
        this.password = password;
    }

    public boolean checkAdmin(String user, String password) {
        return this.user.equals(user) && this.password.equals(password);
    }

    public void addStaff(Staff staff) {
        staffLists.add(staff);
    }

    public Staff findStaff(int empNo) {
        for (Staff staff : staffLists) {
            if (staff.getEmpNo() == empNo) {
                return staff;
            }
        }
        return null;
    }

    public boolean updateStaffInfo(int empNo, Staff newStaff) {
        Staff oldStaff = findStaff(empNo);
        if (oldStaff == null) {
            return false;
        } else {
            staffLists.set(staffLists.indexOf(oldStaff), newStaff);
            return true;
        }
    }

    public boolean deleteStaff(int empNo) {
        Staff staff = findStaff(empNo);
        if (staff == null) {
            return false;
        } else {
            staffLists.remove(staff);
            return true;
        }
    }

    public static void main(String[] args) {
        StaffManager manager = new StaffManager('admin', 'admin123');
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println('请输入管理员账号:');
            String user = scanner.nextLine();
            System.out.println('请输入管理员密码:');
            String password = scanner.nextLine();
            if (!manager.checkAdmin(user, password)) {
                System.out.println('管理员账号或密码错误,请重新输入!');
            } else {
                break;
            }
        }
        while (true) {
            System.out.println('请输入数字选择要进行的操作:');
            System.out.println('1. 新增员工');
            System.out.println('2. 查找员工');
            System.out.println('3. 更新员工信息');
            System.out.println('4. 删除员工');
            System.out.println('5. 退出');
            int choice = scanner.nextInt();
            scanner.nextLine();
            switch (choice) {
                case 1:
                    System.out.println('请输入员工信息:');
                    System.out.println('工号:');
                    int empNo = scanner.nextInt();
                    scanner.nextLine();
                    System.out.println('密码:');
                    String password = scanner.nextLine();
                    System.out.println('姓名:');
                    String empName = scanner.nextLine();
                    System.out.println('性别:');
                    String gender = scanner.nextLine();
                    System.out.println('身份证号:');
                    String idCardNo = scanner.nextLine();
                    System.out.println('年龄:');
                    int age = scanner.nextInt();
                    scanner.nextLine();
                    System.out.println('工龄:');
                    int seniority = scanner.nextInt();
                    scanner.nextLine();
                    System.out.println('工资:');
                    double wages = scanner.nextDouble();
                    scanner.nextLine();
                    System.out.println('职称:');
                    String title = scanner.nextLine();
                    System.out.println('所属部门:');
                    String department = scanner.nextLine();
                    System.out.println('联系方式:');
                    String phoneNum = scanner.nextLine();
                    System.out.println('家庭住址:');
                    String homeAddress = scanner.nextLine();
                    Staff staff = new Staff(empNo, password, empName, gender, idCardNo, age, seniority, wages, title, department, phoneNum, homeAddress);
                    manager.addStaff(staff);
                    System.out.println('新增员工成功!');
                    break;
                case 2:
                    System.out.println('请输入要查找的员工工号:');
                    int empNo2 = scanner.nextInt();
                    scanner.nextLine();
                    Staff staff2 = manager.findStaff(empNo2);
                    if (staff2 == null) {
                        System.out.println('未找到对应员工!');
                    } else {
                        staff2.showDetail();
                    }
                    break;
                case 3:
                    System.out.println('请输入要更新的员工工号:');
                    int empNo3 = scanner.nextInt();
                    scanner.nextLine();
                    Staff oldStaff = manager.findStaff(empNo3);
                    if (oldStaff == null) {
                        System.out.println('未找到对应员工!');
                    } else {
                        System.out.println('请输入新的员工信息:');
                        System.out.println('密码:');
                        String password2 = scanner.nextLine();
                        System.out.println('姓名:');
                        String empName2 = scanner.nextLine();
                        System.out.println('性别:');
                        String gender2 = scanner.nextLine();
                        System.out.println('身份证号:');
                        String idCardNo2 = scanner.nextLine();
                        System.out.println('年龄:');
                        int age2 = scanner.nextInt();
                        scanner.nextLine();
                        System.out.println('工龄:');
                        int seniority2 = scanner.nextInt();
                        scanner.nextLine();
                        System.out.println('工资:');
                        double wages2 = scanner.nextDouble();
                        scanner.nextLine();
                        System.out.println('职称:');
                        String title2 = scanner.nextLine();
                        System.out.println('所属部门:');
                        String department2 = scanner.nextLine();
                        System.out.println('联系方式:');
                        String phoneNum2 = scanner.nextLine();
                        System.out.println('家庭住址:');
                        String homeAddress2 = scanner.nextLine();
                        Staff newStaff = new Staff(empNo3, password2, empName2, gender2, idCardNo2, age2, seniority2, wages2, title2, department2, phoneNum2, homeAddress2);
                        if (manager.updateStaffInfo(empNo3, newStaff)) {
                            System.out.println('员工信息更新成功!');
                        } else {
                            System.out.println('员工信息更新失败!');
                        }
                    }
                    break;
                case 4:
                    System.out.println('请输入要删除的员工工号:');
                    int empNo4 = scanner.nextInt();
                    scanner.nextLine();
                    if (manager.deleteStaff(empNo4)) {
                        System.out.println('员工删除成功!');
                    } else {
                        System.out.println('员工删除失败!');
                    }
                    break;
                case 5:
                    System.out.println('程序已退出!');
                    System.exit(0);
                default:
                    System.out.println('输入数字不正确,请重新输入!');
            }
        }
    }
}

运行结果

运行程序后,会提示输入管理员账号和密码,输入正确后,可以选择以下操作:

  • 新增员工
  • 查找员工
  • 更新员工信息
  • 删除员工
  • 退出

注意事项

  • 该示例代码仅供参考,实际应用中需要根据具体需求进行调整。
  • 可以使用数据库来存储员工信息,提高系统的可扩展性和数据安全性。
  • 可以添加更多功能,例如:
    • 员工登录系统
    • 员工修改密码
    • 员工查询工资单
    • 管理员管理权限
    • 系统日志记录等。
Java 员工管理系统:Staff 类和 StaffManager 类实现

原文地址: https://www.cveoy.top/t/topic/oHIs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录