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

结果展示

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

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
EQ使用说明书 配置源程序 发布与运行 (1)将文件夹拷贝到Eclipse的工作空间中。 (2)启动Eclipse。 (3)选择“文件”/“导入”菜单项,展开“常规”节点,选择“现有项目到工作空间中”子节点,如图1.1所示。 图1.1 “导入”窗口 (4)单击【下一步】按钮,单击【浏览】按钮,选择程序所在目录,然后勾选“将项目复制到工作空间中”复选框,如图1.2所示。 图1.2 “导入”窗口 (5)单击【完成】按钮。 (6)在项目上单击鼠标右键,依次选择“新建”/“文件夹”命令,新建一个“lib”文件夹,然后,将JavaDB数据库驱动文件“derby.jar”拷到该文件夹中。在该文件上单击鼠标右键,选择“构建路径”/“添加至构建路径”命令。 (7)在导入工程的src文件中,找到可执行的主类,在该类上单击鼠标右键,选择“运行方式”/“Java应用程序”项,如图1.3所示,完成程序配置 图1.3 选择菜单项 使用说明 系统介绍 企业内部通讯系统必须提供网络通讯功能、在通讯过程中禁止使用聊天表情、文件传送等功能,避免资料外泄,或因发送错误而导致上级资料的丢失以及其他损失。最重要的是必须适应任何操作系统,也就是实现跨平台技术,因为企业内部的工作需要,工作环境中使用了多个操作系统来完成不同的工作。另外,系统不需要使用服务器中转和记录通讯内容,可以独立完成通讯任务,排除职工对领导监视工作进度等逆反心理。 操作流程 使用本程序时,请按以下步骤操作: (1)单击“系统设置”选项卡,设置系统、IP搜索范围和服务器登录设置。如图1.4所示。 图1.4 系统设置 图1.5 用户搜索 (2)单击“系统操作”选项卡,搜索新的用户,如图1.5所示,如果你知道对方的IP地址,单击“用户列表”选项卡,选中其中的一个用户单击鼠标右键弹出快捷菜单,如图1.6所示。在该菜单中,可对用户信息进行添加、删除、用户更名、访问主机资源及公共程序等操作。 图1.5 系统操作 图1.6 使用信使发布消息 (3)如果对方未开启企业通信系统的情况下,向对方发送信史信息,如图1.6所示。 (4)本程序还支持群发功能,按住键盘上的键,选择需要发送信息的人,然后,单击鼠标右键选择“信使群发”命令,进行信使群发操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘客-追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值