zoukankan      html  css  js  c++  java
  • 重写登录注册功能

     1 /**
     2  * @author Administrator
     3  *    登录信息    
     4  */
     5 public class UserLogin {
     6     private String UserName;
     7     private String PassWord;
     8     
     9     
    10     public UserLogin() {
    11         super();
    12     }
    13     public UserLogin(String userName, String passWord) {
    14         super();
    15         UserName = userName;
    16         PassWord = passWord;
    17     }
    18     public String getUserName() {
    19         return UserName;
    20     }
    21     public void setUserName(String userName) {
    22         UserName = userName;
    23     }
    24     public String getPassWord() {
    25         return PassWord;
    26     }
    27     public void setPassWord(String passWord) {
    28         PassWord = passWord;
    29     }
    30 }
    封装登录信息
      1 import java.util.HashMap;
      2 import java.util.Map;
      3 import java.util.Set;
      4 
      5 /**
      6  * @author Administrator
      7  *    初始化登录信息以及编写注册和登录验证功能
      8  */
      9 public class UserInit {
     10     static Map<String, UserLogin> map;
     11     //静态代码块初始化用户信息
     12     static {
     13         map = new HashMap<>();
     14         UserLogin userLogin1 = new UserLogin("Dean", "123456");
     15         UserLogin userLogin2 = new UserLogin("Tom", "123456");
     16         UserLogin userLogin3 = new UserLogin("Jack", "123456");
     17         map.put(userLogin1.getUserName(), userLogin1);
     18         map.put(userLogin2.getUserName(), userLogin2);
     19         map.put(userLogin3.getUserName(), userLogin3);
     20     }
     21     
     22     //注册验证功能
     23     public boolean Judge(String name,String password,String apassword) {
     24         Set<String> keys = map.keySet();
     25         for(String s:keys) {
     26             if(map.get(s).getUserName().equals(name)) {
     27                 System.out.println("用户名已存在!");
     28                 return false;
     29             }
     30         }
     31         if(password.equals(apassword)) {
     32             System.out.println("注册成功!");
     33             return true;
     34         }else {
     35             System.out.println("两次输入密码不一致,请重新输入!");
     36             return false;
     37         }
     38         
     39     }
     40     
     41     
     42     //登录验证功能
     43     public int login(String name,String password,String code,String userCode) {
     44         Set<String> keys = map.keySet();
     45         for(String s:keys) {
     46             if(map.get(s).getUserName().equals(name)) {
     47                 int i = 1;
     48                 do{
     49                     if((map.get(s).getPassWord().equals(password))) {
     50                         return verify(code,userCode);
     51                     }else {
     52                         if(i == 1) {
     53                             System.out.println("用户名或密码不正确!请重新输入(您还有两次输入机会):");
     54                         }else {
     55                             System.out.println("用户名或密码不正确!请重新输入(这是您最后一次输入机会):");
     56                         }
     57                         password = LoginMap.input.next();
     58                         System.out.println("请输入下方验证码(不区分大小写):");
     59                         code = UserInit.getVerify(6);
     60                         System.out.println(code);
     61                         userCode = LoginMap.input.next();
     62                         if((map.get(s).getPassWord().equals(password))) {
     63                             return verify(code,userCode);
     64                         }
     65                         i++;
     66                     }
     67                     if(i>=3) {
     68                         System.out.println("您连续输入三次密码错误,账号已被冻结!请一天后在尝试!");
     69                         return 0;
     70                     }
     71                 }while(true);
     72             }
     73         }
     74         System.out.println("用户不存在,请重试输入!");
     75         return 2;
     76     }
     77     
     78     //生成验证码
     79     public static String getVerify(int length){
     80         String code = "";
     81         String str = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASFGHJKLZXCVBNM";
     82         String[] strs = str.split("");
     83         for(int i = 0;i<length;i++){
     84             code += strs[(int)(Math.random()*strs.length)];
     85         }
     86         return code;
     87     }
     88     
     89     //校验验证码
     90     public static int verify(String code,String userCode) {
     91         do {
     92             if(code.equalsIgnoreCase(userCode)) {
     93                 System.out.println("登录成功!");
     94                 return 0;
     95             }else {
     96                 System.out.println("验证码错误,请重新输入:");
     97                 code = getVerify(6);
     98                 System.out.println(code);
     99                 userCode = LoginMap.input.next();
    100             }    
    101         }while(true);
    102     }
    103 }
    初始化登录信息以及编写注册和登录验证功能
     1 import java.util.Scanner;
     2 
     3 /**
     4  * @author Administrator
     5  *    用户操作界面
     6  */
     7 public class LoginMap {
     8     static Scanner input = new Scanner(System.in);
     9     UserInit userinit = new UserInit();
    10     boolean flag;
    11     public static void main(String[] args) {
    12         test:do {
    13             LoginMap login = new LoginMap();
    14             System.out.println("请选择操作(按其他键退出系统):1、登录	2、注册");
    15             int i = input.nextInt();
    16             switch (i) {
    17             //登录
    18             case 1:
    19                 login.userLogin();
    20                 System.out.println("欢迎登录系统!");
    21                 break test;
    22             //注册
    23             case 2:
    24                 login.userEnrol();
    25                 break;
    26             default:
    27                 break test;
    28             }
    29         }while(true);
    30     System.out.println("感谢使用!");
    31     }
    32     
    33     //注册
    34     public void userEnrol() {
    35         
    36         do {
    37             System.out.println("——————————用户注册——————————");
    38             System.out.println("请输入注册账号名:");
    39             String name = input.next();
    40             System.out.println("请输入登录密码:");
    41             String password = input.next();
    42             System.out.println("请再次确认密码:");
    43             String apassword = input.next();
    44             if((password.length()<3) || (password.length()<6) ) {
    45                 System.out.println("用户名长度不能小于3,密码长度不能小于6!");
    46                 flag = false;
    47             }else {
    48                 flag = userinit.Judge(name, password, apassword);
    49                 if(flag) {
    50                     UserInit.map.put(name, new UserLogin(name, password));
    51                 }
    52             }
    53         }while(!flag);
    54         
    55     }
    56     
    57     //登录
    58     public void userLogin() {
    59         int i = -1;
    60         test:do {
    61             System.out.println("——————————用户登录——————————");
    62             System.out.println("请输入登录账号名:");
    63             String name = input.next();
    64             System.out.println("请输入登录密码:");
    65             String password = input.next();
    66             System.out.println("请输入下方验证码(不区分大小写):");
    67             String code = UserInit.getVerify(6);
    68             System.out.println(code);
    69             String userCode = input.next();
    70             i = userinit.login(name, password,code,userCode);
    71             if(i==0) {
    72                 break test; 
    73             }
    74         }while(i==2);
    75         
    76     }
    77 }
    用户操作界面

    测试运行结果:

    登录测试:

    三次输入密码错误,冻结账号,强制退出!

     登录成功:

     

    注册用户以及登录:

  • 相关阅读:
    js正则匹配以某字符串开始字符串
    vue+vue-resource+vue-cookie随笔
    [考试反思]1001csp-s模拟测试(b):逃离
    [考试反思]0929csp-s模拟测试55:消逝
    [考试反思]0928csp-s模拟测试54:转瞬
    [考试反思]0927csp-s模拟测试53:沦陷
    [考试反思]0926csp-s模拟测试52:审判
    [考试反思]0924csp-s模拟测试51:破碎
    Function:凸包,决策单调性,题意转化,单峰函数三分,离线处理
    土兵占领:二分答案,最大流
  • 原文地址:https://www.cnblogs.com/Dean-0/p/11268576.html
Copyright © 2011-2022 走看看