java用户管理系统(控制台)--数组

目录

管理系统类

管理员类

用户类


管理系统类

public class Management {

    public static void main(String[] args) {
        Admin admin = new Admin();
        Scanner sc = new Scanner(System.in);
        int i;
        do {
            System.out.println("---------欢迎进入2105用户管理系统---------\n" +
                    "1.根据id查询用户信息\n" +
                    "2.根据姓名查询用户信息\n" +
                    "3.展示所有用户信息\n" +
                    "4.添加用户信息\n" +
                    "5.修改用户信息\n" +
                    "6.删除用户信息\n" +
                    "7.退出");
            System.out.println("请输入需要的操作:");
            i = sc.nextInt();
            switch (i){
                case 1:
                    //1.根据id查询用户信息
                    System.out.println("请输入id:");
                    int id = sc.nextInt();
                    System.out.println(admin.getUserById(id));//通过创建的admin对象调用Admin类里通过id查询信息的方法,传入id
                    break;
                case 2:
                    //2.根据姓名查询用户信息
                    System.out.println("请输入姓名:");
                    String name = sc.next();
                    //通过创建的admin对象调用Admin类里通过姓名查询信息的方法,传入姓名
                    System.out.println(admin.getUserByName(name));
                    break;
                case 3:
                    //3.展示所有用户信息
                    admin.findAll();//调用遍历数组方法打印对象数组
                    break;
                case 4:
                    System.out.println("请输入要添加的姓名:");
                    String name1 = sc.next();
                    while (admin.getUserByName(name1) != null) {//判断添加的姓名是否不为空,不为空说明已存在
                        System.out.println("姓名已存在,请重新输入");
                        name1 = sc.next();//已存在,重写输入
                    }
                    System.out.println("请输入密码");
                    String password = sc.next();//将输入的东西赋值给password
                    System.out.println("请输入年龄");
                    int age = sc.nextInt();//将输入的东西赋值给age
                    System.out.println("请输入性别");
                    char sex = sc.next().charAt(0);//将输入的东西赋值给sex
                    User user = new User(name1,password,age,sex);//将上面的输入的变量存入对象
                    admin.addUser(user);//调用添加方法将对象存入数组
                    break;
                    //5.修改用户信息
                case 5:
                    String name2;
                    System.out.println("请输入要修改的用户id");
                    int id1 = sc.nextInt();
                    //传入用户输入的id,调用id查询对象信息的方法判断找到的返回的对象是否为空
                    while (admin.getUserById(id1) == null) {
                        //通过admin对象调用Admin类的方法,如果调用回来的对象为空,说明id不存在,不可以修改
                        System.out.println("id不存在,请重新输入");
                        id1 = sc.nextInt();
                    }
                    System.out.println("请输入要添加的姓名:");
                    String name3 = sc.next();
                    //通过姓名去对象数组里查找,判断添加的姓名是否不为空,不为空说明已存在,为空则可以添加
                    while (admin.getUserByName(name3) != null) {
                        System.out.println("姓名已存在,请重新输入");
                        name3 = sc.next();
                    }
                    System.out.println("请输入要修改的密码:");
                    String password1 = sc.next();//将输入的东西赋值给password
                    System.out.println("请输入要修改的年龄:");
                    int age1 = sc.nextInt();//将输入的东西赋值给age
                    System.out.println("请输入要修改的性别:");
                    char sex1 = sc.next().charAt(0);//将输入的东西赋值给sex
                    admin.updateUser(id1,name3,password1,age1,sex1);//将上面的输入的变量赋值给对象
                    break;
                    //删除用户信息
                case 6:
                    System.out.println("请输入要删除的用户id");
                    int id2 = sc.nextInt();
                    //传入用户输入的id,调用id查询对象信息的方法判断找到的返回的对象是否为空
                    while (admin.getUserById(id2) == null) {
                        //通过admin对象调用Admin类的方法,如果调用回来的对象为空,说明id不存在,不可以删除
                        System.out.println("id不存在,请重新输入");
                        id2 = sc.nextInt();
                    }
                    admin.deleteUserById(id2);//将用户输入的id传入删除方法执行删除用户方法
                    break;
                case 7:
                    System.out.println("谢谢使用,欢迎下次使用");
                    break;
                default:
                    System.out.println("您输入的操作有误,请重新输入");
                    break;
            }
        }while (i != 7);//输入不为7重新输入
    }
}

