模拟幸运抽奖案例:
功能:
用户注册:注册后随机生成4位数的卡号
登录:三次机会,失败一次扣一次机会,机会为0返回主操作
幸运抽奖:注册后生成的4位数卡号与随机生成的5个4位数卡号对比,相等是幸运卡号,否则不是
package learnday5;标签:抽奖,java,Scanner,int,System,----,println,input,out From: https://www.cnblogs.com/wang1999an/p/16769433.html
import java.util.Arrays;
import java.util.Scanner;
* @description:抽奖案例
public class Lucky {
//全局变量在类中,在方法外面,static修饰
//一个类里面很多方法可以用全局变量
//static Scanner input = new Scanner(System.in);
//用的最多的是参数传递
//可以加,根据个人情况
// 1.可以注册多个用户的信息(保存用户的信息)--->保证用户名的唯一性
//2.登录一次(切换账号登录)
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String answer;
boolean loginFlag = false;
boolean regFlag = false;
do {
System.out.print("1.注册"+"\t"+"2.登录"+"\t"+"3.抽奖");
System.out.println();
System.out.println("请选择:");
int choice = input.nextInt();
switch (choice){
case 1:
//调用了注册的方法
regFlag = register(input);
break;
case 2:
//调用登录的方法
loginFlag = login(input,regFlag);
break;
case 3:
lucky(input,loginFlag);
break;
}
System.out.println("是否继续?y/n");
answer = input.next();
} while ("y".equals(answer));
System.out.println("程序退出");
input.close();
}
public static void lucky(Scanner input,boolean loginFlag) {
//必须是登录成功之后做的
if(!loginFlag){
System.out.println("请先登录");
return;
}
System.out.println("请录入会员卡号:");
int cardNo = input.nextInt();
int[] luckyNum = new int[5];
for (int i = 0; i < 5; i++) {
int num = (int)(Math.random() * 9000 + 1000);
luckyNum[i] = num;
}
System.out.println("今日幸运卡号:"+ Arrays.toString(luckyNum));
for (int num : luckyNum) {
if(cardNo == num){
System.out.println(cardNo+"是本日幸运会员");
return;
}
}
System.out.println(cardNo+"不是本日幸运会员");
}
//注册时候的数据/全局变量
public static String name;
public static String pass;
public static boolean login(Scanner input,boolean regFlag) {
if(!regFlag){
System.out.println("请先注册");
return false;
}
int count = 3;
do {
count--;
System.out.println("登录:用户名");
String loginName = input.next();
System.out.println("登录:密码");
String loginPass = input.next();
if(loginName.equals(name)||loginPass.equals(pass)){
break;
}
if(count == 0){
System.out.println("机会使用完毕,返回主界面");
return false;
}
System.out.println("用户名或密码不符,还剩下"+count+"次机会");
} while (true);
System.out.println("登陆成功,欢迎您"+name);
//修改登录成功的标识
return true;
}
public static boolean register(Scanner input) {
//一个方法相使用另一个方法的变量
//1.参数传递 2.全局变量,对所有方法都有效
System.out.println("注册:用户名");
name = input.next();
System.out.println("注册:密码");
pass = input.next();
//随即卡号:4位数
//Math.random()生成的随机数0.0-1.0(包头不包尾)
int cardNo = (int)(Math.random() * 9000 + 1000);
System.out.println("注册成功");
System.out.println("用户名\t密码\t会员卡号");
System.out.println(name+"\t"+pass+"\t"+cardNo);
//修改注册表示为ture
return true;
}
}