Java员工信息管理系统(注释全)

package com.unit6.test;

public class Employee {
	
    //工号
    private String id;
    
    //姓名
    private String name;
    
    //性别
    private String sex;
    
    //出生日期
    private String birthday;
    
    //号码
    private String phone;
    
    
    //定义无参数的构造方法
    public Employee() {
    }
    
    //定义带参数的构造方法
    public Employee(String id, String name, String sex, String birthday, String phone) {
		this.id = id;//this代表使用Employee实例方法的当前对象,this.id就表示使用当前对象的变量id
		this.name = name;
		this.sex = sex;
		this.birthday = birthday;
		this.phone = phone;
	}

    
    //set和get方法操作private变量,增强安全性
  	public void setId(String id) {   //给对象的属性赋值
  		this.id = id;
  	}
  	public String getId() {   //取得对象的属性值
  		return id;
  	}

  	public void setName(String name) {
  		this.name = name;
  	}
  	public String getName() {
  		return name;
  	}

  	public void setSex(String sex) {
  		this.sex = sex;
  	}
  	public String getSex() {
  		return sex;
  	}

  	public void setBirthday(String birthday) {
  		this.birthday = birthday;
  	}
  	public String getBirthday() {
  		return birthday;
  	}

  	public void setPhone(String phone) {
  		this.phone = phone;
  	}
  	public String getPhone() {
  		return phone;
  	}

}

package com.unit6.test;

import java.util.ArrayList;
import java.util.Scanner;

public class EmployeeManager {
    /*
     * 1. 用输出语句完成主界面的编写
     * 2. 用Scanner实现键盘录入数据
     * 3. 用switch语句完成操作的选择
     * 4. 用循环完成再次回到主界面
     */
    public static void main(String[] args) {
        // 创建集合对象,用于存储员工数据
        ArrayList<Employee> array = new ArrayList<Employee>();

        // 用循环完成再次回到主界面
        while (true) {
            // 1. 用输出语句完成主界面的编写
        	System.out.println("*******欢迎进入员工管理系统*******");
			System.out.println("\t1.输出所有员工信息");
			System.out.println("\t2.添加员工信息");
			System.out.println("\t3.查询指定工号员工信息");
			System.out.println("\t4.修改员工信息");
			System.out.println("\t5.删除员工信息");
			System.out.println("\t6.退出");
			System.out.println("*****************************");
			System.out.println("请选择菜单功能:");


            // 2. 用Scanner实现键盘录入数据
            Scanner in = new Scanner(System.in);
            String choice = in.nextLine();//nextLine()返回Enter键之前的所有字符,可得到带空格的字符串;而next()得不到带空格的字符串,视字符串为分隔符
            // 3. 用switch语句完成操作的选择
            switch (choice) {
                case "1":
                	//查看所有员工
                    findAllStudent(array);
                    break;                    
                case "2":
                	// 添加员工
                    addEmployee(array);
                    break;                    
                case "3":
                	// 根据工号查看员工信息
                    findEmployeeById(array);
                    break;                    
                case "4":
                	// 修改员工
                    updataStudent(array);
                    break;                    
                case "5":
                	// 删除员工
                    deleteStudent(array);
                    break;               
                case "6":
                    System.out.println("谢谢使用本系统,再见!");
                    System.exit(0);
                default:
                    // 输入命令有误时,while循环实现返回重新输入
                    System.out.println("输入错误,请重新输入!");
            }
        }
    }

    
    
    
    
    // 1.定义一个方法,用于查看所有员工信息
    public static void findAllStudent(ArrayList<Employee> array) {
        
        if (array.size() == 0) {
            System.out.println("抱歉!没有员工记录,请先添加员工信息再查询");
            // 为了不让程序继续往下执行
            return;
        }
        System.out.println("工号\t\t姓名\t\t性别\t\t出生日期\t\t\t电话");

        // 将集合中数据取出按照对应格式显示员工信息
        for (int i = 0; i < array.size(); i++) {
            Employee e = array.get(i);
            System.out.println(e.getId() + "\t\t" + e.getName() + "\t\t" + e.getSex() + 
            					"\t\t" + e.getBirthday()+ "\t\t" + e.getPhone());
        }
    }


    
    
    
    