管理员类

public class Admin {
    User[] users = new User[10];//创建存储对象的数组
    User user1 = new User("张三","1231",12,'男');//新建一个对象user1
    User user2 = new User("李四","123",18,'女');//新建一个对象user2
    User user3 = new User("王五","111",20,'男');//新建一个对象user3
    //Admin无参构造方法
    public Admin(){
        users[0] = user1;//将对象User1赋值给数组的第一个元素
        users[1] = user2;//将对象User2赋值给数组的第一个元素
        users[2] = user3;//将对象User3赋值给数组的第一个元素
    }
    //通过id查询用户数组
    public User getUserById(int id){//返回值为一个对象User传入一个id
        User user = null;//创建一个空对象user接收对象信息
        for (int i = 0; i < users.length; i++) {
            if(users[i] != null && users[i].getId() == id){//判断找到的对象不为空并对象的id跟用户输入的id一样
                user = users[i];//找到信息,将对象的信息赋值给本方法内新建的对象user
                break;//找到对象,赋值给空对象,结束操作
            }
        }
        return user;//返回一个对象,装有与用户输入的id相匹配的对象信息
    }
    //添加用户
    public void addUser(User user){
        for (int i = 0; i < users.length; i++) {
            if(users[i] == null){
                users[i] = user;
                System.out.println(users[i]);
                break;
            }
        }
    }
    //通过id删除用户
    public void deleteUserById(int id){//传入需要删除的id
        for (int i = 0; i < users.length; i++) {
            if(users[i] != null && users[i].getId() == id){//与之id匹配的用户是否为空
                users[i] = null;//将对象的属性赋值为空
                break;
            }
        }
        System.out.println("用户删除已成功");
    }
    //通过名字查询用户信息
    public User getUserByName(String name){//返回值为一个对象,传入一个姓名
        User user = null;//新建一个空对象用于接收找到的对象信息
        for (int i = 0; i < users.length; i++) {
            //判断,找到对象,相匹配的对象是否为空
            if(users[i] != null && users[i].getUserName().equals(name)){
                user = users[i];//将找到的对象的信息赋值给空对象存储
                break;//找到并赋值给新对象后即跳出循环
            }
        }
        return user;//返回一个对象
    }
    //打印所有用户
    public void findAll(){
        for (int i = 0; i < users.length; i++) {//循环对象数组
            if(users[i] != null){//判断对象是否为空,输出不为空的对象
                System.out.println(users[i]);//打印不为空的对象
            }
        }
    }
    //修改用户信息
    //传入id,name,password,age,sex属性
    public void updateUser(int id,String name,String password,int age,char sex){
        //将传入的id传入getUserById方法判断用户是否存在且不为空
        User user = getUserById(id);//将新建的对象指向getUserById方法返回的对象
        user.setUserName(name);//将传入的name属性赋值给对象的name
        user.setPassword(password);//将传入的password属性赋值给对象的password
        user.setAge(age);//将传入的age属性赋值给对象的age
        user.setSex(sex);//将传入的sex属性赋值给对象的sex
        System.out.println(user);//对象赋值成功,打印对象
        System.out.println("修改成功");
    }

}

用户类

public class User {
    private String userName;//定义姓名
    private String password;//密码
    private int id;//用户id
    static int uid = 0;//定义一个用户id,用来统计用户被创建的次数
    private int age;//年龄
    private char sex;//性别

    {
        ++uid;//构造代码块每次创建对象会执行一次,用来统计创建了几个对象
    }
//User有参构造方法,需要传入name,password,age,sex
    public User(String userName, String password, int age, char sex) {
        this.id = uid;
        this.userName = userName;
        this.password = password;
        this.age = age;
        this.sex = sex;
    }
    //get\set方法
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

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

    public char getSex() {
        return sex;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", id=" + id +
                ", age=" + age +
                ", sex=" + sex +
                '}';
    }


}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ayou2020

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

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

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

打赏作者

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

抵扣说明:

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

余额充值