package com.Summer_0421.cn; import java.util.Arrays; import java.util.Scanner; /** * @author Summer * 使用java面向對象之前的知識 完成規定的功能; * 附加要求 : * 1. 可以注冊多個用戶 * 2. 每個注冊的用戶都可以登錄 * 3. 注冊的用戶名是唯一的 * 4. 已經登錄的用戶 必須注銷登錄才可以繼續登錄 */ public class Test05 { static Scanner sc = new Scanner(System.in); //用戶名數組,用來存儲用戶名 static int [] usernames = new int[5]; //密碼數組,用來存儲所用的密碼 static int [] passwords = new int[5]; //數組元素的真實數量 static int count =0; public static void main(String[] args) { int input = 0; while (input!=4) { menu(); input = sc.nextInt(); switch (input) { case 1: System.out.println("1.歡迎注冊用戶賬號"); resign();//注冊用戶名方法 break; case 2: System.out.println("2.歡迎登錄用戶賬號"); login(); break; case 3: System.out.println("3.注銷用戶賬號成功"); break; case 4: System.out.println("4.退出成功!"); break; case 5: System.out.println("5.修改賬戶密碼"); change(); break; default: System.out.println("請輸入有效的數字提示"); break; } } } public static void change() { System.out.println("請輸入用戶名:"); int username = sc.nextInt(); System.out.println("請輸入密碼:"); int password = sc.nextInt(); int index = check(username); //判斷用戶名是否存在,-1則為不存在 if (index ==-1) { System.out.println("用戶名不存在,請注冊一個用戶"); return; } System.out.println("當前用戶密碼為"+password); System.out.println("請輸入您要修改的密碼:"); passwords[index] = sc.nextInt(); if (passwords[index]==password) { System.out.println("此密碼與當前密碼一致,請重新輸入"); change(); }else{ System.out.println("修改密碼成功!"); } } public static void login() { System.out.println("請輸入用戶名:"); int username = sc.nextInt(); System.out.println("請輸入密碼:"); int password = sc.nextInt(); int index = check(username); //判斷用戶名是否存在,-1則為不存在 if (index ==-1) { System.out.println("用戶名不存在,請重新輸入一個"); return; } if (usernames[index]==username&&passwords[index]==password) { System.out.println("登錄成功"); } else { System.out.println("用戶名或密碼輸入錯誤,請重新輸入"); } } /** * 用戶注冊 * */ public static void resign() { System.out.println("請輸入用戶名:"); int username = sc.nextInt(); System.out.println("請輸入密碼:"); int password = sc.nextInt(); //判斷是否已經被注冊 int index = check(username); if (index!=-1) { System.out.println("用戶已經被注冊,請重新輸入"); return; } //存入數組 usernames[count]=username; passwords[count]=password; //數組元素累加 count++; System.out.println("用戶名"+username +"注冊成功"+"\t數組的數量為"+count); //用戶名密碼數量超出數組的范圍 (擴容) if (count == usernames.length) { usernames = Arrays.copyOf(usernames, usernames.length*2); passwords = Arrays.copyOf(passwords, passwords.length*2); } System.out.println("擴容后的長度為"+usernames.length); } /** * 判斷用戶是否已經注冊或者登錄 * count真實數量來進行判斷 * 如果用戶名存在,返回當前用戶名的下標 * 如果不存在,返回-1 */ public static int check(int name){ for (int i = 0; i < count; i++) { if (usernames[i]==name) { return i; } } return -1; } /** * 登錄菜單 */ public static void menu() { System.out.println("....歡迎來到登錄系統...."); System.out.println("___________________"); System.out.println("1.歡迎注冊用戶賬號"); System.out.println("2.歡迎登錄用戶賬號"); System.out.println("3.注銷用戶賬號成功"); System.out.println("4.退出成功!"); System.out.println("5.修改密碼"); } }
