要求
实体类
//该类为用户对象的实体类
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 = pile(".*\\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基础完成一个简单的控制台输入的用户管理(包括用户注册 登录 修改密码 及一些相关校验)