Java项目:员工管理系统(运用数组、面向对象)

Java项目之员工管理系统:
项目要求:
1、利用数组进行员工的增删改查功能
2、运用面向对象的思想
Company 类(企业类):
package liuguangfa.com.employees; import java.util.Arrays; /** * 公司类 * @author Liu_Xiansheng */ public class Company { int count = 0; /** * 创建一个员工的姓名 */ public String name() { String oneEmployeesName = ""; String surnameHome = "赵钱孙李周吴郑王"; String nameHome = "就发咯哦昂古发挥弄法国反击号角厚爱爱放假咯哎积分啊覅哦啊好久哦的就发哦的积分哦啊回复"; int oneSurnameRondom = (int) ((surnameHome.length() - 1) * Math.random() + 1); char oneSurname = surnameHome.charAt(oneSurnameRondom); oneEmployeesName += oneSurname; for (int i = 0; i < 2; i++) { int oneNameRondom = (int) ((nameHome.length() - 1) * Math.random() + 1); char oneName = nameHome.charAt(oneNameRondom); oneEmployeesName += oneName; } return oneEmployeesName; } /** * 创建员工的性别 */ public String sex() { int oneSexRandom = (int) (Math.random() * 100); String oneEmployeesSex = oneSexRandom < 50 ? "男" : "女"; return oneEmployeesSex; } /** * 创建员工的年龄(年龄限制在20~50) */ public String age() { String oneEmployeesAge = ((int) (Math.random() * (50 - 20) + 20)) + ""; return oneEmployeesAge; } /** * 创建员工的工号(不能重复,后面加入的也不能用前面的,删除后的id也不能占用) 加载一次生成一个 初始化的时候必须从零开始,想办法把已经起过的编号储存起来 */ public String id() { String employeesId = "GF-"; employeesId += count; count++; return employeesId; } /** * 新增员工 */ public Employees[] addEmployees(Employees[] e, int x) { // 新建一个数组,数组的长度为传出来数组的长度加x,并且把数组原有的人员信息,一次储存在新数组中 Employees[] eNewEmployees = new Employees[e.length + x]; for (int i = 0; i < e.length + x; i++) { if (i < e.length) { eNewEmployees[i] = e[i]; // eNewEmployees[i].setName(e[i].getName()); // eNewEmployees[i].setAge(e[i].getAge()); // eNewEmployees[i].setId(e[i].getId()); // eNewEmployees[i].setSex(e[i].getSex()); } else { Employees employees = new Employees(name(), age(), sex(), id()); eNewEmployees[i] = employees; } } return eNewEmployees; } /** * 删除员工(通过姓名删除,通过id删除) */ public Employees[] deleteEmployees(Employees[] e, String s) { // 创建一个新数组,因为要删除一个,个数比传进来的数组要少一个 Employees[] employeesNew = new Employees[e.length - 1]; // 储存位置计数器 int count = 0; for (int i = 0; i < e.length; i++) { if (e[i].getId().substring(3).compareTo(s) != 0 && e[i].getName().compareTo(s) != 0) { employeesNew[count] = e[i]; count++; } } return employeesNew; } /** * 查询员工 是否能够根据传输的数据不同进行查询(不管输入的是id、姓名、年龄、性别都可以获取相关的人员) */ public void queryEmployees(Employees[] e, String x) { for (int i = 0; i < e.length; i++) { if (e[i].getName().compareTo(x) == 0 || e[i].getAge().compareTo(x) == 0 || e[i].getId().compareTo(x) == 0 || e[i].getSex().compareTo(x) == 0 || e[i].getId().substring(3).compareTo(x) == 0) { System.out.println(e[i].toString()); } } } /** * 修改员工 */ public Employees[] modify(Employees[] e, String one, String two, String three) { for (int i = 0; i < e.length; i++) { if (e[i].getId().compareTo(one) == 0 || e[i].getId().substring(3).compareTo(one) == 0 || e[i].getName().compareTo(one) == 0) { if (two.equals("1")) { e[i].setName(three); } else if (two.equals("2")) { e[i].setId(three); } else if (two.equals("3")) { e[i].setAge(three); } else if (two.equals("4")) { e[i].setSex(three); } } } return e; } }
Employees 类(员工类):
package liuguangfa.com.employees; /** * 员工类 * @author Liu_Xiansheng */ public class Employees { private String name;// 姓名 private String age;// 年龄 private String sex;// 性别 private String id;// 工号 public Employees(String name,String age,String sex,String id) { this.setName(name); this.setAge(age); this.setSex(sex); this.setId(id); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getId() { return id; } public void setId(String id) { this.id = id; } @Override public String toString() { return "Employees [name=" + name + ", age=" + age + ", sex=" + sex + ", id=" + id + "]"; } }
main方法类:
package liuguangfa.com.employees; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Scanner; /** * 使用数组+面向对象,实现一个员工管理系统。 实现员工的增加、修改、删除和查询功能。 控制台输入、输出。 * * @author Liu_Xiansheng */ public class Test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("欢迎来到员工体验系统?"); Company company = new Company(); // 创建一个空数组 Employees[] employees = new Employees[0]; String ai = "0";// 判断游戏开始 do { if (ai.compareTo("0") == 0) { System.out.println("请输入你要进行的操作:\n1、新增员工\n2、删除员工\n3、查询员工\n4、查看所有在职员工\n5、修改员工\n6、结束游戏"); ai = scanner.next(); } if (ai.compareTo("1") == 0) { System.out.println("请输入你创建员工的数量"); int count = scanner.nextInt(); employees = company.addEmployees(employees, count); // System.out.println(Arrays.toString(employees)); ai = "0"; } // 有问题 if (ai.compareTo("2") == 0) { System.out.println("请输出开除员工的名字(或id)都可以)?"); String str = scanner.next(); employees = company.deleteEmployees(employees, str); // System.out.println(Arrays.toString(employees)); System.out.println("删除员工" + str + "成功"); ai = "0"; } if (ai.compareTo("3") == 0) { System.out.println("请输入你要查询员工的名字(或id(可带GF-,可不带GF-)、或性别、或年龄)"); String str = scanner.next(); company.queryEmployees(employees, str); ai = "0"; } if (ai.compareTo("4") == 0) { System.out.println(Arrays.toString(employees)); ai = "0"; } if (ai.compareTo("5") == 0) { System.out.println("请你输入要修改的员工的名字或id"); String strOne = scanner.next(); System.out.println("请确定你要修改的员工的信息1、姓名2、工号3、年龄4、性别"); String strTwo = scanner.next(); System.out.println("请输入你要修改成?"); String strThree = scanner.next(); employees = company.modify(employees, strOne, strTwo, strThree); ai = "0"; } if (ai.compareTo("6") == 0) { System.out.println("请确认是否结束游戏?按0结束,按1继续"); int str = scanner.nextInt(); if (str == 0) { ai = "结束游戏"; } else { ai = "0"; } } } while (ai != "结束游戏"); } }
作者为:刘广法,网站地址:https://liuguangfa.com/