第十章 幸运抽奖

一、课程内容回顾

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(" 1.注册");
  9. System.out.println(" 2.登录");
  10. System.out.println(" 3.抽奖");
  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(" 1.注册");
  11. System.out.println(" 2.登录");
  12. System.out.println(" 3.抽奖");
  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(" 1.注册");
  17. System.out.println(" 2.登录");
  18. System.out.println(" 3.抽奖");
  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(" 注册成功,请记好您的会员卡号");
  33. System.out.println("用户名 密码 会员卡号");
  34. System.out.println(userName + " " + password + " " + 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(" 欢迎您:" + 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(" 本日的幸运数字为:");
  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(" 恭喜!您是本日的幸运会员!");
  23. break;
  24. }
  25. }
  26. if (i == luckynums.length) {
  27. System.out.println(" 抱歉!您不是本日的幸运会员!");
  28. }
  29. }
  30. break;













原文地址:https://www.cnblogs.com/imentors/p/4693682.html