Java實現用戶管理系統

基於Java的簡單的用戶管理系統,供大傢參考,具體內容如下

此系統功能和方法都比較簡單

本次系統通過控制臺輸入商品的基本信息,加入管理員的登錄與對是否為管理員進行操作

對於功能的實現,分別定義瞭3個類

用戶基本屬性類

此類包含用戶id、賬號、密碼、年齡、角色(是否為管理員)、郵箱、辦事處、賬戶狀態

private int id;// id號
private String username;// 賬號
private String password;// 密碼
private int age;// 年齡
private String role;// 角色
private String email;// 郵箱
private String officeID;// 辦事處
private String status;// 賬戶狀態

通過快捷鍵方法快速生成其屬性get/set方法與構造器

@Override
public String toString() {
        return id + "\t" + username + "\t" + password + "\t" + age + "\t" + role + "\t" + email + "\t" + officeID + "\t"
                + status;
    }

public User(int id, String username, String password, int age, String role, String email, String officeID,
            String status) {
        super();
        this.id = id;
        this.username = username;
        this.password = password;
        this.age = age;
        this.role = role;
        this.email = email;
        this.officeID = officeID;
        this.status = status;
    }

    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 String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getOfficeID() {
        return officeID;
    }

    public void setOfficeID(String officeID) {
        this.officeID = officeID;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

完成對用戶屬性的定義

在新類中對用戶屬性進行修飾和功能的實現

通過ArrayList動態數組能夠對數組的基本信息進行存儲

Scanner方法來使用控制臺輸入功能,結合方法來輸入對應的信息

static int i = 0;
    String[] admin = { "admin", "admin123" };
    static ArrayList<User> list = new ArrayList<>();
    private Scanner sc = new Scanner(System.in);

用簡單的if/else語句和for循環結合來實現增刪改查功能
用戶的增添與密碼的修改實習瞭控制臺輸入與修改信息的能力

/**1-用戶添加*/
    public void add(User u) {
        list.add(u);
    }
    
    /** 2-密碼修改(根據Id修改密碼) */
    public boolean modifypassword(int id, String password) {
        User user = findById(id);
        if (user != null) {
            user.setPassword(password);
            return true;
        }

        return false;
    }
    /** 3-根據ID查看個人信息 */
    public User findById(int id) {
        User us = null;
        for (User u : list) {
            if (u.getId() == id) {
                us = u;
                break;
            }
        }
        return us;
    }
    /** 4-根據ID修改賬號狀態(禁用0、啟用1)*/
    public boolean modifystatus(int id, String status) {
        User user = findById(id);
        if (user != null) {
            user.setStatus(status);
            return true;
        }

        return false;
    }
    /** 5-用戶登錄*/
    public void register() {
        System.out.println("請輸入用戶名:");
        if (sc.next().equals(admin[0])) {
            System.out.println("請輸入密碼:");
            if (sc.next().equals(admin[1])) {
                System.out.println("登錄成功!");
            } else {
                System.out.println("密碼錯誤!請重新輸入!");
                register();
            }
        } else {
            System.out.println("用戶名錯誤!請重新輸入!");
            register();
        }
    }
    /** 6-修改用戶角色(設置取消管理員) */
    public boolean modifyrole(int id, String role) {
        User user = findById(id);
        if (user != null) {
            user.setRole(role);
            return true;
        }
        return false;
    }
    /** 7-用戶列表*/
    public ArrayList<User> findAll() {
        return list;
    }
    /** 8-刪除用戶*/
    public boolean delete(int id) {
        User user = findById(id);
        if (user != null) {
            return list.remove(user);
        }
        return false;
    }

由此就通過方法對一些必要的功能進行瞭完成
再通過另一個主窗口類對其他類進行功能的調用與界面信息的完成

創建main程序入口類,並且在類中完成輸入界面與指令

輸入窗口的指令界面

private UserModule um = new UserModule();
private Scanner sc = new Scanner(System.in);

    /** 輸入窗口的指令界面 */
    public void menu() {
        msg("=====================================");
        msg("======SOFTEEM用戶管理系統================");
        msg("======【1】用戶添加======================");
        msg("======【2】密碼修改======================");
        msg("======【3】個人信息查看===================");
        msg("======【4】賬號狀態修改(禁用0、啟用1)========");
        msg("======【5】用戶登錄=======================");
        msg("======【6】修改用戶角色(設置取消管理員)=======");
        msg("======【7】用戶列表======================");
        msg("======【8】刪除用戶======================");
        msg("======【0】退出系統======================");
        msg("請輸入操作指令: ");
        start();
    }

通過基礎語句switch完成程序按鍵的入口

 /** 程序按鍵入口 */
private void start() {
        sc = new Scanner(System.in);
        int i = sc.nextInt();
        switch (i) {
        case 1:
            add();
            break;
        case 2:
             alter();
            break;
        case 3:
            queryById();
            break;
        case 4:
            thestatus();
            break;
        case 5:
            enter();
            break;
        case 6:
            update();
            break;
        case 7:
            list();
            break;
        case 8:daima
            delete();
            break;
        case 0:
            exit();
            break;
        default:
            msg("請輸入正確的操作指令!!!");
            break;
        }
        menu();
    }

此方法能夠處理經常使用輸出窗口的代碼麻煩,直接調用此內部方法實現輸出語句,更簡潔的完成輸出語句

 /** 能夠兼容輸入的屬性 */
    public void msg(Object obj) {
        System.out.println(obj);
    }

結合上一個類中的方法完成對用戶的添加功能,後續的功能與此功能一樣,再switch語句中有輸入窗口能夠調用此類方法

/** 1-用戶添加的客戶端實現 */
private void add() {
        msg("請輸入用戶信息:((按以下格式:Id/賬號/密碼/年齡/角色/郵箱/辦事處/賬戶狀態))");
        sc = new Scanner(System.in);
        String s = sc.nextLine();
        // 根據"/"截取用戶信息
        String[] info = s.split("/");
        if (um.findById(Integer.parseInt(info[0])) != null) {
            msg("該ID用戶已存在,請重新輸入");
            add();
            return;
        } else {
            User u = new User(Integer.parseInt(info[0]), info[1], info[2], Integer.parseInt(info[3]), info[4], info[5],
                    info[6], info[7]);
            um.add(u);
            msg("添加成功!");
        }
    }

根據用戶ID修改其密碼,簡單的判斷語句對密碼信息確認與修改

/** 2-根據ID修改密碼 */
private void alter() {
        sc = new Scanner(System.in);
        msg("請輸入用戶的ID:");
        int id = sc.nextInt();
        msg("密碼修改為:");
        String passwor = sc.next();
        if (um.modifypassword(id, passwor)) {
            msg("修改成功!");
        } else {
            msg("修改失敗!");
        }
    }

通過ID來查看用戶的個人信息

/** 3-個人信息查看 */
    private void queryById() {
        sc = new Scanner(System.in);
        msg("請輸入需要查詢的用戶ID");
        int id = sc.nextInt();
        User u = um.findById(id);
        if (u == null) {
            msg(id + "號不存在,請重新輸入");
            queryById();
            return;
        }
        msg("Id\t賬號\t密碼\t\t年齡\t角色\t郵箱\t\t辦事處\t賬戶狀態\t");
        msg(u);
    }

輸入用戶ID後對其狀態(是否禁用)進行修改

/** 4-賬號狀態修改(禁用0、啟用1)*/
private void thestatus() {
        sc = new Scanner(System.in);
        msg("請輸入用戶ID:");
        int id = sc.nextInt();
        msg("賬號狀態修改(0/1):");
        String status = sc.next();
        if (um.modifystatus(id, status)) {
            msg("修改成功!");
        } else {
            msg("修改失敗!");
        }
    }

結合之前定義的用戶信息,實現簡單的用戶登錄功能

/** 5-用戶登錄*/
    private void enter(){
        UserModule um = new UserModule();
        um.register();
    }

修改用戶角色(是否為管理員),給其權限

 /** 6-修改用戶角色*/
 private void update() {
        sc = new Scanner(System.in);
        msg("請輸入用戶ID:");
        int id = sc.nextInt();
        msg("角色修改(是否為管理員):");
        String role = sc.next();
        if (um.modifyrole(id, role)) {
            msg("修改成功!");
        } else {
            msg("修改失敗!");
        }
    }

將已存入的用戶信息列表化輸出

/** 7-用戶列表*/
    private void list() {
        msg("Id\t賬號\t密碼\t\t年齡\t角色\t郵箱\t\t辦事處\t賬戶狀態\t");
        for (User u : um.findAll()) {
            msg(u);
        }
    }

刪除功能,根據ID刪除存入數組的用戶信息

/** 8-根據ID刪除用戶*/
private void delete() {
        sc = new Scanner(System.in);
        msg("請輸入用戶ID:");
        int id = sc.nextInt();
        if (um.delete(id)) {
            msg("刪除成功!");
        } else {
            msg("刪除失敗!");
        }
    }

外加一個簡單的退出系統的功能,不用鼠標關閉Console窗口

/** 0-體統退出 */
private void exit() {
        sc = new Scanner(System.in);
        msg("是否確定退出?(Y/N)");
        String op = sc.next();
        if (op.equalsIgnoreCase("Y")) {
            msg("謝謝使用,再見!");
            System.exit(1);
        }
    }

此類的程序執行入口,調用系統用戶登錄方法和主窗口方法,調用的方法中再實現所有功能

public static void main(String[] args) {
        TestUser tu = new TestUser();
        tu.enter();
        tu.menu();
    }

技術含量不高的完成瞭一個有用戶登錄,對用戶信息進行增刪改查功能的系統

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: