用户管理系统--JAVA-创新互联

用户管理系统–JAVA

【题目来源-------黑马程序员Java零基础视频教程_上部】
具体要求:
​ 为学生管理系统书写一个登陆、注册、忘记密码的功能。

创新互联公司是一家专业从事网站设计制作、成都网站建设的网络公司。作为专业的建站公司,创新互联公司依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、成都全网营销推广及网站设计开发服务!

​ 只有用户登录成功之后,才能进入到学生管理系统中进行增删改查操作。

分析:
登录界面:
System.out.println(“欢迎来到学生管理系统”);
System.out.println(“请选择操作1登录 2注册 3忘记密码”);
用户类:
​ 属性:用户名、密码、身份证号码、手机号码

注册功能:
​ 1,用户名需要满足以下要求:

​ 验证要求:

​ 用户名唯一

​ 用户名长度必须在3~15位之间

​ 只能是字母加数字的组合,但是不能是纯数字

​ 2,密码键盘输入两次,两次一致才可以进行注册。

​ 3,身份证号码需要验证。

​ 验证要求:

​ 长度为18位

​ 不能以0为开头

​ 前17位,必须都是数字

​ 最为一位可以是数字,也可以是大写X或小写x

​ 4,手机号验证。

​ 验证要求:

​ 长度为11位

​ 不能以0为开头

​ 必须都是数字

登录功能:
​ 1,键盘录入用户名

​ 2,键盘录入密码

​ 3,键盘录入验证码

验证要求:

​ 用户名如果未注册,直接结束方法,并提示:用户名未注册,请先注册

​ 判断验证码是否正确,如不正确,重新输入

​ 再判断用户名和密码是否正确,有3次机会

忘记密码:
​ 1,键盘录入用户名,判断当前用户名是否存在,如不存在,直接结束方法,并提示:未注册

​ 2,键盘录入身份证号码和手机号码

​ 3,判断当前用户的身份证号码和手机号码是否一致,

​ 如果一致,则提示输入密码,进行修改。

​ 如果不一致,则提示:账号信息不匹配,修改失败。

验证码规则:
​ 长度为5

​ 由4位大写或者小写字母和1位数字组成,同一个字母可重复

​ 数字可以出现在任意位置

比如:

​ aQa1K

