第十章 幸运抽奖
一、课程内容回顾
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; // 注册成功,标志位设置为truebreak;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; // 登录成功,标志位设置为truebreak;} 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;

浙公网安备 33010602011771号