Java项目:员工管理系统(使用集合、用xml、文件去存储数据)

Java项目:员工管理系统(使用集合、用xml、文件去存储数据)
员工管理系统的第二版:使用集合进行管理系统,并且进行文件的存储和读取
更多员工系统版本:
员工管理器类:
package com.liuguangfa.employee.list; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; /** * 员工管理器 * * @author Liu_Xiansheng * */ public class EmployeeManager { int count = 0; private ArrayList<Employees> employees = new ArrayList<Employees>(); /** * 创建一个员工的姓名 */ 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 void addEmployee(int employeeCount) { List<Employees> list = new ArrayList<>(); for (int i = 0; i < employeeCount; i++) { Employees emp = new Employees(name(), age(), sex(), id()); list.add(emp); } employees.addAll(list); } /** * 增加一名员工 */ public void addOneEmployee(String name, String age, String sex) { Employees emp = new Employees(name, age, sex, id()); employees.add(emp); } /** * 删除员工 */ public void deteleEmployee(String deleteEmp) { List<Employees> list = new ArrayList<>(); for (int i = 0; i < employees.size(); i++) { if (employees.get(i).getName().equals(deleteEmp) || employees.get(i).getId().equals(deleteEmp) || employees.get(i).getId().substring(3).equals(deleteEmp)) { list.add(employees.get(i)); } } employees.removeAll(list); } /** * 修改员工的姓名 */ public void modifyName(String nameOld, String nameNew) { for (int i = 0; i < employees.size(); i++) { if (employees.get(i).getName().equals(nameOld)) { employees.get(i).setName(nameNew); } } } /** * 修改员工的年龄 */ public void modifyAge(String nameOld, String ageNew) { for (int i = 0; i < employees.size(); i++) { if (employees.get(i).getName().equals(nameOld)) { employees.get(i).setAge(ageNew); } } } /** * 修改员工性别 */ public void modifySex(String nameOld) { for (int i = 0; i < employees.size(); i++) { if (employees.get(i).getName().equals(nameOld) && employees.get(i).getSex().equals("男")) { employees.get(i).setSex("女"); } else if (employees.get(i).getName().equals(nameOld) && employees.get(i).getSex().equals("女")) { employees.get(i).setSex("男"); } } } /** * 全部查询员工 */ public void queryEmployee() { for (int i = 0; i < employees.size(); i++) { Employees emp = employees.get(i); System.out.println("第" + (i + 1) + " 名员工是" + emp.toString()); } } /** * 按姓查询员工 */ public Employees queryNameEmployee(String queryEmp) { for (int i = 0; i < employees.size(); i++) { if (employees.get(i).getName().equals(queryEmp)) { return employees.get(i); } } return null; } /** * 按id进行查询 */ public Employees queryIdEmployee(String id) { for (int i = 0; i < employees.size(); i++) { if (employees.get(i).getId().equals(id) || employees.get(i).getId().substring(3).equals(id)) { return employees.get(i); } } return null; } /** * 将文件进行对象进行保存 */ public void objFile() { File file = new File("d:/employee"); ObjectOutputStream osObject = null; try { // 判断输出流的文件是否存在 if (!file.canExecute()) { file.createNewFile(); } OutputStream os = new FileOutputStream(file); osObject = new ObjectOutputStream(os); // 输出的过程 for (int i = 0; i < employees.size(); i++) { osObject.writeObject(employees.get(i)); // if (i == (employees.size() - 1)) { // osObject.writeObject(employees.get(i)); // osObject.writeObject(null); // } else { // osObject.writeObject(employees.get(i)); // } } osObject.writeObject(null); osObject.flush(); } catch ( FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { osObject.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 将文件以xml的格式进行保存 */ public void xmlFile() { // 创建文档 Document doc = DocumentHelper.createDocument(); // 创建根节点 Element employeeManager = doc.addElement("EmployeeManager"); for (int i = 0; i < employees.size(); i++) { // 创建子节点 Element element = employeeManager.addElement("employee"); // 在节点赋值属性 element.addAttribute("id", employees.get(i).getId()); // 创建子节点下节点 Element name = element.addElement("name"); name.setText(employees.get(i).getName()); Element age = element.addElement("age"); age.setText(employees.get(i).getAge()); Element sex = element.addElement("sex"); sex.setText(employees.get(i).getSex()); } // 生成xml格式 OutputFormat of = OutputFormat.createPrettyPrint(); // 生成文件 File file = new File("d:/employees.xml"); // 判断文件是否存在,如果存在删除原文件 if (file.exists()) { file.delete(); } try { // 创建xml文件编辑器 XMLWriter writer = new XMLWriter(new FileOutputStream(file), of); writer.write(doc); } catch (UnsupportedEncodingException | FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 将对象文件读取出来 */ public void readerObjectFile() { File file = new File("d:/employee"); // 判断文件是否存在 if (file.canExecute()) { } // 将文件读取到系统中 ObjectInputStream isObject = null; try { InputStream is = new FileInputStream(file); isObject = new ObjectInputStream(is); // 读的过程 // for ( ; ; ) { // Object object = linesObjIn.readObject(); // if (object != null) { // objs2.add((Obj) object); // }else { // break; // } // } // while(true) { // Object obj = isObject.readObject(); // if(obj != null) { // employees.add((Employees)obj); // }else { // break; // } // } Object obj = null; while ((obj = isObject.readObject()) != null) { employees.add((Employees) obj); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { try { isObject.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 将xml 读取出来 */ public void xmlReader() { File file = new File("d:/employees.xml"); // 判断文件是否存在 if (file.canExecute()) { } // 创建xml的解析对象 SAXReader reader = new SAXReader(); Document doc = null; try { // 把文件解析成xml doc = reader.read(file); // 获取xml的跟节点 Element element = doc.getRootElement(); // 获取根节点中【所有的节点】 List<Element> elements = element.elements(); for (Element e : elements) { // 获取指定节点 Element name = e.element("name"); Element age = e.element("age"); Element sex = e.element("sex"); Employees emp = new Employees(name.getText(), age.getText(), sex.getText(), e.attributeValue("id")); employees.add(emp); } } catch (DocumentException e) { e.printStackTrace(); } finally { } } }
系统视图类:
package com.liuguangfa.employee.list; import java.util.Scanner; /** * 系统视图 * * @author Liu_Xiansheng * */ public class SystemView { Scanner scanner = new Scanner(System.in); EmployeeManager employeeManager; public SystemView(EmployeeManager employeeManager) { this.employeeManager = employeeManager; } /** * 开始 */ public void start() { System.out.println("欢迎来到员工管理系统"); String ai = "0"; do { if (ai.equals("0")) { // 加载之前的数据 loading(); ai = "10"; } if (ai.equals("1")) { addEmployee(); ai = "10"; } if (ai.equals("2")) { deleteEmployee(); ai = "10"; } if (ai.equals("3")) { modify(); ai = "10"; } if (ai.equals("4")) { query(); ai = "10"; } if (ai.equals("5")) { exitApp(); break; } else { System.out.println("请输入你要进行的操作1.增加员工2.开除员工3.修改员工信息4.查询员工5.退出系统"); ai = scanner.next(); } } while (true); } /** * 增加员工 */ public void addEmployee() { System.out.println("请你选择增加员工的数量?1.招募多名员工2.招募指定员工"); int count = scanner.nextInt(); if (count == 1) { System.out.println("请你输入招募多名员工的数量"); int addEmployeeCount = scanner.nextInt(); employeeManager.addEmployee(addEmployeeCount); System.out.println("你增加 " + addEmployeeCount + " 名员工成功"); } else if (count == 2) { System.out.println("输入你要增加员工的姓名"); String name = scanner.next(); System.out.println("输入你要增加员工的年龄"); String age = scanner.next(); System.out.println("输入你要增加员工的性别"); String sex = scanner.next(); employeeManager.addOneEmployee(name, age, sex); System.out.println("增加员工 " + name + "成功"); } } /** * 删除员工 */ public void deleteEmployee() { System.out.println("请输入员工的姓名或工号"); String deleteEmp = scanner.next(); employeeManager.deteleEmployee(deleteEmp); System.out.println("删除员工" + deleteEmp + "成功"); } /** * 修改员工 */ public void modify() { System.out.println("请输入你要修改的人的姓名"); String nameOld = scanner.next(); System.out.println("请选择你要修改的类型1.修改姓名2.修改年龄3.修改性别"); int e = scanner.nextInt(); if (e == 1) { System.out.println("请输入你要把姓名修改为?"); String nameNew = scanner.next(); employeeManager.modifyName(nameOld, nameNew); System.out.println("姓名修改成功"); } else if (e == 2) { System.out.println("请输入你要把年龄修改为?"); String ageNew = scanner.next(); employeeManager.modifyAge(nameOld, ageNew); System.out.println("年龄修改成功"); } else if (e == 3) { employeeManager.modifySex(nameOld); System.out.println("性别修改成功"); } } /** * 查询员工 */ public void query() { System.out.println("1.全部查询2.按姓名查询3.按id查询"); int queryInt = scanner.nextInt(); if (queryInt == 1) { employeeManager.queryEmployee(); } if (queryInt == 2) { System.out.println("请输入查询员工的姓名?"); String queryEmployee = scanner.next(); Employees emp = employeeManager.queryNameEmployee(queryEmployee); System.out.println("查询员工的信息是:" + emp); } if (queryInt == 3) { System.out.println("请输入查询员工的id?"); String queryEmployee = scanner.next(); Employees emp = employeeManager.queryIdEmployee(queryEmployee); System.out.println("查询员工的信息是:" + emp); } } /** * 退出系统 */ public void exitApp() { System.out.println("是否将文件进行保存?y/n"); String exit = scanner.next(); if (exit.toLowerCase().equals("y")) { System.out.println("选择将文件保存的格式1.按照对象进行保存2.xml文件"); int exitInt = scanner.nextInt(); if (exitInt == 1) { employeeManager.objFile(); } else if (exitInt == 2) { employeeManager.xmlFile(); } } else { System.out.println("欢迎使用员工管理系统"); } } /** * 加载之前的数据 */ public void loading() { System.out.println("是否加载之前的数据?y/n"); String loading = scanner.next(); if (loading.toLowerCase().equals("y")) { System.out.println("加载之前的对象文件还是xml文件1.对象2.xml"); int loadingCount = scanner.nextInt(); if (loadingCount == 1) { employeeManager.readerObjectFile(); } else if (loadingCount == 2) { employeeManager.xmlReader(); } } } }
程序入口界面:
package com.liuguangfa.employee.list; public class Application { public static void main(String[] args) { //创建员工管理对象 EmployeeManager meployeeManager =new EmployeeManager(); //创建系统视图 SystemView systemView =new SystemView(meployeeManager); //启动系统 systemView.start(); } }
员工类:
package com.liuguangfa.employee.list; import java.io.Serializable; /** * 员工类 */ public class Employees implements Serializable { 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 + "]"; } }
作者:域名博客,网站地址:https://liuguangfa.com/,转载注明出处!