Java简易人员管理系统

Java简易人员管理系统

1.人员管理系统

  1. 输入用户名admin123,密码123456,可登录系统;

  2. 登录成功后展示菜单

    1.新增用户

    2.更新用户

    3.删除用户

    4.查询用户

  3. 输入1则新增用户,填写用户信息,包括工号、姓名、性别、年龄信息;

  4. 更新用户信息,输入新的用户信息,覆盖原来的用户信息;

  5. 删除用户,输入工号后根据工号删除用户信息;

  6. 查询用户,输入工号查询人员信息,输入*则,查询所有用户信息;

  7. 选择0,退出系统,退出整个系统。

代码结构:

在这里插入图片描述

代码:

InformationService.java

package code;

import java.util.List;


public class InformationService {

    private List informationList = SysInfo.getList();

    // 获取信息列表
    public List getList() {
        return informationList;
    }

    // 按工号查找信息
    public Person getPersonByNum(final int num) {
        if (num < 1) {
            System.out.println("工号错误");
            return null;
        }

        for (int i = 0; i < informationList.size(); i++) {
            Person p = (Person) informationList.get(i);
            if (p.getNum() == num) {
                System.out.println("查找成功");
                return p;
            }
        }
        System.out.println("工号录入成功");
        return null;
    }

    //查看单一Person信息
    public void showAPerson(Person p)
    {
        System.out.println("工号\t\t姓名\t\t性别\t\t年龄");
        System.out.println(p.getNum()+ "\t\t" + p.getName() + "\t\t" + p.getSex() + "\t\t" + p.getAge());
    }
    //show all Person
    public void showPerson() {
        System.out.println("工号\t\t姓名\t\t性别\t\t年龄");

        List ps = getList();
        for (int i = 0; i < ps.size(); i++) {
            Person p = (Person) ps.get(i);
            System.out.println(p.getNum() + "\t\t" + p.getName() + "\t\t" + p.getSex() + "\t\t" + p.getAge());
        }
    }




    //检查对象是否存在
    public boolean CheckExitByNum(int num)
    {
        for(int i=0;i<informationList.size();i++)
        {
            Person p = (Person)informationList.get(i);
            if(p.getNum()==num)
                return true;
        }
        return false;
    }

    //save Person
    public void savePerson(Person p)
    {
        informationList.add(p);
    }


}

Person.java

package code;


public class Person {

    // Person属性
    private int num;
    private String name;
    private String sex;
    private int age;

