java基础练习-员工管理系统

需求

键盘录入个员工信息(工号,姓名,年龄,居住地)存入集合。然后遍历集合把每一个员工信息存入文本文件,实现基本的功能,增删改查,保存到文件,从文件读取。

基本结构

  1. 开发工具
  2. 创建员工
  3. 查询员工
  4. 添加员工
  5. 删除员工
  6. 修改员工
  7. 退出系统

开发工具

IntelliJ IDEA 2019

创建员工类

员工有工号,姓名,年龄,地址等。提供一些get和set方法,对外访问。

public class Employee {
    //员工工号
    private String jobNumber;
    //员工姓名
    private String name;
    //员工年龄
    private int age;
    //员工地址
    private String address;
    public Employee() {
    }
    public Employee(String jobNumber, String name, int age, String address) {
        this.jobNumber = jobNumber;
        this.name = name;
        this.age = age;
        this.address = address;
    }
    public String getJobNumber() {
        return jobNumber;
    }
    public void setJobNumber(String jobNumber) {
        this.jobNumber = jobNumber;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

管理界面

欢迎界面,选择所需功能。实现对应的方法。

   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.退出系统");
            System.out.println("请输入您的选择");
            Scanner sc=new Scanner(System.in);
            String select=sc.nextLine();
            switch (select) {
                case "1":
                    //查询所有员工
                    findAllEmployee(fileName);
                    break;
                case "2":
                    addEmployee(fileName);
                    break;
                case "3":
                    deleteEmployee(fileName);
                    break;
                case "4":
                    updateEmployee(fileName);
                    break;
                case "5":
                default:
                    System.out.println("欢迎下次使用");
                    System.exit(0);
                    break;
            }
        }

添加员工

添加员工信息,创建集合,添加到文件。

    public static void addEmployee(String fileName) throws IOException {
        //创建集合对象
        ArrayList<Employee> arrayList=new ArrayList<>();
        //从文件中将数据读取
        readData(fileName,arrayList);
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);
        String jobNumber;
        while (true){
            boolean flag=false;
            System.out.println("请您输入员工工号");
            jobNumber=sc.next();
            for (int i = 0; i < arrayList.size(); i++) {
                Employee employee=arrayList.get(i);
                if(jobNumber.equals(employee.getJobNumber())){
                    flag=true;
                    break;
                }
            }
            if(flag){
                System.out.println("对不起!您输入的工号已经被占用了");
            }else{
                break;
            }
        }
        System.out.println("请您输入员工姓名");
        String name=sc.next();
        System.out.println("请您输入员工年龄");
        int age=sc.nextInt();
        System.out.println("请您输入员工居住地");
        String address=sc.next();
        //创建员工
        Employee e=new Employee(jobNumber,name,age,address);
        arrayList.add(e);
        //把集合写到文件中
        wirterData(fileName,arrayList);
        //提示
        System.out.println("添加成功!");
    }

删除员工

删除员工信息,文件读取,遍历,判断删除。

    public static void deleteEmployee(String fileName) throws IOException {
        //创建集合对象
        ArrayList<Employee> arrayList=new ArrayList<>();
        //从文件中将数据读取
        readData(fileName,arrayList);
        int index=-1;
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);
        System.out.println("请您输入要删除的员工工号");
        String jobNumber = sc.next();
        //要判断这个员工是否存在
        for (int i = 0; i < arrayList.size(); i++) {
            Employee e=arrayList.get(i);
            if(jobNumber.equals(e.getJobNumber())){
                index=i;
                break;
            }
        }
        if(index==-1){
            System.out.println("对不起!您要删除工号不存在,请您重新选择您的操作!!");
        }else{
            arrayList.remove(index);
            //把集合写出到文件中
            wirterData(fileName,arrayList);
            //提示
            System.out.println("删除成功!");
        }
    }

修改员工

修改员工信息,文件读取,遍历判断,更新信息。

    public static void updateEmployee(String fileName) throws IOException {
        //创建集合对象
        ArrayList<Employee> arrayList=new ArrayList<>();
        //从文件中将数据读取
        readData(fileName,arrayList);
        int index=-1;
        //创建键盘录入对象
        Scanner sc=new Scanner(System.in);
        System.out.println("请您输入要修改的员工工号");
        String jobNumber = sc.next();
        //要判断这个员工是否存在
        for (int i = 0; i < arrayList.size(); i++) {
            Employee e=arrayList.get(i);
            if(jobNumber.equals(e.getJobNumber())){
                index=i;
                break;
            }
        }
        if(index==-1){
            System.out.println("对不起!您要修改的工号不存在,请您重新选择您的操作!!");
        }else{
            System.out.println("请您输入新员工姓名");
            String name=sc.next();
            System.out.println("请您输入新员工年龄");
            int age=sc.nextInt();
            System.out.println("请您输入新员工居住地");
            String address=sc.next();
            //创建新的员工对象
            Employee e=new Employee(jobNumber,name,age,address);
            //完成修改
            arrayList.set(index,e);
            //把集合写出到文件
            wirterData(fileName,arrayList);
            //提示
            System.out.println("员工信息修改成功!");
        }
    }

查询员工

查询员工信息,文件读取,遍历。

    public static void findAllEmployee(String fileName) throws IOException {
        //创建集合对象
        ArrayList<Employee> arrayList=new ArrayList<>();
        //从文件中将数据读取
        readData(fileName,arrayList);
        //容器当中没有员工信息
        if(arrayList.size()==0){
            System.out.println("抱歉,当前没员工信息");
            //结束方法
            return;
        }
        System.out.println("工号"+" "+"姓名"+" "+"年龄"+" "+"居住地");
        for (int i = 0; i < arrayList.size(); i++) {
            Employee e=arrayList.get(i);
            System.out.println(e.getJobNumber()+" "+e.getName()+"  "+e.getAge()+"   "+e.getAddress());
        }
    }

文件读取

从文件读取

    public static void readData(String filNname,ArrayList<Employee> arrayList) throws IOException {
        BufferedReader br=new BufferedReader(new FileReader(filNname));
        String line;
        while ((line=br.readLine())!=null) {
            if(" ".equals(line)||line.length()==0)
            {
                return;
            }
            String[] strings=line.split(",");
            int age=Integer.parseInt(strings[2]);
            Employee e=new Employee(strings[0],strings[1],age,strings[3]);
            arrayList.add(e);
        }
        br.close();
    }

文件写入

把集合中的数据写到文件中

    public static void wirterData(String fileName,ArrayList<Employee> arrayList) throws IOException {
        //创建输出流对象
        BufferedWriter bw=new BufferedWriter(new FileWriter(fileName));
        //遍历集合
        for(int i=0;i<arrayList.size();i++){
            Employee e=arrayList.get(i);
            StringBuilder sb=new StringBuilder();
            sb.append(e.getJobNumber()).append(",").append(e.getName()).append(",").append(e.getAge()).append(",").append(e.getAddress());
            String string=sb.toString();
            bw.write(string);
            bw.newLine();
        }
        bw.close();
    }

结果展示

在这里插入图片描述
源码整合源码链接

猜你喜欢

转载自blog.csdn.net/qq_45893999/article/details/106863780