完整代码:
(如有错误,请各位大佬指教(●’◡’●))

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class UserSystem {public static void main(String[] args) {ArrayListlist=new ArrayList<>();
        loop: while(true){System.out.println("--------------------------------------------");
            System.out.println("欢迎来到用户管理系统");
            System.out.println("请选择操作 1登录 2注册 3忘记密码 (任意键)退出管理系统");
            Scanner sc=new Scanner(System.in);
            String choose=sc.next();

           switch(choose){case "1":{DengLu(list);
                    break;
                }
                case "2":{ZhuCe(list);
                    System.out.println("恭喜您,注册成功!");
                    break;
                }
                case "3":{forgetPassword(list);
                    break;
                }
                default:
                    break loop;
            }
        }

    }
    public static void DengLu(ArrayListlist){Scanner sc=new Scanner(System.in);
            System.out.println("请输入用户名:");
            String username=sc.next();
            boolean flag=isExist(list,username);
        loop:for (int i = 0; i< 3; i++) {User u=new User();
            if(flag){System.out.println("请输入密码");
                String password=sc.next();
                u.setPassword(password);
                //生成一个验证码
                String identifyNumber=DengLuYzm();
                System.out.println("自动生成的验证码为:"+identifyNumber);
                System.out.println("请输入验证码");
                String idNum=sc.next();
                if(identifyNumber.equals(idNum)){boolean flag1=passwordExist(list,u);
                    if(flag1){System.out.println("恭喜您,登录成功!");
                        break loop;
                    }else{System.out.println("密码不正确,您还有"+(3-i-1)+"次机会!" );
                    }
                }else{System.out.println("验证码输入不正确,您还有"+(3-i-1)+"次机会!!");
                }
            }else{System.out.println("用户名未注册,请先注册!");
                break loop;
            }
        }


    }

    public static String DengLuYzm(){//把大写字母,小写字母放到一个数组中
        char []arr=new char[52];
        for (int i = 0; i< arr.length; i++) {if(i<=25){//添加小写字母
                arr[i]=(char)(97+i);
            }else {//添加大写字母
                arr[i]=(char)(65+i-26);
            }
        }
        //长度为5 四位是字母,一位是数字
        Random r=new Random();
        String result="";
        for (int i = 0; i< 4; i++) {int j=r.nextInt(52);
            result=result+arr[j];
        }
        result=result+r.nextInt(10);
        //其中数字只有一维,位置随机
        //把字符串转换为字符数组,把最后一个数字元素与其他随机位置交换
        char []arr1=result.toCharArray();
        for (int i = 0; i< arr1.length; i++) {int j=r.nextInt(arr1.length-1);
            char temp=arr1[j];
            arr1[j]=arr1[arr1.length-1];
            arr1[arr1.length-1]=temp;
        }
        String res=new String(arr1);//从字符数组转换为字符
        return res;
    }
    public static void ZhuCe(ArrayListlist){User user=new User();
        String username=ZhuCeUserName(list);
        user.setUserName(username);

        String password=ZhuCePassword(list);
        user.setPassword(password);

        String idNumber=ZhuCeIdNumber(list);
        user.setIdNumber(idNumber);

        String phoneNumber=ZhuCePhoneNumber(list);
        user.setPhoneNumber(phoneNumber);

        list.add(user);
    }
    public static String ZhuCePhoneNumber(ArrayListlist){Scanner sc=new Scanner(System.in);
        String phoneNumber="";
        loop:while(true){System.out.println("请输入手机号码:");
            phoneNumber=sc.next();
            char []charPhoneNumber=phoneNumber.toCharArray();
            int count=0;
            if(phoneNumber.length()==11){if(charPhoneNumber[0]!='0'){for (int i = 0; i< charPhoneNumber.length; i++) {if(charPhoneNumber[i]>='0'&&charPhoneNumber[i]<='9'){   count++;
                        }
                    }
                    if(count==phoneNumber.length()){System.out.println("手机号码验证成功!");
                        break loop;
                    }else{System.out.println("手机号码不全为数字,请重新输入!");
                    }
                }else{System.out.println("手机号码第一位为0,不符合要求,请重新输入!");
                }
            }else{System.out.println("手机号码长度不符合要求(长度不为11),请重新输入!");
            }
        }
        return phoneNumber;
    }
    public static String ZhuCeIdNumber(ArrayListlist){Scanner sc=new Scanner(System.in);
        String idNumber="";
        loop:while(true){int count=0;
            System.out.println("请输入您的身份证号码:");
           idNumber=sc.next();
            if(idNumber.length()==18){  char []charIddNumber=  idNumber.toCharArray();
              if(charIddNumber[0]!='0'){  for (int i = 0; i< charIddNumber.length-1; i++) {  if(charIddNumber[i]>='0'&& charIddNumber[i]<='9'){  count++;
                      }
                  }
                  if(count==charIddNumber.length-1){  if((charIddNumber[17]>='0'&&charIddNumber[17]<='9')||charIddNumber[17]=='x'||charIddNumber[17]=='X'){  System.out.println("身份证验证成功!");
                          break loop;
                      }
                  }else{  System.out.println("前17为不全为数字,不符合要求,请重新输入!");
                  }
              }else {  System.out.println("身份证首位为0,不符合要求,请重新输入!");
              }
            }else{System.out.println("身份证长度不符合要求,请重新输入!");
            }
        }
        return idNumber;
    }
    public static String ZhuCePassword(ArrayListlist){Scanner sc=new Scanner(System.in);
        String password="";
        while(true){System.out.println("请设置您的密码:");
            String password1=sc.next();

            System.out.println("请再次输入您的密码:");
            String password2=sc.next();

            if(password1.equals(password2)){System.out.println("密码设置成功!" );
                password=password1;
                break;
            }
            else{System.out.println("两次密码设置不一致,请重新设置密码:");
            }
        }
        return password;
    }
    public static String ZhuCeUserName(ArrayListlist){User user=new User();
        Scanner sc=new Scanner(System.in);
        String username="";
        loop: while(true){System.out.println("=====注册开始=====");
            System.out.println("请输入用户名:");
            username=sc.next();
            char []charUserName=username.toCharArray();
            int count=0;
            int countLength=0;
            boolean flag=isExist(list,username);
            if(!flag){if(username.length()>=3&&username.length()<=15){for (int i = 0; i< charUserName.length; i++) {if((charUserName[i]>='a'&&charUserName[i]<='z')||(charUserName[i]>='A'&&charUserName[i]<='Z')||(charUserName[i]>='0'&&charUserName[i]<='9')){countLength++;
                        }
                        if((charUserName[i]>='a'&&charUserName[i]<='z')||(charUserName[i]>='A'&&charUserName[i]<='Z')){count++;
                        }
                        if(count>0&&(countLength== username.length())){System.out.println("用户名设置成功!");
                            user.setUserName(username);
                            break loop;
                        }
                    }
                    System.out.println("用户名不能是纯数字,请重新输入用户名进行注册!");
                }else{System.out.println("用户名长度不符合要求,请重新注册!");
                }
            }else{System.out.println("该用户名已存在,请重新注册!");
            }
        }
        return username;
    }
    public static void forgetPassword(ArrayListlist){Scanner sc=new Scanner(System.in);
        User u=new User();
        System.out.println("请输入用户名:");
        String username=sc.next();
        int index=getIndex(list,username);
        u.setUserName(username);
        boolean flag=isExist(list,username);
        if(flag){System.out.println("请输入身份证号码:");
            String idNumber=sc.next();
            u.setIdNumber(idNumber);

            System.out.println("请输入手机号码:");
            String phoneNumber=sc.next();
            u.setPhoneNumber(phoneNumber);

            boolean flag1=idNumberExist(list,u);
            boolean flag2=phoneNumberExist(list,u);
            if(flag1&&flag2){System.out.println("请输入密码,进行修改:");
                String newPassword=sc.next();
                u.setPassword(newPassword);
                list.set(index,u);
                System.out.println("密码修改成功!");
            }else{System.out.println("账号信息不匹配,修改失败!");
            }
        }else{System.out.println("用户名未注册!");
        }
    }
    public static boolean isExist(ArrayListlist,String userName){   return getIndex(list,userName)>=0;
    }
    public static int getIndex(ArrayListlist,String userName){for (int i = 0; i< list.size(); i++) {User user=list.get(i);
            String name=user.getUserName();
            if(name.equals(userName)){return i;
            }
        }
        return -1;
    }
    public static boolean passwordExist(ArrayListlist,User user){for (int i = 0; i< list.size(); i++) {User u=list.get(i);
            String password=u.getPassword();
            if(password.equals(user.getPassword())){return true;
            }
        }
        return false;
    }
    public static boolean idNumberExist(ArrayListlist,User user){for (int i = 0; i< list.size(); i++) {User u=list.get(i);
            String idNumber=u.getIdNumber();
            if(idNumber.equals(user.getIdNumber())){return true;
            }
        }
        return false;
    }
    public static boolean phoneNumberExist(ArrayListlist,User user){for (int i = 0; i< list.size(); i++) {User u=list.get(i);
            String phoneNumber=u.getPhoneNumber();
            if(phoneNumber.equals(user.getPhoneNumber())){return true;
            }
        }
        return false;
    }
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章题目:用户管理系统--JAVA-创新互联
URL链接:http://scyanting.com/article/igeis.html