是一个简单的抽奖系统,经过输入的选项执行相关的操做,java
import java.lang.invoke.SwitchPoint; import java.util.Arrays; import java.util.Scanner; //抽奖系统 public class Test01 { static String userName = ""; //用户名 static String password = ""; //密码 static int i = 0; //登陆次数 static boolean islogin = false; //登陆状态,默认是没有登录的 public static void main(String[] args) { while (true) { System.out.println("*****欢迎进入抽奖系统*****"); System.out.println(" 1,注册 \n 2,登陆 \n 3,参加抽奖"); System.out.println("********************"); System.out.println("请选择:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); //根据用户输入,进行相关的操做 doSome(num); System.out.println("是否退出:(exit)"); String string = sc.next(); if ("exit".equals(string)) { return; } } } //根据用户输入,进行相关的操做 static void doSome(int num) { if (num > 3 || num < 1) { //只能输入1,2,3 System.out.println("输入错误,请从新输入"); return; } switch (num) { case 1 : { // 注册 System.out.println("抽奖 > 注册"); //1,判断是否已经注册过了,若是是,就不须要在注册 boolean regist = isRegist(); if (regist) { System.out.println("已经注册过了,请执行其余操做"); return; }else { //2,用两个变量来保存一下用户名和密码 Scanner sc = new Scanner(System.in); System.out.println("请输入用户名"); userName = sc.next(); System.out.println("请输入密码"); password = sc.next(); //3,注册成功,用户名... System.out.println("注册成功,用户名:" + userName); } break; } case 2 : { // 登陆 System.out.println("抽奖 > 登陆"); //1,判断是否注册过,若是是,就能够登陆,不然返回注册 if (islogin) { System.out.println("已登陆"); break; } boolean regist = isRegist(); if (regist) { //注册过 login(); }else { // 没有注册过 System.out.println("请先注册..."); } break; } default: { // 抽奖 System.out.println("抽奖 > 抽奖"); //判断是否登陆状态 if (islogin == false) { System.out.println("未登陆,请先登陆"); return; } //若是是登陆状态,抽奖,不然,返回登陆 //代码到这里,代表已经登陆成功了 System.out.println("请输入您的幸运编号(4位):"); Scanner scanner = new Scanner(System.in); int luckNum = scanner.nextInt(); //获取随机出来的随机数字 int[] arr = getArr(); for (int i = 0; i < arr.length; i++) { if (luckNum == arr[i]) { System.out.println("恭喜你中奖啦"); return; } } System.out.println("努努力,恭喜下次中奖"); //抽奖 1,输入4位幸运数字 2,随机一个数组 //若是输入的数字在数组中,就中奖了,不然谢谢惠顾 break; } } } //判断是否注册过 true是注册过 false是未注册过 static boolean isRegist () { //字符串写在前面,null没有equals方法 if ("".equals(userName) || userName == null || "".equals(password) || password == null) { return false; } return true; } //判断用户名和密码与存储的是否相等. static boolean login(String name,String passwd) { if (Test01.userName.equals(name) && (Test01.password.equals(passwd))) { //每次登陆成功之后归零 i= 0; return true; }else { return false; } } //登陆 static void login () { Scanner sc = new Scanner(System.in); System.out.println("请输入用户名"); String userName = sc.next(); System.out.println("请输入密码"); String password = sc.next(); //判断用户名和密码与存储的是否相等 boolean login = login(userName, password); if (login) { //登陆成功 System.out.println("登陆成功"); Test01.islogin = true; //把当前的状态标记成登陆成功 }else { //登陆失败 System.out.println("请从新登陆"); //输入三次之后退出 if (i >= 3) { System.out.println("登陆次数过多,明天再试吧"); System.exit(-1); //虚拟机终止 return; } i++; //调用本身自己 login(); } } //抽奖环节随机数组的函数 static int[] getArr() { //初始化数组 int[] numArr = new int[5]; //随机1000-9999数字放到数组中 //调用test02的rand方法 int index = 0; boolean tag = false; //若是数组的下标为4的元素是0,说明数组没有装满,能够继续执行 while (numArr[4] == 0) { tag = false; int num = Test02.rand(1000, 9999); //循环判断,每次生成的随机数不与以前放进数组中的数重复 for (int i = 0; i < index; i++) { //若是重复,tag改成true,而且跳出本次循环, if (num == numArr[i]) { tag = true; break; } } //若是tag = true,返回继续执行,不走下边的代码 if (tag) { continue; } //若是不为true,则把随机数放到数组中. numArr[index] = num; index++; } return numArr; } }