目录
前言
用户登录系统
1.登录 2.注册 3.忘记密码
1.登录: 用户输入用户名和密码和五位验证码,用户名在3-15个长度之间,并且不能是纯数字,密码:
验证码:5位验证码,四位字母,一位数字
2.注册:键盘录入用户名,密码,身份证,手机号
3.忘记密码:键盘录入用户名,再输入身份证和手机号用来修改密码
一、要求
注册时密码输入两遍,用户名在3-15个长度之间,并且不能是纯数字,身份证18位,最后一位可以是x或者X,手机号11位.
二、代码思路
1.JavaBean类
先定义private string 用户名,密码,身份证,手机号
package guanli;
public class user {
private String username;
private String password;
private String personID;
private String phonenumber;
public user() {
}
public user(String username, String password, String personID, String phonenumber) {
this.username = username;
this.password = password;
this.personID = personID;
this.phonenumber = phonenumber;
}
/**
* 获取
* @return username
*/
public String getUsername() {
return username;
}
/**
* 设置
* @param username
*/
public void setUsername(String username) {
this.username = username;
}
/**
* 获取
* @return password
*/
public String getPassword() {
return password;
}
/**
* 设置
* @param password
*/
public void setPassword(String password) {
this.password = password;
}
/**
* 获取
* @return personID
*/
public String getPersonID() {
return personID;
}
/**
* 设置
* @param personID
*/
public void setPersonID(String personID) {
this.personID = personID;
}
/**
* 获取
* @return phonenumber
*/
public String getPhonenumber() {
return phonenumber;
}
/**
* 设置
* @param phonenumber
*/
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
}
2.开始界面
先建立集合,用scanner键盘录入 其中system.exit(0)表示退出
login()方法表示登录
register()方法表示注册
forgotpassword()方法表示忘记密码
public static void main(String[] args) {
ArrayList<user>list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("欢迎来到学生管理系统");
System.out.println("请选择操作: 1.登录 2.注册 3.忘记密码");
String choose = sc.next();
switch (choose){
case "1"-> login(list);
case "2"-> register(list);
case "3"-> forgotpassword(list);
case "4"-> {
System.out.println("退出");
System.exit(0);
}
default -> System.out.println("没有这个选项");
}
}
}
3.login方法
键盘录入用户名后 通过contains方法进行用户名的判断,判断完成后,输入密码,
创建rightcode,通过getcode方法得到5位验证码,进行判断
创建checkuserinfo(),判断用户名和密码
private static void login(ArrayList<user>list) {
// System.out.println("登录");
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
String username = sc.next();
//判断是否存在
boolean flag = contains(list,username);
if(!flag){
System.out.println("用户"+username +"没有注册");
return;
}
System.out.println("请输入密码");
String password = sc.next();
while (true) {
String rightcode = getCode();
System.out.println("当前验证码为"+rightcode);
System.out.println("请输入验证码");
String code = sc.next();
if(code.equalsIgnoreCase(rightcode)){
System.out.println("输入正确");
break;
}
else{
System.out.println("验证码错误");
continue;
}
}
//定义一个方法,判断用户名和密码
//封装,零散的数据封装为对象
user userinfo = new user(username,password,null,null);
boolean result = checkuserinfo(list,userinfo);
if(result){
System.out.println("登录成功");
studentSystem ss = new studentSystem();
ss.startstudentsystem();
}else {
System.out.println("登录失败,密码或用户名错误");
}
}
i.contians()方法,判断用户名是否存在
循环遍历,list集合的值赋给user里面,创建string rightname 得到user里面的name,通过equals进行判断
private static boolean contains(ArrayList<user> list, String username) {
for (int i = 0; i < list.size(); i++) {
user user = list.get(i);
String rightname = user.getUsername();
if(rightname.equals(username)){
return true;
}
}
return false;
}
ii.getcode()方法,创建5位验证码
先创建character集合,循环通过list.add插入a-z,A-Z,26个字母的大小写
stringbulider创建,为后序数字进行拼接
用random r 进行随机数