(1)练习------幸运抽奖

public class Lucky {
public static void main(String[] args) {
startGame();
}
private static void startGame() {
Scanner input = new Scanner(System.in);
String answer;
boolean regFlag = false; //注册标志
boolean loginFlag = false; //登录标志
do {
System.out.println("\n*********** 欢迎进入大富翁抽奖系统 ***********\n");
System.out.println(" 1.注 册 ");
System.out.println(" 2.登 录 ");
System.out.println(" 3.抽 奖 ");
System.out.println(" 5.查询所有的会员信息 ");
System.out.println(" 4.退 出 \n");
System.out.println("*********************************************\n");
System.out.print("请选择要进行的操作(1-4): ");
int choice = input.nextInt();
switch (choice) {
case 1:
regFlag = register(input); //实际参数用的input,利用参数传递,为了用第一句话
break;
case 2:
loginFlag = login(input, regFlag, loginFlag);
break;
case 3:
lucky(input, loginFlag);
break;
case 4:
System.out.println("程序退出");
input.close(); //程序退出也要释放资源
return;
}
System.out.println("是否继续?y/n");
answer = input.next();
} while ("y".equals(answer));
System.out.println("程序结束");
input.close();
}
private static void lucky(Scanner input, boolean loginFlag) {
if (!loginFlag) {
System.out.println("请先登录");
return;
}
System.out.println("录入会员卡号:");
int memberNo = input.nextInt();
int[] array = new int[5];
for (int i = 0; i < 5; i++) {
array[i] = (int) (Math.random() * 9000 + 1000);
}
System.out.println("本日的幸运卡号:" + Arrays.toString(array));
for (int num : array) {
if (num == memberNo) {
System.out.println(memberNo + "是幸运会员");
return;
}
}
System.out.println(memberNo + "不是幸运会员");
}
private static boolean login(Scanner input, boolean regFlag, boolean loginFlag) {
//已经成功地注册数据
if (!regFlag) {
System.out.println("请先注册");
return false;
}
if (loginFlag) {
System.out.println("您已经成功登陆过了,无需重复登录");
System.out.println("是否切换账号登录y/n");
String s = input.next();
if ("n".equals(s)) {
return true;
}
}
int count = 3;
String loginName;
do {
count--;
System.out.println("请填写登录信息 ");
System.out.print("请输入用户名: ");
loginName = input.next();
System.out.print("请输入密码: ");
String loginPass = input.next();
//比较----> 与注册时候的信息比较(信息存储数组中了)
for (int index = 0; index <= totalCount; index++) {
if (loginName.equals(nameArray[index]) && loginPass.equals(passArray[index])) {
System.out.println("欢迎你:" + loginName);
return true;
}
}
if (count == 0) {
System.out.println("机会使用完毕,返回主页面");
return false;
}
System.out.println("登录失败,还剩下" + count + "次机会,请重新登录!");
} while (true);
}
public static int totalCount = 0;//维护的数组中有小的元素个数 以及一个人所有信息的索引位置
public static String[] nameArray = new String[10];
public static String[] passArray = new String[10];
public static int[] randomNoArray = new int[10];
//在一个方法中: 如何获得另外一个方法里面的变量?
// 1. 参数传递
// 2. 全局变量: 放在方法之外 所有的方法都可以访问全局变量
private static boolean register(Scanner input) {
System.out.println("请填写个人注册信息 ");
System.out.print("请输入用户名: ");
String name = input.next();
System.out.print("请输入密码: ");
String pass = input.next();
int randomNo = (int) (Math.random() * 9000 + 1000);
int length = nameArray.length;
if (totalCount + 1 >= length) {
//扩容
nameArray = Arrays.copyOf(nameArray, 2 * totalCount); //存放用户名的数组扩容
passArray = Arrays.copyOf(passArray, 2 * totalCount);
randomNoArray = Arrays.copyOf(randomNoArray, 2 * totalCount);
}
nameArray[totalCount] = name;
passArray[totalCount] = pass;
randomNoArray[totalCount] = randomNo;
totalCount++;
System.out.println("注册成功! 请牢记您的会员号");
System.out.println("用户名\t密码\t会员卡号");
System.out.println(name + "\t" + pass + "\t" + randomNo);
return true;
}
}










