要求

实体类

//该类为用户对象的实体类

public class User {
    private String name;
    private String password;
    private String email;

public String getName() {
        return name;
    }

public void setName(String name) {
        this.name = name;
    }

public String getPassword() {
        return password;
    }

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

public String getEmail() {
        return email;
    }

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

public User(String name, String password, String email) {
        this.email = email;
        this.name = name;
        this.password = password;
    }

public User(String name, String password) {
        this.name = name;
        this.password = password;
    }
}

//该类为存放用户对象的容器对象,在这个对象中有一个User[]的数组容器,用于存放User对象

public class Users {

public static User[] users = new User[20];

public User[] getUsers() {
        return users;
    }
}

//这个类是写相关功能的逻辑的类,里面有注册(reginst),登录(longin),修改(update)的相关校验及逻辑方法】

public class UserService {

public String reginst(Users users, User user, String password2) {
        String mess = null;
        int userNumber = 0;
        String name = user.getName();
        String password = user.getPassword();
        if (Utils.userIsExist(users, user)) {
            if (4 <= name.length() && name.length() <= 6) {
                if ("0".equals(name.subSequence(0, 1)) || "1".equals(name.subSequence(0, 1))
                        || "2".equals(name.subSequence(0, 1)) || "3".equals(name.subSequence(0, 1))
                        || "4".equals(name.subSequence(0, 1)) || "5".equals(name.subSequence(0, 1))
                        || "6".equals(name.subSequence(0, 1)) || "7".equals(name.subSequence(0, 1))
                        || "8".equals(name.subSequence(0, 1)) || "9".equals(name.subSequence(0, 1))) {
                    mess = "用户名请以字母开头";
                } else {
                    if (Utils.isNotDump(name)) {
                        if (6 <= password.length() && password.length() <= 12) {
                            if ("0".equals(password.subSequence(0, 1)) || "1".equals(password.subSequence(0, 1))
                                    || "2".equals(password.subSequence(0, 1)) || "3".equals(password.subSequence(0, 1))
                                    || "4".equals(password.subSequence(0, 1)) || "5".equals(password.subSequence(0, 1))
                                    || "6".equals(password.subSequence(0, 1)) || "7".equals(password.subSequence(0, 1))
                                    || "8".equals(password.subSequence(0, 1))
                                    || "9".equals(password.subSequence(0, 1))) {
                                mess = "用户密码请以字母开头";
                            } else {
                                if (Utils.containNumber(password)) {
                                    if (userNumber <= 20) {
                                        if (password.equals(password2)) {
                                            Users.users[userNumber] = user;
                                            userNumber++;
                                            mess = "用户注册成功";
                                        } else {
                                            mess = "两次密码输入不一致";
                                        }
                                    } else {
                                        mess = "内存已满,请先删除用户";
                                    }
                                } else {
                                    mess = "密码必须含有数字";
                                }
                            }
                        } else {
                            mess = "密码必须为6-12位";
                        }
                    } else {
                        mess = "用户名有重复元素";
                    }
                }
            } else {
                mess = "用户名必须为4-6位";
            }
        } else {
            mess = "该用户已存在";
        }
        return mess;
    }

@SuppressWarnings("unused")
    public String login(Users users, User user) {
        String mess = null;
        for (int i = 0; i < users.getUsers().length; i++) {
            if (users.getUsers()[i].getName().equals(user.getName())
                    && users.getUsers()[i].getPassword().equals(user.getPassword())) {
                mess = "登录成功";
                return mess;
            } else {
                mess = "用户名或密码错误";
                return mess;
            }
        }
        return mess;
    }

@SuppressWarnings("unused")
    public String update(Users users, User user) {
        String mess = null;
        for (int i = 0; i < users.getUsers().length; i++) {
            if (users.getUsers()[i].getName().equals(user.getName())) {
                users.getUsers()[i] = user;
                mess = "密码已修改";
                return mess;
            } else {
                mess = "修改密码失败";
                return mess;
            }
        }
        return mess;
    }

}

//接下来是我们用到的一些相关的工具的类

public class Utils {
    // 判断是否存在重复元素
    public static boolean isNotDump(String iniString) {
        char[] a = iniString.toCharArray();
        for (char item : a) {
            int index = iniString.indexOf(item);
            for (char s : Arrays.copyOfRange(a, index + 1, a.length)) {
                if (s == item) {
                    return false;
                }
            }
        }
        return true;
    }

// 判断是否包含数字
    public static boolean containNumber(String content) {
        boolean flag = false;
        Pattern p = Pattern.compile(".*\\d+.*");
        Matcher m = p.matcher(content);
        if (m.matches()) {
            flag = true;
        }
        return flag;
    }

// 判断用户是否已存在
    @SuppressWarnings("unused")
    public static boolean userIsExist(Users users, User user) {
        Boolean falg = true;
        if (users.getUsers()[0] == null) {
            return falg;
        }
        for (int i = 0; i < users.getUsers().length; i++) {

if (users.getUsers()[i].getName().equals(user.getName())) {
                falg = false;
                return falg;
            } else {
                return falg;
            }
        }
        return falg;
    }
}

//最后一个是我们的运行的相关方法

