一、課程內容回顧
1 控制台程序開發
2 變量與運算符
3 數據類型與數組
4 流程控制語句
二、任務
為某商場開發一套幸運抽獎系統,客戶首先注冊成為商場會員,會員登錄系統,參加抽獎活動
三、主要功能
注冊
登錄
幸運抽獎
四、綜合練習:幸運抽獎
階段1:實現菜單的輸出顯示
需求:
輸出菜單
選擇菜單編號,輸出菜單信息
如果編號選擇錯誤,輸出“您的輸入有誤!”
實現
public class LuckyNumber1 {
/**
* 幸運抽獎-實現基本邏輯的輸出顯示
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("*****歡迎進入獎客富翁系統*****");
System.out.println("\t1.注冊");
System.out.println("\t2.登錄");
System.out.println("\t3.抽獎");
System.out.println("***************************");
System.out.print("請選擇菜單:");
int choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("[獎客富翁系統 > 注冊]");
break;
case 2:
System.out.println("[獎客富翁系統 > 登錄]");
break;
case 3:
System.out.println("[獎客富翁系統 > 抽獎]");
break;
default:
System.out.println("[您的輸入有誤!]");
break;
}
}
}
階段2:實現循環執行功能
需求說明
系統詢問用戶是否繼續
如果用戶選擇繼續,則可以繼續選擇菜單,否則程序結束,退出系統
實現
public class LuckyNumber2 {
/**
* 幸運抽獎-循環執行
*/
public static void main(String[] args) {
String answer = "y"; // 標識是否繼續
Scanner input = new Scanner(System.in);
do {
System.out.println("*****歡迎進入獎客富翁系統*****");
System.out.println("\t1.注冊");
System.out.println("\t2.登錄");
System.out.println("\t3.抽獎");
System.out.println("***************************");
System.out.print("請選擇菜單:");
int choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("[獎客富翁系統 > 注冊]");
break;
case 2:
System.out.println("[獎客富翁系統 > 登錄]");
break;
case 3:
System.out.println("[獎客富翁系統 > 抽獎]");
break;
default:
System.out.println("[您的輸入有誤!]");
break;
}
System.out.print("繼續嗎?(y/n):");
answer = input.next();
System.out.println("");
} while ("y".equals(answer));
if ("n".equals(answer)) {
System.out.println("系統退出,謝謝使用!");
}
}
}
階段練習3:實現注冊
需求說明
輸入用戶名和密碼,系統產生4位隨機數作為卡號。
注冊成功,顯示注冊信息並修改注冊標識為true
提示
產生四位隨機數的代碼
int max = 9999;
int min = 1000;
cardNumber = (int)(Math.random()*(max-min)) +min;
實現
public class LuckyNumber3 {
/**
* 幸運抽獎-注冊
*/
public static void main(String[] args) {
String answer = "y"; // 標識是否繼續
String userName = ""; // 用戶名
String password = ""; // 密碼
int cardNumber = 0; // 卡號
boolean isRegister = false; // 標識是否注冊
int max = 9999;
int min = 1000;
Scanner input = new Scanner(System.in);
do {
System.out.println("*****歡迎進入獎客富翁系統*****");
System.out.println("\t1.注冊");
System.out.println("\t2.登錄");
System.out.println("\t3.抽獎");
System.out.println("***************************");
System.out.print("請選擇菜單:");
int choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("[獎客富翁系統 > 注冊]");
System.out.println("請填寫個人注冊信息:");
System.out.print("用戶名:");
userName = input.next();
System.out.print("密碼:");
password = input.next();
// 獲取4位隨機數作為卡號
cardNumber = (int)(Math.random()*(max-min))+min;
System.out.println("\n注冊成功,請記好您的會員卡號");
System.out.println("用戶名\t密碼\t會員卡號");
System.out.println(userName + "\t" + password + "\t" + cardNumber);
isRegister = true; // 注冊成功,標志位設置為true
break;
case 2:
System.out.println("[獎客富翁系統 > 登錄]");
break;
case 3:
System.out.println("[獎客富翁系統 > 抽獎]");
System.out.println("[獎客富翁系統 > 抽獎]");
break;
default:
System.out.println("[您的輸入有誤!]");
break;
}
System.out.print("繼續嗎?(y/n):");
answer = input.next();
System.out.println("");
} while ("y".equals(answer));
if ("n".equals(answer)) {
System.out.println("系統退出,謝謝使用!");
}
}
}
階段四:練習——實現登錄功能
需求說明:
輸入注冊時的用戶名和密碼,登錄成功,提示歡迎信息
如果用戶名和密碼輸入錯誤,提示用戶繼續輸入,最多有3次輸入機會

代碼
case 2:
System.out.println("[獎客富翁系統 > 登錄]");
if (isRegister) { // 判斷是否注冊
// 3次輸入機會
for (int i = 1; i <= 3; i++) {
System.out.print("請輸入用戶名:");
String inputName = input.next();
System.out.print("請輸入密碼:");
String inputPassword = input.next();
if (userName.equals(inputName) && password.equals(inputPassword)) {
System.out.println("\n歡迎您:" + userName);
isLogin = true; // 登錄成功,標志位設置為true
break;
} else if (i < 3) {
System.out.println("用戶名或密碼錯誤,還有" + (3 - i) + "次機會!");
} else {
System.out.println("您3次均輸入錯誤!");
}
}
} else {
System.out.println("請先注冊,再登錄!");
}
break;
階段5:練習——實現幸運抽獎
需求說明:
登錄成功后,用戶選擇幸運抽獎菜單,進入幸運抽獎功能
輸入會員卡號,系統生成5個4位隨機數作為幸運數字
如果會員卡號是其中之一,則成為本日幸運會員;否則不是幸運會員

代碼
case 3:
System.out.println("[獎客富翁系統 > 抽獎]");
if (!isLogin) { // 判斷是否登錄
System.out.println("請先登錄,再抽獎!");
System.out.println("繼續嗎?(y/n)");
answer = input.next();
} else {
//生成5個4位隨機數字,並保存在數組中
int[] luckynums = new int[5];
for(int i = 0; i < luckynums.length; i++){
luckynums[i] = (int)(Math.random()*(max-min))+min;
}
System.out.print("請輸入您的卡號:");
int yourcard = input.nextInt();
int i;
System.out.print("\n本日的幸運數字為:");
for (i = 0; i < luckynums.length; i++) {
System.out.print(luckynums[i] + " ");
}
for (i = 0; i < luckynums.length; i++) {
if (luckynums[i] == yourcard) {
System.out.println("\n恭喜!您是本日的幸運會員!");
break;
}
}
if (i == luckynums.length) {
System.out.println("\n抱歉!您不是本日的幸運會員!");
}
}
break;