    public Person(int num, String name, String sex, int age) {
        super();
        this.num = num;
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    // 对Perosn操作的方法
    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

SysInfo.java

package code;

import java.util.ArrayList;
import java.util.List;


public class SysInfo {

    private static List informationList = new ArrayList();

    // 获取 informationList
    public static List getList() {
        return informationList;
    }
}

SysMenu.java

package code;


public class SysMenu {

    public static final String[] USERNAME = { "1.员工信息管理", "2.退出" };


    public static final String[] MENU = { "1.员工信息管理", "2.退出" };
    public static final String[] OPERATION_MENU = { "1.新增用户", "2.更新用户", "3.删除用户", "4.查询用户", "0.退出系统" };

    public static void showMenu(String[] Menu) {
        for (int i = 0; i < Menu.length; i++)
            System.out.print(Menu[i] + "\t\t");
        System.out.println();
        System.out.println("---------------------------------------");
    }
}

SysRun.java

package code;

import javax.sound.midi.Soundbank;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;


public class SysRun {

    private List informationList = SysInfo.getList();
    private Scanner s = new Scanner(System.in);
    private InformationService is = new InformationService();

    // 系统运行类
    public static void main(String[] args) {
        SysRun sys = new SysRun();
        sys.sysRun();
    }

    public void sysRun() {
        System.out.println("欢迎进入人员管理系统");
        System.out.println("-----------------------");
        System.out.println("请输入用户名:");

        while(true){
            Scanner sc = new Scanner(System.in);

            String username = sc.next();
            if(username.equals("admin123")){
                System.out.println("请输入密码:");
                break;
            }else {
                System.out.println("用户名输入错误!请重新输入:");

            }


        }

        while(true) {
            Scanner sc = new Scanner(System.in);

            String password = sc.next();

            if(password.equals("123456")){
                break;
            }else {
                System.out.println("密码输入错误!请重新输入:");

            }
        }

        boolean isExit = false;
        do {
            System.out.println("----------操作选项-------------");
            SysMenu.showMenu(SysMenu.OPERATION_MENU);


            // 获取用户输入
            int operNum = getCorrONum(SysMenu.OPERATION_MENU);
            // 管理操作
            if(operNum == 0){
                isExit = true;
            }else {
                doOperationNum(operNum);
            }

        } while (!isExit);
        System.out.println("系统已退出");
    }



    // doOperationNum
    private void doOperationNum(int OperationNum) {
        // 增,查,修,删,返回
        switch (OperationNum) {
            case 1:
                addPerson();
                break;
            case 2:

                updatePerson();
                break;
            case 3:
                deletePerson();
                break;
            case 4:
                System.out.println("请输入要查看的人的信息工号:(输入*则查询所有用户信息)");
                String numstr = s.next();
                if (numstr.equals("*")) {
                    is.showPerson();
                } else {
                    int num = Integer.parseInt(numstr);
                    viewPerson(num);
                }
                break;

        }
    }

    // 删除Person
    private void deletePerson() {
        int num;
        // Person p;
        boolean isOk = false;
        System.out.println("请输入要删除信息的工号:");
        do {
            num = getVaildInt();
            isOk = is.CheckExitByNum(num);
            if (isOk == true) {
                System.out.println("工号信息查找成功。");
                informationList.remove(is.getPersonByNum(num));
            } else
                System.out.println("输入工号有误,请重新输入:");
        } while (!isOk);

    }

    // 修改Person
    public void updatePerson() {
        System.out.println("请输入要修改的信息工号:");
        boolean isOk = false;
        Person p;
        do {
            int num = getVaildInt();
            isOk = is.CheckExitByNum(num);
            if (isOk == true) {
                isOk = true;
                p = is.getPersonByNum(num);
                is.showAPerson(p);

                System.out.println("请输入名字:");
                String name = s.next();
                System.out.println("请输入性别(输入f或m):");
                String sex = getVaildSex();
                System.out.println("请输入年龄:");
                int age = getVaildInt();

                p.setName(name);
                p.setSex(sex);
                p.setAge(age);
                is.showPerson();
            } else
                System.out.println("输入要修改的工号有误,请重新输入:");
        } while (!isOk);

    }

    // 查看viewPerson()
    private void viewPerson(int num) {
        Person p;
        boolean isOk = false;
        do {

            boolean NumIsOk = is.CheckExitByNum(num);
            if (NumIsOk == true) {
                p = is.getPersonByNum(num);
                is.showAPerson(p);
                isOk = true;
            } else {
                System.out.println("无此工号的人的信息。");
                break;
            }
        } while (!isOk);

    }



    // addPerson()
    private void addPerson() {
        System.out.println("------------新增用户·---------------");


        boolean isOk = false;
        int num = 0;
        do {
            System.out.println("请输入工号(且不能与现有的工号重复)");
            num = s.nextInt();
            // 处理同名冲突
            if (is.getPersonByNum(num) == null) {
                isOk = true;
            } else {
                System.out.println("该人信息已存在,请重新输入!");
                s.nextInt();
            }
        } while (!isOk);
        // other information
        System.out.println("请输入其他信息...");

        System.out.println("name:");
        String name = null;
        name = s.next();

        System.out.println("sex:(输入f或m)");
        String sex = getVaildSex();
        System.out.println("age:");
        int age = getVaildInt();
        // save
        is.savePerson(new Person(num, name, sex, age));



    }

    /* 输入有效int */
    private int getVaildInt() {
        int num = 0;
        boolean isOk = false;
        do {
            try {
                num = s.nextInt();
                isOk = true;
            } catch (InputMismatchException e) {
                System.out.println("输入错误,请重新输入");
                s.next();
            }
        } while (!isOk);
        return num;
    }




    /* 输入有效sex信息 */
    private String getVaildSex() {
        String sex = null;
        boolean isOk = false;
        do {
            sex = s.next();
            if (sex.equals("f") || sex.equals("m"))
                isOk = true;
            else {
                System.out.println("sex输入有误,请重新输入");
            }
        } while (!isOk);
        return sex;
    }

    public int getCorrONum(String[] targetMenu) {
        System.out.println("请输入要选择的操作:");

        int inputNum = 0;
        boolean inputIsOk = false;
        do {
            try {
                inputNum = s.nextInt();
                System.out.println("输入的是" + inputNum);
                if (inputNum >= 0 && inputNum <= targetMenu.length) {
                    inputIsOk = true;
                } else {
                    System.out.println("输入错误,请重新输入!");
                }
            } catch (InputMismatchException e) {
                System.out.println("输入有误,请重新输入");
                // 若输入出现异常,Scanner要丢弃上一次的输入,否则 do-while会出现死循环
                s.next();
            }

        } while (!inputIsOk);
        return inputNum;
    }
}
  • 2
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值