zoukankan      html  css  js  c++  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,注册 
     2,登录 
     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;
    	}
    }
    
    
    小二寄语:感谢每一个看完这篇文章的人。希望我们可以在奋斗的路上砥砺前行!
  • 相关阅读:
    nginx配置vue项目
    TexturePacker工具对素材打包
    java使用动态链接库
    java.lang.UnsatisfiedLinkError: no A in java.library.path
    pi4j与Spring Boot
    迪文屏串口修改数据
    迪文屏常用串口指令
    postcss-px-to-viewport移动端布局
    vue-lazyload延迟加载
    fastclick延迟300ms
  • 原文地址:https://www.cnblogs.com/S-YAnLEi/p/7456449.html
Copyright © 2011-2022 走看看