使用java基础完成一个简单的控制台输入的用户管理(包括用户注册,登录,修改密码,及一些相关校验)
要求
实体类
//该类为用户对象的实体类
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基础完成一个简单的控制台输入的用户管理(包括用户注册,登录,修改密码,及一些相关校验)相关推荐
- 用Java写了一个简单的控制台狼人杀游戏
最近上课老师布置的作业是写一个简答的狼人杀游戏,花了大概两天不到写完,比较乱,还有很多逻辑不太顺的地方,有问题的欢迎讨论. 先搞清楚游戏的玩法: 12人局的一个游戏 平民阵营(好人阵营):4个平民 神 ...
- java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...
0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...
- Java基础之泛型简单讲解(通俗易懂)
Java基础之泛型简单讲解(通俗易懂) 1. 前言 2. 简单例子对比理解 2.1 未使用泛型例子--ArrayList 2.2 使用泛型的例子 2.2.1 ArrayList 举例 2.2.2 Ha ...
- 用java设计实现一个简单的动作冒险类游戏
用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...
- java设计游戏_用java设计实现一个简单的动作冒险类游戏
用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...
- java动作游戏教程_用java设计实现一个简单的动作冒险类游戏
用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...
- JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...
用java模拟设计一个简单的"用户注册"程序.当用户输入用户名和密码时,单击"注 2020 - 9 - 26 TAG : 所有功能均已实现,如有不满意的地方我再修改imp ...
- JAVA编写的一个简单的Socket实现的HTTP响应服务器
JAVA编写的一个简单的Socket实现的HTTP响应服务器,看后就很容易理解Web服务器的原理了. package test.io;import java.net.*; import java.io ...
- java Swing 做一个简单的输入文本框
java Swing做一个简单的文本输入框, 新建一个SwingDemo类: // //java swing做一个简单的文本框 //Created by lee_1310 on 2019.03.29 ...
最新文章
- 阿里云云盾吴翰清:未来将重点构建阿里云用户安全的大生态
- 解决Unity中新导入了C#文件在vs打开一直都是杂项文件的问题
- [ 1001] 动态开辟二维数组的说明
- 替换ubuntu 源
- shell判断输入变量或者参数是否为空
- html如何将标题置顶,.Html 头部,标题
- java多线程 -- ReadWriteLock 读写锁
- VS中lib和dll
- 使用Java 8和Lambda简化ReadWriteLock
- 12.1 LNMP架构介绍 12.2 MySQL安装 12.3/12.4 PHP安装 12.5 Nginx介绍
- 详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
- usb禁止重定向_USB虚拟化与重定向(一)
- 色谱计算机常用英文,色谱术语的常用中英文对照
- 武科大计算机科学与技术教务处,欢迎访问武汉理工大学计算机科学与技术学院...
- 51单片机最小系统解读
- Windows10 笔记本从睡眠状态唤醒时取消输入密码的方法
- 观国庆60周年庆典阅兵式有感
- i3 1005g1和i5 10210u哪个好
- java怎样定义一个对象数组,java定义一个对象数组
- http://www.3800hk.com/news/w32/12446.html sa帐号的改名和删除
热门文章
- TEC-XP 汇编学习
- 计算机控制中期进度报告,中期检查报告(20201005055009).docx
- 哈希娱乐MASS打造区块链杀手级应用
- java开发掷骰子游戏_java – 模拟掷骰子游戏,非常初学者
- 率先冲向C++轮融资,来也科技如何成为RPA+AI的赋能者?
- 复制指定目录包括子目录下的所有指定类型的文件
- 解密四参七参工程坐标系,并使用图新地球完成四参七参计算,实现不同投影坐标参数数据融合
- 文本聚类分析算法_读书笔记(8)kmeans聚类算法及应用
- 软件失效模式与影响分析SFMEA的8个入手点
- World Machine创建雪山