登陸註冊含驗證碼

項目:用戶登陸和註冊(含驗證碼)

第一步:建立一個對應的用戶模型類java

    用戶的對應模型類:User數組

              屬性:帳號:usernamedom

              屬性:密碼:password函數

              屬性:聯繫方式:phoneNumber工具

              屬性:郵箱:email測試

 1 package cn.aurn.demo02;
 2 /*
 3  *     用戶模型類
 4  */
 5 public class User {
 6     //屬性
 7     private String username;//帳號
 8     private String password;//密碼
 9     private String phoneNumber;//手機號
10     private String email;//郵件
11     
12     //有參構造方法
13     public User(String username, String password, String phoneNumber, String email) {
14         this.username = username;
15         this.password = password;
16         this.phoneNumber = phoneNumber;
17         this.email = email;
18     }
19 
20     //set和get方法
21     public String getUsername() {
22         return username;
23     }
24 
25     public void setUsername(String username) {
26         this.username = username;
27     }
28 
29     public String getPassword() {
30         return password;
31     }
32 
33     public void setPassword(String password) {
34         this.password = password;
35     }
36 
37     public String getPhoneNumber() {
38         return phoneNumber;
39     }
40 
41     public void setPhoneNumber(String phoneNumber) {
42         this.phoneNumber = phoneNumber;
43     }
44 
45     public String getEmail() {
46         return email;
47     }
48 
49     public void setEmail(String email) {
50         this.email = email;
51     }
52     
53 
54 }

 