    // 2.定义一个方法,用于添加员工信息
    public static void addEmployee(ArrayList<Employee> array) {
        // 用键盘录入选择添加员工,显示提示信息,提示要输入何种信息
        Scanner in = new Scanner(System.in);

        // 为了让id在while循环外面也能被访问到,我们就把它定义在了循环外
        String id;

        // 为了让程序能够回到这里,我们使用循环使用
        while (true) {
            System.out.println("请输入工号:");
            id = in.nextLine();

            boolean flag = isUsed(array, id);
            if (flag) {
                System.out.println("你输入的工号已经被使用,请重新输入");
            } else {
                break;
            }
        }

        System.out.println("请输入员工姓名:");
        String name = in.nextLine();
        System.out.println("请输入员工性别:");
        String sex = in.nextLine();
        System.out.println("请输入员工出生日期:");
        String birthday = in.nextLine();
        System.out.println("请输入员工电话:");
        String phone = in.nextLine();
        

        // 创建员工对象,把键盘录入的数据赋值给员工对象的成员变量
        Employee e = new Employee();
        e.setId(id);//set赋值
        e.setName(name);
        e.setSex(sex);
        e.setBirthday(birthday);
        e.setPhone(phone);

        // 将员工对象添加到集合中保存
        array.add(e);

        // 给出添加成功提示
        System.out.println("添加员工成功");
    }

    // 定义一个方法,判断工号是否被占用
    public static boolean isUsed(ArrayList<Employee> array, String id) {
        // 如果与集合中的某一个员工工号相同,返回true 如果都不相同,返回false
        boolean flag = false;
        for (int i = 0; i < array.size(); i++) {
            Employee e = array.get(i);
            if (e.getId().equals(id)) {
                flag = true;
                break;
            }
        }
        return flag;
    }

    
    
    
    // 3.定义一个方法,用于根据员工工号查看员工信息
    public static void findEmployeeById(ArrayList<Employee> array) {
        // 用键盘录入选择添加员工,显示提示信息
        Scanner in = new Scanner(System.in);

        // 输入员工工号
        System.out.println("请输入员工工号:");
        String id = in.nextLine();

        // 在根据员工工号查询前,对工号是否存在进行判断
        // 如果不存在,显示不存在提示信息
        // 如果存在,输出员工信息
        int index = -1;
        Employee e = null;

        // 遍历集合将对应员工对象从集合中拿出
        for (int i = 0; i < array.size(); i++) {
            e = array.get(i);
            if (e.getId().equals(id)) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            System.out.println("该"+id+"的工号不存在!");
        } else {
            System.out.println("工号"+"\t\t"+"姓名"+"\t\t"+"性别"+"\t\t"+"出生日期"+"\t\t\t"+"电话");

            // 将集合中数据取出按照对应格式显示员工信息
            System.out.println(e.getId() + "\t\t" + e.getName() + "\t\t" + e.getSex() + 
            					"\t\t" + e.getBirthday()+ "\t\t" + e.getPhone());
        }
    }


    
    
    
    // 4.定义一个方法,用于修改员工信息
    public static void updataStudent(ArrayList<Employee> array) {
        // 键盘录入要修改的员工工号,显示提示信息
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要修改的员工工号:");
        String id = in.nextLine();

        // 在修改员工操作前,对工号是否存在进行判断
        // 如果不存在,显示提示信息
        // 如果存在,执行修改操作
        int index = -1;

        // 遍历集合修改对应的员工信息
        for (int i = 0; i < array.size(); i++) {
            Employee e = array.get(i);
            if (e.getId().equals(id)) {
                index = i;
                break;
            }
        }

        if (index == -1) {
            System.out.println("该工号不存在,请重新输入");
        } else {
            for (int j = 0; j < array.size(); j++) {
                Employee student = array.get(j);
                if (student.getId().equals(id)) {
                    // 键盘录入要修改的员工信息
                    System.out.println("请输入员工的新姓名:");
                    String name = in.nextLine();
                    System.out.println("请输入员工的新性别:");
                    String sex = in.nextLine();
                    System.out.println("请输入员工的新出生日期:");
                    String birthday = in.nextLine();
                    System.out.println("请输入员工的新电话:");
                    String phone = in.nextLine();

                    // 创建员工对象,set进行赋值
                    Employee e = new Employee();
                    e.setId(id);
                    e.setName(name);
                    e.setSex(sex);
                    e.setBirthday(birthday);
                    e.setPhone(phone);
                    array.set(j, e);

                    // 给出修改成功提示
                    System.out.println("修改员工成功");
                    break;
                }
            }
        }
    }    

    
    
    
    
    // 5.定义一个方法,用于删除员工信息
    public static void deleteStudent(ArrayList<Employee> array) {
        // 键盘录入要删除的员工工号,显示提示信息
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要删除的员工工号:");
        String id = in.nextLine();

        // 在删除员工操作前,对工号是否存在进行判断
        // 如果不存在,显示提示信息
        // 如果存在,执行删除操作
        int index = -1;

        // 遍历集合将对应员工对象从集合中删除
        for (int i = 0; i < array.size(); i++) {
            Employee e = array.get(i);
            if (e.getId().equals(id)) {
                index = i;
                break;
            }
        }

        if (index == -1) {
            System.out.println("该"+id+"的工号不存在!");
        } else {
            array.remove(index);
            System.out.println("删除员工成功!");
        }
    }
}


 

  • 16
    点赞
  • 190
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值