public class run {
    private static Scanner key;

public static void main(String[] args) {
        init();

}

public static void init() {
        show();
        System.out.print("请选择操作:");
        key = new Scanner(System.in);
        String item = key.nextLine();
        switch (item) {
        case "1":
            reginst(); // 增加
            break;
        case "2":
            longin();
            break;
        case "3":
            update(); // modify修改
            break;
        case "0":
            System.out.println("\t退出成功!");
            System.exit(0);
        default:
            System.out.println("输入错误,请重新选择!");
            break;
        }
    }

private static void reginst() {
        System.out.println("\t【注册用户】");
        System.out.print("\t请输入用户名:");
        String name = key.nextLine();
        System.out.print("\t请输入用户名邮箱:");
        String email = key.nextLine();
        System.out.print("\t请输入用户密码:");
        String password = key.nextLine();
        System.out.print("\t请再次输入用户密码:");
        String password2 = key.nextLine();

Users users = new Users();
        User user = new User(name, password, email);
        UserService userService = new UserService();
        String mess = userService.reginst(users, user, password2);
        System.out.println(mess);
        init();
    }

private static void longin() {
        System.out.println("\t【注册用户】");
        System.out.print("\t请输入用户名:");
        String name = key.nextLine();
        System.out.print("\t请输入用户密码:");
        String password = key.nextLine();
        Users users = new Users();
        User user = new User(name, password);
        UserService userService = new UserService();
        String mess = userService.login(users, user);
        System.out.println(mess);
        init();
    }

private static void update() {
        System.out.println("\t【注册用户】");
        System.out.print("\t请输入用户名:");
        String name = key.nextLine();
        System.out.print("\t请输入用户密码:");
        String password = key.nextLine();
        Users users = new Users();
        User user = new User(name, password);
        UserService userService = new UserService();
        String mess = userService.update(users, user);
        System.out.println(mess);

init();
    }

private static void show() {
        System.out.println("用户管理系统");
        System.out.println("========================");
        System.out.println("【1】注册用户");
        System.out.println("【2】用户登录");
        System.out.println("【3】密码修改");
        System.out.println("【0】退出");
        System.out.println("========================");
    }
}

完成!!!!

使用java基础完成一个简单的控制台输入的用户管理(包括用户注册,登录,修改密码,及一些相关校验)相关推荐

  1. 用Java写了一个简单的控制台狼人杀游戏

    最近上课老师布置的作业是写一个简答的狼人杀游戏,花了大概两天不到写完,比较乱,还有很多逻辑不太顺的地方,有问题的欢迎讨论. 先搞清楚游戏的玩法: 12人局的一个游戏 平民阵营(好人阵营):4个平民 神 ...

  2. java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...

    0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...

  3. Java基础之泛型简单讲解(通俗易懂)

    Java基础之泛型简单讲解(通俗易懂) 1. 前言 2. 简单例子对比理解 2.1 未使用泛型例子--ArrayList 2.2 使用泛型的例子 2.2.1 ArrayList 举例 2.2.2 Ha ...

  4. 用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  5. java设计游戏_用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  6. java动作游戏教程_用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  7. JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...

    用java模拟设计一个简单的"用户注册"程序.当用户输入用户名和密码时,单击"注 2020 - 9 - 26 TAG : 所有功能均已实现,如有不满意的地方我再修改imp ...

  8. JAVA编写的一个简单的Socket实现的HTTP响应服务器

    JAVA编写的一个简单的Socket实现的HTTP响应服务器,看后就很容易理解Web服务器的原理了. package test.io;import java.net.*; import java.io ...

  9. java Swing 做一个简单的输入文本框

    java Swing做一个简单的文本输入框, 新建一个SwingDemo类: // //java swing做一个简单的文本框 //Created by lee_1310 on 2019.03.29 ...

最新文章

  1. 阿里云云盾吴翰清:未来将重点构建阿里云用户安全的大生态
  2. 解决Unity中新导入了C#文件在vs打开一直都是杂项文件的问题
  3. [ 1001] 动态开辟二维数组的说明
  4. 替换ubuntu 源
  5. shell判断输入变量或者参数是否为空
  6. html如何将标题置顶,.Html 头部,标题
  7. java多线程 -- ReadWriteLock 读写锁
  8. VS中lib和dll
  9. 使用Java 8和Lambda简化ReadWriteLock
  10. 12.1 LNMP架构介绍 12.2 MySQL安装 12.3/12.4 PHP安装 12.5 Nginx介绍
  11. 详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
  12. usb禁止重定向_USB虚拟化与重定向(一)
  13. 色谱计算机常用英文,色谱术语的常用中英文对照
  14. 武科大计算机科学与技术教务处,欢迎访问武汉理工大学计算机科学与技术学院...
  15. 51单片机最小系统解读
  16. Windows10 笔记本从睡眠状态唤醒时取消输入密码的方法
  17. 观国庆60周年庆典阅兵式有感
  18. i3 1005g1和i5 10210u哪个好
  19. java怎样定义一个对象数组,java定义一个对象数组
  20. http://www.3800hk.com/news/w32/12446.html sa帐号的改名和删除

热门文章

  1. TEC-XP 汇编学习
  2. 计算机控制中期进度报告,中期检查报告(20201005055009).docx
  3. 哈希娱乐MASS打造区块链杀手级应用
  4. java开发掷骰子游戏_java – 模拟掷骰子游戏,非常初学者
  5. 率先冲向C++轮融资,来也科技如何成为RPA+AI的赋能者?
  6. 复制指定目录包括子目录下的所有指定类型的文件
  7. 解密四参七参工程坐标系,并使用图新地球完成四参七参计算,实现不同投影坐标参数数据融合
  8. 文本聚类分析算法_读书笔记(8)kmeans聚类算法及应用
  9. 软件失效模式与影响分析SFMEA的8个入手点
  10. World Machine创建雪山