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();
    }

結果展示

在這裏插入圖片描述
源碼整合源碼鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章