文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java实现用户管理系统

2024-04-02 19:55

关注

基于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循环结合来实现增删改查功能
用户的增添与密码的修改实习了控制台输入与修改信息的能力


    public void add(User u) {
        list.add(u);
    }
    
    
    public boolean modifypassword(int id, String password) {
        User user = findById(id);
        if (user != null) {
            user.setPassword(password);
            return true;
        }

        return false;
    }
    
    public User findById(int id) {
        User us = null;
        for (User u : list) {
            if (u.getId() == id) {
                us = u;
                break;
            }
        }
        return us;
    }
    
    public boolean modifystatus(int id, String status) {
        User user = findById(id);
        if (user != null) {
            user.setStatus(status);
            return true;
        }

        return false;
    }
    
    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();
        }
    }
    
    public boolean modifyrole(int id, String role) {
        User user = findById(id);
        if (user != null) {
            user.setRole(role);
            return true;
        }
        return false;
    }
    
    public ArrayList<User> findAll() {
        return list;
    }
    
    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语句中有输入窗口能够调用此类方法


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修改其密码,简单的判断语句对密码信息确认与修改


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来查看用户的个人信息


    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后对其状态(是否禁用)进行修改


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("修改失败!");
        }
    }

结合之前定义的用户信息,实现简单的用户登录功能


    private void enter(){
        UserModule um = new UserModule();
        um.register();
    }

修改用户角色(是否为管理员),给其权限

 
 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("修改失败!");
        }
    }

将已存入的用户信息列表化输出


    private void list() {
        msg("Id\t账号\t密码\t\t年龄\t角色\t邮箱\t\t办事处\t账户状态\t");
        for (User u : um.findAll()) {
            msg(u);
        }
    }

删除功能,根据ID删除存入数组的用户信息


private void delete() {
        sc = new Scanner(System.in);
        msg("请输入用户ID:");
        int id = sc.nextInt();
        if (um.delete(id)) {
            msg("删除成功!");
        } else {
            msg("删除失败!");
        }
    }

外加一个简单的退出系统的功能,不用鼠标关闭Console窗口


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();
    }

技术含量不高的完成了一个有用户登录,对用户信息进行增删改查功能的系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