内容包括用户的注册,登录,忘记密码
实现类
import java.util.ArrayList;
import java.util.Scanner;
public class l_登录界面实现类 {
public static void main(String[] args) {
System.out.println("===========欢迎使用学生管理系统===========");
//创建一个用来存储用户对象的数组
ArrayList<User> list2=new ArrayList<>();
while(true) {
System.out.println("[1:登录\t2:注册\t3:忘记密码]");
//键盘输入
Scanner sc=new Scanner(System.in);
System.out.println("请输入您选择的操作:");
String num=sc.next();
//使用循环判断用户选择的操作
switch(num) {
case "1":
Sign(list2);
break;
case "2":
Logon(list2);
break;
case "3":
Forget(list2);
break;
default:
System.out.println("选项错误,请重新选择!");
System.out.println("==============================");
}
}
}
//【注册方法】
public static void Logon(ArrayList<User> list2) {
//键盘输入用户名
Scanner sc=new Scanner(System.in);
//1.设置用户名
String SuserName;
loop0: while(true) {
System.out.println("请输入您的用户名:");
SuserName=sc.next();
//1.1判断用户是否已经存在(调用工具类中的判断重复性方法)
if(list2.size()==0) {
}else {
boolean fig=l_工具类_登陆界面.IfName(list2, SuserName);//调用方法去返回值
if(!fig) {
System.out.println("该用户已经存在,请重新输入用户名!");
continue;
}
}
//1.2判断用户名格式是否正确(要求:用户名长度在3~15之间,必须由字母加数字结合)
//将字符串用户名变成 字符数组
char[] shuzu1=SuserName.toCharArray();
int count=0;//计数器
//1.2.0判断用户名是否为全数字
for(int i =0;i<SuserName.length();i++) {
if(shuzu1[i]<='9'&&shuzu1[i]>='0') {
count++;
}
}
if(count==SuserName.length()) {
System.out.println("你输入的用户名为全数字,不符合要求!");
continue;
}
//1.2.1判断长度是否符合要求
int len=SuserName.length();
if(len>=3&&len<=15) {
}else {
System.out.println("您输入的用户名长度不符合要求!");
continue;
}
//1.2.2判断用户名是否由数字+字母组成(使用循环遍历+判断的方式)
for(int i=0;i<SuserName.length();i++) {
if(('0'<=shuzu1[i]&&shuzu1[i]<='9')||('a'<=shuzu1[i]&&shuzu1[i]<='z')
||('A'<=shuzu1[i]&&shuzu1[i]<='Z')) {
break loop0;
}else {
System.out.println("您输入的用户名格式不符合标准!");
continue loop0;
}
}
}
//2.设置密码
String SuserCipher0;
String SuserCipher1;
while(true){
System.out.println("请输入您的新用户密码:");
SuserCipher0=sc.next();
System.out.println("请再次确认密码:");
SuserCipher1=sc.next();
//判断两次输入的密码是否一样
if(SuserCipher0.equals(SuserCipher1)) {
break;
}else {
System.out.println("两次输入密码不一致!请重新输入");
continue;
}
}
//3.身份验证
String SuserStatus;
loop:while(true) {
//键盘输入身份证号
System.out.println("请输入您的身份证号:");
SuserStatus=sc.next();
//3.1判断身份证号的长度是否符合要求
if(SuserStatus.length()!=18) {
System.out.println("您的身份证长度不合法!");
continue;
}
//3.2判断省份证首位是否为零
if(SuserStatus.charAt(0)=='0') {
System.out.println("您的身份号证首位为零,不合法!");
continue;
}
//3.3遍历身份证号前17位是否属于'0'~'9'
char[] shuzu2=SuserStatus.toCharArray();
for(int i=0;i<SuserStatus.length()-1;i++) {
if(shuzu2[i]<='9'&&shuzu2[i]>='0'){
}else {
System.out.println("您输入的身份证号错误!前17位不符合要求");
continue loop;
}
}
//3.4判断身份证号第18位是否正确(属于'0'~'9'或者是'X','x')
char ch2=SuserStatus.charAt(17);
if(ch2=='x'||ch2=='X'||(ch2>='0'&&ch2<='9')) {
break;
}else {
System.out.println("您输入的身份证的最后一位不合法!");
continue;
}
}
//4.手机号验证
String SuserPhthon;
loop2:while(true) {
System.out.println("请输入您的手机号码:");
SuserPhthon=sc.next();
//4.1判断手机号码的长度
if(SuserPhthon.length()!=11) {
System.out.println("你的手机号码长度不是11位的无法注册!");
continue;
}
//4.2判断手机号码开头是否为零
if(SuserPhthon.charAt(0)==0) {
System.out.println("您的手机号码首位为零,无法注册!");
continue;
}
//4.3遍历手机号码的所有位数是否都属于'0'~'9'
char[] shuzu3=SuserPhthon.toCharArray();
for(int i=0;i<SuserPhthon.length();i++) {
if(shuzu3[i]>='0'&&shuzu3[i]<='9') {
break loop2;
}else {
System.out.println("你输入的手机号码非全数字,无法注册!");
continue loop2;
}
}
}
//(最后)创建用户对象将输入的全部都数据赋值给对象的所有元素并将对象添加到集合
User us=new User(SuserName,SuserCipher0,SuserStatus,SuserPhthon);
list2.add(us);
System.out.println("注册处成功!");
}
//【登录方法】
public static void Sign(ArrayList<User> list2) {
Scanner sc=new Scanner(System.in);
int num2;//记录用户索引
//1.用户名
loop5:while(true) {
//键盘输入用户名
System.out.println("请输入您的用户名:");
String SuserName=sc.next();
//判断用户名是否存在
if(list2.size()==0) {
System.out.println("现在还没有用户存在,请先注册!");
return;
}
//用户信息数组非空时继续执行
num2=l_工具类_登陆界面.IfNameindex(list2, SuserName);//调用方法去返回值
//num2==-1 程序执行(没有相同用户)
if(num2<0) {
System.out.println("该用户没有注册!登陆失败!请输入已经注册好的账号");
continue loop5;
}
//2.输入密码
//判断密码是否正确
//设置for循环(将输入密码最多限制为3次)
for(int i=0;i<3;i++) {
System.out.println("请输入您的密码:");
String SuserCipher=sc.next();
if(list2.get(num2).getUserCipher().equals(SuserCipher)) {
System.out.println("登录成功!");
break loop5;
}
System.out.println("密码错误,请重新输入!");
}
System.out.println("您的输入次数已用光,登陆失败!");
break loop5;
}
}
//【忘记密码】
public static void Forget(ArrayList<User> list2) {
//创建一个键盘输入
Scanner sc=new Scanner(System.in);
int index;//记录用户所对的索引
while(true) {
System.out.println("请输入您的用户名:");
String SuserName=sc.next();
//判断用户名是否存在(调用工具类中的 判断方法2)
index=l_工具类_登陆界面.IfNameindex(list2, SuserName);
if(index<0) {
System.out.println("该用户未注册!请重新输入");
continue;
}else {
break;
}
}
while(true) {
//如果用户名存在 输入并判断手机号码
System.out.println("请输入您的手机号码:");
String SuserPhthon=sc.next();
if(list2.get(index).getUserPhthon().equals(SuserPhthon)) {
break;
}else {
System.out.println("手机号码错误!请重新输入!");
continue;
}
}
while(true) {
//输入并判断身份证号是否存在
System.out.println("请输入您的身份证号:");
String SuserStatus=sc.next();
if(list2.get(index).getUserStatus().equals(SuserStatus)) {
break;
}else {
System.out.println("身份证号错误!请重新输入!");
continue;
}
}
//修改密码
System.out.println("请输入您的新用户密码:");
String SuserCipher2=sc.next();
while(true) {
//再次输入
System.out.println("请再次确认密码:");
String SuserCipher3=sc.next();
//判断两次输入的密码是否一样
if(SuserCipher2.equals(SuserCipher3)) {
break;
}else {
System.out.println("两次输入密码不一致!");
continue;
}
}
list2.get(index).setUserCipher(SuserCipher2);
System.out.println("修改成功!");
}
}
用户类
//用户类
public class User {
//用户具备大成员变量
private String userName;
private String userCipher;//密码·
private String userStatus;//身份证号
private String userPhthon;//手机号
//构造方法
public User() {
super();
}
public User(String userName, String userCipher, String userStatus, String userPhthon) {
super();
this.userName = userName;
this.userCipher = userCipher;
this.userStatus = userStatus;
this.userPhthon = userPhthon;
}
//getter,setter方法
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserCipher() {
return userCipher;
}
public void setUserCipher(String userCipher) {
this.userCipher = userCipher;
}
public String getUserStatus() {
return userStatus;
}
public void setUserStatus(String userStatus) {
this.userStatus = userStatus;
}
public String getUserPhthon() {
return userPhthon;
}
public void setUserPhthon(String userPhthon) {
this.userPhthon = userPhthon;
}
}
工具类
import java.util.ArrayList;
public class l_工具类_登陆界面 {
//【1】判断用户名是否存在(存在返回false,不存在返回true)
public static boolean IfName(ArrayList<User> list2,String SuserName) {
for(int i=0;i<list2.size();i++) {
if(list2.get(i).getUserName().equals(SuserName)) {
return false;
}
}
return true;
}
//【2】判断用户名是否存在(存在返回索引,不存在返回-1)
public static int IfNameindex(ArrayList<User> list2,String SuserName) {
for(int i=0;i<list2.size();i++) {
if(list2.get(i).getUserName().equals(SuserName)) {
return i;
}
}
return -1;
}
}