[java] ユーザー管理システムをシミュレートする

【事例質問】

  1. 事例の説明

ユーザー管理システムをシミュレートするプログラムを作成します。
プログラムの実行中に、新しいユーザーの登録、ユーザーのログイン、ユーザー情報の変更、ユーザーのクエリ
(ユーザー名に基づくあいまいクエリ)、およびすべてのユーザーの表示の機能メニューが提供されます。
ユーザー情報には、ID ユーザー番号、ユーザー名 ユーザー名、パスワード、電話連絡先番号が含まれます。
プログラムのテストを容易にするために、プログラムには 2 つのテスト データがあります:
ユーザー {id=' A101' 、username='Chen Duxiu' 、password=' 888888' 、phone=' 1351 1 1 1 1 1 1 1 ' } User {id
= ' A102' 、username='Li Dazhao' 、password=' 000000' 、phone=' 13912345678' }
ユーザーの操作を容易にするために、各機能を実行した後、機能メニューが再度表示されます。

  1. 演算結果

プログラムを実行すると、最初に機能メニューが表示されます。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

【事件の目的】

• 「ユーザー管理システム」プログラム設計の実装アイデアを分析する方法を学びます。

• アイデアに基づいて「ユーザー管理システム」プログラム設計のソースコード作成、コンパイル、運用を自主的に完了します。

• String クラスの知識がある。この実験で使用できる String クラスのメソッドは、equals ()、
isEmpty ()、contains ()、indexOf () です。

【事例分析】

このプロジェクトには、ユーザー クラス User とデモ テスト クラス UserDemo の 2 つのクラスがあります。
1. ユーザー クラスの
メンバー属性は、ID、ユーザー名、パスワード、電話番号です。メンバー メソッドには、コンストラクター、セッター、ゲッター、および次の形式で文字列を返す
ために使用されるオーバーライドされた String toString () メソッドが含まれます。

ユーザー {id=×× 、ユーザー名=××、パスワード=××、電話番号=×× }

2. UserDemo クラス

このクラスはユーザー リストを保存する必要があり、ここではユーザー タイプの配列が考慮されます。整数変数 userCount は、
保存されたユーザーの数を記録します。ユーザータイプ変数 userLogin には、ログイン認証に合格した現在のユーザーが格納されます。したがって、

メンバー属性は次のとおりです (以下はすべて静的属性です)。

 ユーザー[] userList

 int userCount

 ユーザー 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