Java 员工管理系统:Staff 类和 StaffManager 类实现
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('输入数字不正确,请重新输入!');
}
}
}
}
运行结果
运行程序后,会提示输入管理员账号和密码,输入正确后,可以选择以下操作:
- 新增员工
- 查找员工
- 更新员工信息
- 删除员工
- 退出
注意事项
- 该示例代码仅供参考,实际应用中需要根据具体需求进行调整。
- 可以使用数据库来存储员工信息,提高系统的可扩展性和数据安全性。
- 可以添加更多功能,例如:
- 员工登录系统
- 员工修改密码
- 员工查询工资单
- 管理员管理权限
- 系统日志记录等。
原文地址: https://www.cveoy.top/t/topic/oHIs 著作权归作者所有。请勿转载和采集!