第二步:測試類:UserTestthis

    提示用戶選擇操做,登陸以前要判斷存儲用戶信息的集合若是爲空,那就提示用戶當前沒有帳戶,須要先註冊。spa

 1 package cn.aurn.demo02;
 2 /**
 3  *     用戶操做測試類
 4  */
 5 import java.util.ArrayList;
 6 import java.util.Scanner;
 7 
 8 public class UserTest {
 9     
10     //用戶輸入對象
11     public static Scanner scanner = new Scanner(System.in);
12     
13     //集合存儲用戶信息
14     public static ArrayList<User> users = new ArrayList<User>();
15     
16     //驗證碼工具對象
17     public static  CodeUtils codes = new CodeUtils(); 
18     
19     //主函數
20     public static void main(String[] args) {
21         //用戶提示
22         System.out.println("*****歡迎來到打死你戰隊****** ");
23         
24         while(true) {
25             System.out.println("請進行以下操做:一、登陸  二、註冊");
26             //用戶輸入操做
27             String flag = scanner.nextLine();
28             //判斷用戶操做
29             if (flag.equals("1")) {
30                 //登陸,判斷集合中是否有用戶
31                 if (users.isEmpty()) {
32                     System.out.println("當前沒有用戶信息,請先註冊!");
33                 }else {
34                     login();
35                 }
36             }else if (flag.equals("2")) {
37                 regist();
38             }
39         }
40     }

 

第三步:驗證碼工具類:CodeUtilscode

    利用隨機數生成6位驗證碼(註冊時用)和4位驗證碼(登陸時用)。對象

 1 package cn.aurn.demo02;
 2 
 3 import java.util.Random;
 4 
 5 /**
 6  * 驗證碼生成工具類
 7  */
 8 public class CodeUtils {
 9 
10     //建立一個數組對象
11     private char[] codes = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
12                     '0','1','2','3','4','5','6','7','8','9',
13                     'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
14 
15     //建立一個隨機數對象
16     private Random random = new Random();
17     
18     /*
19      * 隨機生成4位驗證碼
20      */
21     public String getStringCode4() {
22         //空字符串
23         String code = "";
24         //循環生成4位數驗證碼
25         for(int i = 0; i < 4; i++) {
26             //每循環一次,隨機拿一個驗證碼
27             int index = random.nextInt(codes.length);
28             //每拿到一個,就添加到空的字符串中拼接
29             code += codes[index];
30         }
31         return code;
32     }
33     
34     /*
35      * 隨機生成6位數驗證碼
36      */
37     public String getStringCode6() {
38         //空字符串
39         String code = "";
40         //循環生成4位數驗證碼
41         for(int i = 0; i < 6; i++) {
42             //每循環一次,我就隨機拿一個驗證碼
43             int index = random.nextInt(codes.length);
44             //每拿到一個,就添加到空的字符串中拼接
45             code += codes[index];
46         }
47         return code;
48     }
49 }

 

第四步:註冊方法:regist()

    一、提示用戶,輸入帳號,密碼,確認密碼,註冊手機號,驗證碼。

    二、設置兩個開關:帳號是否重複:isFlag(默認是關的false,即帳號不重複);

              註冊是否經過:isRegist(默認是開的true,即註冊經過)。

    三、先判斷用戶驗證碼輸入的是否正確,不正確就關閉isRegist開關,不進行後面的,提醒用戶從新再來。

    四、再判斷用戶輸入的密碼與確認密碼是否同樣,不同就關閉isRegist開關,不註冊,提示用戶從新再來。

    五、for循環存儲用戶信息的集合,判斷用戶輸入的帳號是否已經存在在集合中,若是存在打開isFlag開關,關閉isRegist開關,提示用戶當前帳號已存在,從新輸入, 

      跳出循環; 若是不存在,就直接註冊,將用戶輸入的信息存儲在集合中。

 1     /*
 2      *     註冊方法
 3      */
 4     private static void regist() {
 5         //提示用戶
 6         //帳號
 7         System.out.println("請輸入您要註冊的帳號:");
 8         String username = scanner.nextLine();
 9         
10         //密碼
11         System.out.println("請輸入您要註冊的密碼:");
12         String password = scanner.nextLine();
13         
14         //確認密碼
15         System.out.println("請輸入您要註冊的確認密碼:");
16         String repassword = scanner.nextLine();
17         
18         //手機號
19         System.out.println("請輸入您要註冊的手機號:");
20         String phoneNumber = scanner.nextLine();
21         
22         //郵箱
23         System.out.println("請輸入您要註冊的郵箱:");
24         String email = scanner.nextLine();
25         
26         //生成6位驗證碼
27         String code = codes.getStringCode6();
28         System.out.println("請輸入驗證碼信息(區分大小寫):"+code);
29         String code1 = scanner.nextLine();
30         
31         //帳戶是否重複開關
32         boolean isFlag = false;//默認是關閉的,即帳號不重複
33         
34         //是否經過註冊開關
35         boolean isRegist = true;//默認是打開的,即經過註冊
36         
37         //判斷
38         if (code1.equals(code)) {
39             //驗證碼正確
40             if (password.equals(repassword)) {
41                 //密碼與確認密碼正確
42                 //循環遍歷帳戶信息存儲集合
43                 for (User user : users) {
44                     //判斷是否已經註冊過了
45                     if (user.getUsername().equals(username)) {
46                         //用戶輸入帳號已註冊存在
47                         //打開重複開關
48                         isFlag = true;
49                         //關閉註冊
50                         isRegist = false;
51                         //跳出循環
52                         break;
53                     }
54                 }
55             }else {
56                 System.out.println("確認密碼與密碼不一致,請從新操做!");
57                 //關閉註冊按鈕
58                 isRegist = false;
59             }
60         }else {
61             System.out.println("驗證碼輸入錯誤,請從新操做!");
62             //關閉註冊按鈕
63             isRegist = false;
64         }
65         //帳號已註冊存在
66         if (isFlag) {
67             System.out.println("很遺憾,您輸入的帳號已註冊過,請從新輸入!");
68         }else {
69             //帳號不存在,註冊
70             if (isRegist) {
71                 User user = new User(username, repassword, phoneNumber, email);
72                 //添加信息進集合
73                 users.add(user);
74                 //提示用戶
75                 System.out.println("恭喜您,註冊成功!");
76             }
77         }
78     }

 

第五步:登陸方法:login()

    一、提示用戶,輸入帳號,密碼,驗證碼。

    二、設置一個開關:是否登陸成功:isLogin(默認是關閉的false)。

    三、先判斷用戶輸入的驗證碼是否正確,若是不正確,提示用戶驗證碼輸入錯誤,請從新操做。

    四、for循環遍歷用戶信息集合,而後判斷用戶輸入的帳號和密碼與集合中的帳號與密碼是否同樣,若是同樣,打開IsLogin開關,提示用戶登陸成功,退出循環;

       不然,提示用戶的帳號或密碼輸入錯誤,請從新操做。

 1     /*
 2      *     登陸方法
 3      */
 4     private static void login() {
 5         //提示用戶
 6         // 帳號
 7         System.out.println("請輸入登陸的帳號:");
 8         String username = scanner.nextLine();
 9 
10         // 密碼
11         System.out.println("請輸入登陸的密碼:");
12         String password = scanner.nextLine();
13 
14         // 生成4位驗證碼
15         String code = codes.getStringCode4();
16         System.out.println("請輸入驗證碼信息(區分大小寫):" + code);
17         String code1 = scanner.nextLine();
18         
19         //設置登陸成功開關
20         boolean isLogin = false;//默認關閉的,即登錄失敗
21         
22         //判斷驗證碼
23         if (code1.equals(code)) {
24             //驗證碼正確
25             //遍歷集合
26             for (User user : users) {
27                 //判斷輸入的帳號與密碼與註冊的信息進行匹配
28                 if (user.getUsername().equals(username) && user.getPassword().equals(password)) {
29                     //登陸成功
30                     isLogin = true;
31                     System.out.println("登錄成功!");
32                     //退出循環
33                     break;
34                 }
35             }
36             //帳戶密碼輸入錯誤
37             if (!isLogin) {
38                 System.out.println("帳號或密碼輸入錯誤,請從新登陸");
39             }
40         }else {
41             System.out.println("驗證碼輸入錯誤,請從新操做!");
42         }
43     }                            
相關文章
相關標籤/搜索