第十章 幸運抽獎


一、課程內容回顧

1 控制台程序開發

2 變量與運算符

3 數據類型與數組

4 流程控制語句

二、任務

  • 為某商場開發一套幸運抽獎系統,客戶首先注冊成為商場會員,會員登錄系統,參加抽獎活動

三、主要功能

  • 注冊

  • 登錄

  • 幸運抽獎 

四、綜合練習:幸運抽獎 

階段1:實現菜單的輸出顯示 

需求:

  • 輸出菜單

  • 選擇菜單編號,輸出菜單信息

  • 如果編號選擇錯誤,輸出“您的輸入有誤!”

        

實現

  
  
  
          
  1. public class LuckyNumber1 {
  2. /**
  3. * 幸運抽獎-實現基本邏輯的輸出顯示
  4. */
  5. public static void main(String[] args) {
  6. Scanner input = new Scanner(System.in);
  7. System.out.println("*****歡迎進入獎客富翁系統*****");
  8. System.out.println("\t1.注冊");
  9. System.out.println("\t2.登錄");
  10. System.out.println("\t3.抽獎");
  11. System.out.println("***************************");
  12. System.out.print("請選擇菜單:");
  13. int choice = input.nextInt();
  14. switch (choice) {
  15. case 1:
  16. System.out.println("[獎客富翁系統 > 注冊]");
  17. break;
  18. case 2:
  19. System.out.println("[獎客富翁系統 > 登錄]");
  20. break;
  21. case 3:
  22. System.out.println("[獎客富翁系統 > 抽獎]");
  23. break;
  24. default:
  25. System.out.println("[您的輸入有誤!]");
  26. break;
  27. }
  28. }
  29. }

階段2:實現循環執行功能 

需求說明

  • 系統詢問用戶是否繼續

  • 如果用戶選擇繼續,則可以繼續選擇菜單,否則程序結束,退出系統

        

實現

  
  
  
          
  1. public class LuckyNumber2 {
  2. /**
  3. * 幸運抽獎-循環執行
  4. */
  5. public static void main(String[] args) {
  6. String answer = "y"; // 標識是否繼續
  7. Scanner input = new Scanner(System.in);

  8. do {

  9. System.out.println("*****歡迎進入獎客富翁系統*****");
  10. System.out.println("\t1.注冊");
  11. System.out.println("\t2.登錄");
  12. System.out.println("\t3.抽獎");
  13. System.out.println("***************************");
  14. System.out.print("請選擇菜單:");
  15. int choice = input.nextInt();
  16. switch (choice) {
  17. case 1:
  18. System.out.println("[獎客富翁系統 > 注冊]");
  19. break;
  20. case 2:
  21. System.out.println("[獎客富翁系統 > 登錄]");
  22. break;
  23. case 3:
  24. System.out.println("[獎客富翁系統 > 抽獎]");
  25. break;
  26. default:
  27. System.out.println("[您的輸入有誤!]");
  28. break;
  29. }
  30. System.out.print("繼續嗎?(y/n):");
  31. answer = input.next();
  32.                        System.out.println("");
  33. } while ("y".equals(answer));
  34. if ("n".equals(answer)) {
  35. System.out.println("系統退出,謝謝使用!");
  36. }
  37. }
  38. }

階段練習3:實現注冊

需求說明

  • 輸入用戶名和密碼,系統產生4位隨機數作為卡號。

  • 注冊成功,顯示注冊信息並修改注冊標識為true

提示

    產生四位隨機數的代碼

  
  
  
          
  1. int max = 9999;
  2. int min = 1000;
  3. cardNumber = (int)(Math.random()*(max-min)) +min;

