使用集合和I/O完成员工信息管理系统 (代码部分)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40969422/article/details/80303476
package cn.personnel;
public class Employee {
	private String id;//员工编号
	private String name;//员工姓名
	private String job;//员工职务
	private String sex;//员工性别
	private String age;//员工年龄
	private String department;//部门
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getDepartment() {
		return department;
	}
	public void setDepartment(String department) {
		this.department = department;
	}
}

package cn.personnel;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class EmployeeManager {
	private File file = new File("D:/empinfo.txt");
	private Scanner input=new Scanner(System.in);
	@SuppressWarnings("unused")
	private Employee manger = new Employee();
	private List<Employee> personnelInfo = new ArrayList<Employee>();
	public void employeeManger(){
		int chose;
		pessonInfo();
		showDish();
		do {
			Dish();
			System.out.print("请选择:");
			chose=input.nextInt();
			switch (chose) {
			case 0:
				shouInfo();
				break;
			case 1:
				addEmps();
				break;
			case 2:
				seeAboutDepartment();
				break;
			case 3:
				seeAboutId();
				break;
			case 4:
				saveInfoExit();
				break;
			}
			System.out.println();
		} while (chose!=4);
	}
	/**
	 * 根据部门
	 * 查看员工	此部门人数
	 * 部门编号	人员姓名
	 */
	private void seeAboutDepartment() {
		System.out.println("查找员工信息--->>>");
		System.out.print("请输入要查找的部门名称:");
		String department=input.next();
		int departmentCount=sumDepartment(department);
		if(departmentCount!=0){
			System.out.println("共找到:"+departmentCount);
			for (Employee employee : personnelInfo) {
				if(department.equals(employee.getDepartment())){
					System.out.println(employee.getId()+"\t"+employee.getName());
				}
			}
		}else{
			System.out.println("没有此部门!");
		}
		
	}
	
	public int sumDepartment(String department){
		int count=0;
		for (Employee employee : personnelInfo) {
			if(department.equals(employee.getDepartment())){
				count++;
			}
		}
		return count;
	}
	/**
	 * 根据员工编号查看员工信息
	 */
	private void seeAboutId() {
		System.out.println("查看员工详情--->>>");
		System.out.print("请输入要查看的员工编号:");
		String id=input.next();
		boolean flsg=aboutId(id);
		if(flsg){
			for (Employee emp : personnelInfo) {
				if(id.equals(emp.getId())){
					System.out.println(emp.getId()+"\t"+emp.getName()+"\t"+emp.getJob()+"\t"+emp.getAge()+"\t"+emp.getSex()+"\t"+emp.getDepartment());
				}
			}
		}else{
			System.out.println("无此员工!");
		}
	}
	private boolean aboutId(String id){
		boolean flsg=false;
		for (Employee employee : personnelInfo) {
			if(id.equals(employee.getId())){
				flsg=true;
				break;
			}
		}
		return flsg;
	}
	/**
	 * 将本地数据加载到集合中
	 * @return
	 */
	private void pessonInfo() {
		Reader reader = null;
		BufferedReader br = null;
		if(file.length()>0){
			try {
				reader = new FileReader(file);
				br = new BufferedReader(reader);
				String readerLine = br.readLine();
				while (readerLine != null) {
					// 绑定集合数据
					String str = readerLine;
					String[] splits = str.split(" ");
					Employee emp = new Employee();
					emp.setId(splits[0]);
					emp.setName(splits[1]);
					emp.setJob(splits[2]);
					emp.setSex(splits[3]);
					emp.setAge(splits[4]);
					emp.setDepartment(splits[5]);
					personnelInfo.add(emp);
					readerLine = br.readLine();
				}
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				try {
					br.close();
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	/**
	 * 显示员工信息
	 */
	private void shouInfo(){
		if(emps()!=null){		
		System.out.println("编号\t姓名\t职务\t\t\t性别\t\t年龄\t\t部门");
		for (Employee employee : personnelInfo) {
			System.out.println(employee.getId()+"\t"+employee.getName()+
					"\t"+employee.getJob()+"\t\t\t"+employee.getSex()+"\t\t"+
					employee.getAge()+"\t\t"+employee.getDepartment());}

		}else{
			System.out.println("没有员工信息!");
		}
	}
	/**
	 * 返回是否有员工信息
	 * @return
	 */
	private Employee emps(){
		Employee emp=null;
		for (Employee employee : personnelInfo) {
			if(employee!=null){
				emp=employee;
				break;
			}
		}
		return emp;
	}
	/**
	 * 加载员工信息
	 */
	private void showDish(){
		Employee employee=emps();
		if(employee!=null){
			System.out.println("正在加载已员工信息......");
			System.out.println("加载完成!进入系统,请选择以下菜单进行操作:\n");
		}else{
			System.out.println("无历史数据,直接进入系统,请选择以下菜单进行操作:\n");
		}
	}
	/**
	 * 菜单信息
	 */
	private void Dish(){
		System.out.println("0.显示所有员工信息");
		System.out.println("1.添加新员工");
		System.out.println("2.根据部门查询员工");
		System.out.println("3.根据编号查询员工");
		System.out.println("4.退出系统");
	}

	/**
	 * 退出系统并保存所有员工资料
	 */
	private void saveInfoExit() {
		if(emps()!=null){
		System.out.println("准备保存员工信息......");	
		Writer writer=null;
		BufferedWriter bw=null;
		StringBuffer strb=new StringBuffer();
		for (Employee employee : personnelInfo) {
			String empInfo=employee.getId()+" "+employee.getName()+" "+employee.getJob()+" "+
			employee.getSex()+" "+employee.getAge()+" "+employee.getDepartment()+"\n";
			strb.append(empInfo);
			}
			String empinfo=strb.toString();
			try {
				writer=new FileWriter(file);
				bw=new BufferedWriter(writer);
				bw.write(empinfo);
				//bw.newLine();
			} catch (IOException e) {
				e.printStackTrace();
			}finally{
				try {
					bw.close();
					writer.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		System.out.println("保存已有员工信息完成!");
		}else{
			System.out.println("没有员工信息,直接退出系统!");
		}
	}
	/**
	 * 添加新员工方法
	 */
	private void addEmps() {
		System.out.println("添加员工--->>>");
		System.out.println("正在分配员工编号...");
		String id=String.valueOf(addEmpsId());
		System.out.println("新员工编号为:"+id+",请按照提示录入其它信息:");
		System.out.print("姓名:");
		String name=input.next();
		System.out.print("职务:");
		String job=input.next();
		System.out.print("性别:");
		String sex=input.next();
		System.out.print("年龄:");
		String age=input.next();
		System.out.print("部门:");
		String department=input.next();
		Employee emp=new Employee();
		emp.setId(id);
		emp.setName(name);
		emp.setJob(job);
		emp.setSex(sex);
		emp.setAge(age);
		emp.setDepartment(department);
		personnelInfo.add(emp);
		System.out.println("添加成功!");
		
	}
	/**
	 * 添加新员工编号
	 */
	private int addEmpsId(){
		int psId=0;
		if(emps()==null){
			psId=1000;
		}else{
			for (Employee employee : personnelInfo) {
				if(psId<Integer.parseInt(employee.getId())){
					psId=Integer.parseInt(employee.getId());
				}
			}
		}
		return psId+1;
	}
}

package cn.permanger;

import cn.personnel.EmployeeManager;

public class TestEmployeeManager {
	public static void main(String[] args) {
		EmployeeManager show=new EmployeeManager();
		show.employeeManger();
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_40969422/article/details/80303476