【java】模拟用户管理系统

【案例问题】

  1. 案例描述

编写一个程序,模拟用户管理系统。
程序运行时提供以下功能菜单:注册新用户、用户登录、修改用户信息、查询用户
(根据用户名模糊查询)和查看所有用户。
用户信息包括: id 用户编号、 username 用户名、 password 密码、 phone 联系电话。
为了方便程序测试,程序中有两条测试数据:
User {id=’ A101’ , username=‘陈独秀’ , password=’ 888888’ , phone=’ 1351 1 1 1 1 1 1 1’ }
User {id=’ A102’ , username=‘李大钊’ , password=’ 000000’ , phone=’ 13912345678’ }
为了便于用户操作,每个功能执行完毕,都再次显示功能菜单。

  1. 运行结果

程序运行后,首先显示功能菜单:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【案例目标】

• 学会分析“用户管理系统”程序设计的实现思路。

• 根据思路独立完成“用户管理系统”程序设计的源代码编写、编译及运行。

• 掌握 String 类的知识。本次实验可能用到的 String 类的方法有: equals ()、
isEmpty ()、 contains ()、 indexOf ()。

【案例分析】

本项目的类有两个:用户类 User 和演示测试类 UserDemo。
1、 User 类
成员属性有: id, username, password, phone。
成员方法有:构造方法、 setters、 getters 和重写的 String toString ()方法,它用
于返回以下格式的字符串。

User {id=×× , username=×× , password=×× , phone=×× }

2、 UserDemo 类

该类需要保存用户列表,这里考虑用 User 类型的数组。整型变量 userCount 记录保存
的用户数量。 User 类型变量 userLogin 则保存当前通过登录验证的用户。因此,

成员属性有:(以下皆为静态属性)

 User[] userList

 int userCount

 User userLogin。

成员方法有:(以下皆为静态方法)

 主方法 void main()

 显示功能菜单 void showMenu()

 查看所有用户 void showAll()

 注册新用户 void addUser()

 用户登录 void login()

 修改用户信息 void alterUser()

 查询用户 void searchByUsername()

【运行代码】
1.User类

package cn.edu.gpnu.bank.User;

public class User {
    
    
    public String id;
    public String username;
    public String password;
    public String phone;

    public User(String id, String username, String password, String phone) {
    
    
        this.id = id;
        this.username = username;
        this.password = password;
        this.phone = phone;
    }

    public String getId() {
    
    
        return id;
    }

    public void setId(String 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 String getPhone() {
    
    
        return phone;
    }

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

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


2.UserDemo类

package cn.edu.gpnu.bank.User;

import java.util.Scanner;

public class UserDemo {
    
    
    static User[] userList = new User[100]; //用数组保存用户信息
    static int userCount = 0; //保存的用户的数量
    static User userLogin = null; //记录当前登录的用户

    public static void main(String[] args) {
    
    
        User user;
        user = new User("A101", "陈独秀", "888888", "13511111111");//测试数据
        userList[userCount++] = user; //保存到数组中,并修改数量值。
        user = new User("A102", "李大钊", "000000", "13912345678");//测试数据
        userList[userCount++] = user; //保存到数组中,并修改数量值。
        Scanner scanner = new Scanner(System.in);
        while (true) {
    
    
            showMenu(); //打印系统操作菜单
            String choice = scanner.nextLine(); //获取用户要执行的命令编号
            switch (choice) {
    
    
                case "1": //显示所有用户信息
                    showAll();
                    break;
                /* ****补充多行代码****。  */
                case "2": //注册新用户
                    addUser();
                    break;
                case "3": //用户登录
                    login();
                    break;
                case "4": //修改用户信息
                    alterUser();
                    break;
                case "5": //查询用户
                    searchByUsername();
                    break;
                case "0": //结束程序
                    System.out.println("程序运行结束。");
                    return;
            }
        }
    }


    public static void showMenu() {
    
    
        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("0.退出程序");
        System.out.print("请选择要执行的操作:");
    }

    public static void showAll() {
    
    
        System.out.println("系统的所有用户信息如下:");
        for (int i = 0; i < userCount; i++) {
    
    
            System.out.println(userList[i].toString());
        }
    }

    public static void addUser() {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入用户编号:");
        String id = scanner.nextLine();

        /* ****补充多行代码****。提示:获取注册用户的其他信息,然后添加该用户到列表 */
        System.out.print("请输入用户名:");
        String username = scanner.nextLine();

        System.out.print("请输入用户密码:");
        String password = scanner.nextLine();

        System.out.print("请输入用户联系电话:");
        String phone = scanner.nextLine();

        System.out.println("成功添加用户。");
        User user;
        user = new User(id, username, password, phone);
        userList[userCount++] = user;

    }

    private static void login() {
    
    
        User user = null;
        String id;
        String password;

        System.out.print("请输入用户编号:");
        Scanner scanner = new Scanner(System.in);
        id = scanner.nextLine();
        /* ****补充多行代码****。提示:从用户列表中搜索该用户编号的用户*/
        for (int i = 0; i < userCount; i++) {
    
    
            if (userList[i].id.equals(id)) {
    
    
                user = userList[i];
            }
        }


        if (user == null) {
    
    
            System.out.println("用户不存在!");
            return;
        }
        System.out.print("请输入用户密码:");
        password = scanner.nextLine();

        if (user.password.equals(password) /* ***补充代码****。提示:验证密码是否正确 */) {
    
    
            System.out.println("登录成功");
            /* ***补充代码****。提示:更新当前登录用户。*/
            userLogin = user;
        } else {
    
    
            System.out.println("登录失败");
            userLogin = null;
        }
    }

    private static void alterUser() {
    
    
        if (userLogin == null) {
    
    
            System.out.println("你尚未登录系统,请先登录验证。");
            return;
        }
        String username;
        String password;
        String phone;
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入新的用户名:[" + userLogin.getUsername()
                + "]");
        username = scanner.nextLine();
        userLogin.setUsername(username);

        System.out.print("请输入新的密码:[" + userLogin.getPassword()
                + "]");
        password = scanner.nextLine();
        userLogin.setPassword(password);
        System.out.print("请输入新的联系电话:[" + userLogin.getPhone()
                + "]");
        phone = scanner.nextLine();
        userLogin.setPhone(phone);

        /* ****补充多行代码****。提示:若输入新信息不为空,则保存到 userLogin 对象。  */
        System.out.println("用户信息修改成功。");
    }

    private static void searchByUsername() {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要查询的用户名:");
        String username = scanner.nextLine();
        System.out.println("查询结果如下:");

        /* ****补充多行代码****。提示:参考 showAll()方法。*/
        for (int i = 0; i < userCount; i++) {
    
    
            if (userList[i].username.contains(username) == true) {
    
    
                System.out.println(userList[i]);
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/m0_52703008/article/details/126201772