實現

  
  
  
          
  1. public class LuckyNumber3 {
  2. /**
  3. * 幸運抽獎-注冊
  4. */
  5. public static void main(String[] args) {
  6. String answer = "y"; // 標識是否繼續
  7. String userName = ""; // 用戶名
  8. String password = ""; // 密碼
  9. int cardNumber = 0; // 卡號
  10. boolean isRegister = false; // 標識是否注冊
  11. int max = 9999;
  12. int min = 1000;
  13. Scanner input = new Scanner(System.in);
  14. do {
  15. System.out.println("*****歡迎進入獎客富翁系統*****");
  16. System.out.println("\t1.注冊");
  17. System.out.println("\t2.登錄");
  18. System.out.println("\t3.抽獎");
  19. System.out.println("***************************");
  20. System.out.print("請選擇菜單:");
  21. int choice = input.nextInt();
  22. switch (choice) {
  23. case 1:
  24. System.out.println("[獎客富翁系統 > 注冊]");
  25. System.out.println("請填寫個人注冊信息:");
  26. System.out.print("用戶名:");
  27. userName = input.next();
  28. System.out.print("密碼:");
  29. password = input.next();
  30. // 獲取4位隨機數作為卡號
  31. cardNumber = (int)(Math.random()*(max-min))+min;
  32. System.out.println("\n注冊成功,請記好您的會員卡號");
  33. System.out.println("用戶名\t密碼\t會員卡號");
  34. System.out.println(userName + "\t" + password + "\t" + cardNumber);
  35. isRegister = true; // 注冊成功,標志位設置為true
  36. break;
  37. case 2:
  38. System.out.println("[獎客富翁系統 > 登錄]");
  39. break;
  40. case 3:
  41. System.out.println("[獎客富翁系統 > 抽獎]");
  42. System.out.println("[獎客富翁系統 > 抽獎]");
  43. break;
  44. default:
  45. System.out.println("[您的輸入有誤!]");
  46. break;
  47. }
  48. System.out.print("繼續嗎?(y/n):");
  49. answer = input.next();
  50. System.out.println("");
  51. } while ("y".equals(answer));
  52. if ("n".equals(answer)) {
  53. System.out.println("系統退出,謝謝使用!");
  54. }
  55. }
  56. }

階段四:練習——實現登錄功能

需求說明:

  • 輸入注冊時的用戶名和密碼,登錄成功,提示歡迎信息

  • 如果用戶名和密碼輸入錯誤,提示用戶繼續輸入,最多有3次輸入機會 

代碼

  
  
  
          
  1. case 2:
  2. System.out.println("[獎客富翁系統 > 登錄]");
  3. if (isRegister) { // 判斷是否注冊
  4. // 3次輸入機會
  5. for (int i = 1; i <= 3; i++) {
  6. System.out.print("請輸入用戶名:");
  7. String inputName = input.next();
  8. System.out.print("請輸入密碼:");
  9. String inputPassword = input.next();
  10. if (userName.equals(inputName) && password.equals(inputPassword)) {
  11. System.out.println("\n歡迎您:" + userName);
  12. isLogin = true; // 登錄成功,標志位設置為true
  13. break;
  14. } else if (i < 3) {
  15. System.out.println("用戶名或密碼錯誤,還有" + (3 - i) + "次機會!");
  16. } else {
  17. System.out.println("您3次均輸入錯誤!");
  18. }
  19. }
  20. } else {
  21. System.out.println("請先注冊,再登錄!");
  22. }
  23. break;

階段5:練習——實現幸運抽獎 

需求說明:

  • 登錄成功后,用戶選擇幸運抽獎菜單,進入幸運抽獎功能

  • 輸入會員卡號,系統生成5個4位隨機數作為幸運數字

  • 如果會員卡號是其中之一,則成為本日幸運會員;否則不是幸運會員 

代碼

  
  
  
          
  1. case 3:
  2. System.out.println("[獎客富翁系統 > 抽獎]");
  3. if (!isLogin) { // 判斷是否登錄
  4. System.out.println("請先登錄,再抽獎!");
  5. System.out.println("繼續嗎?(y/n)");
  6. answer = input.next();
  7. } else {
  8. //生成5個4位隨機數字,並保存在數組中
  9. int[] luckynums = new int[5];
  10.    for(int i = 0; i < luckynums.length; i++){
  11.     luckynums[i] = (int)(Math.random()*(max-min))+min;
  12.    }
  13. System.out.print("請輸入您的卡號:");
  14. int yourcard = input.nextInt();
  15. int i;
  16. System.out.print("\n本日的幸運數字為:");
  17. for (i = 0; i < luckynums.length; i++) {
  18. System.out.print(luckynums[i] + "  ");
  19. }
  20. for (i = 0; i < luckynums.length; i++) {
  21. if (luckynums[i] == yourcard) {
  22. System.out.println("\n恭喜!您是本日的幸運會員!");
  23. break;
  24. }
  25. }
  26. if (i == luckynums.length) {
  27. System.out.println("\n抱歉!您不是本日的幸運會員!");
  28. }
  29. }
  30. break;














免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM