Java 抽奖系统

Java 抽奖系统

/*
 * 测试类
 */
public class CJTest {
	public static void main(String[] args) {
		CJStart cjStart = new CJStart();
		cjStart.cjStart();
	}
}
/*
 * 抽奖开始类(组装抽奖逻辑)
 */
public class CJStart {
	// 抽奖开始
	public void cjStart() {
		// 是否继续菜单
		String isGoOn = "";
		// 循环主菜单
		do {
			System.out.println("*******欢迎进入抽奖系统*******");
			System.out.println("         1.注册");
			System.out.println("         2.登录");
			System.out.println("         3.抽奖");
			System.out.println("*****************************");
			System.out.println("请选择菜单:");
			Scanner scanner = new Scanner(System.in);
			// 接收菜单选项
			String menuNum = scanner.nextLine();
			// 判断选项
			chooseMenuNum(menuNum);
			// 接收是否继续
			System.out.println("是否选择继续?y/n");
			isGoOn = scanner.nextLine();
			while(!isGoOn.equals("y") && !isGoOn.equals("n")) {
				System.out.println("输入信息有误,请重新输入!");
				isGoOn = scanner.nextLine();
			}
		} while (isGoOn.equals("y"));
	}
	// 判断菜单选项
	public void chooseMenuNum(String menuNum) {
		switch (menuNum) {
		case "1":
			System.out.println("[抽奖系统 > 注册]");
			// 调用注册方法
			Register.userRegister();
			break;
		case "2":
			System.out.println("[抽奖系统 > 登录]");
			// 调用登录方法
			// 记录(保存)登录的状态
			User.isLogin = Login.userLogin();
			break;
		case "3":
			System.out.println("[抽奖系统 > 抽奖]");
			// 调用抽奖方法
			CJ.userCJ();
			break;
		default:
			System.out.println("输入有误,请重新输入!");
			Scanner scanner = new Scanner(System.in);
			menuNum = scanner.nextLine();
			break;
		}
	}
	
}

/*
 * 用户信息类
 * 1.账号
 * 2.密码
 * 3.卡号
 * 4.是否登录
 */
public class User {
	 public static String userName = "";// 用户名
	 public static String password = "";// 密码
	 public static int cardNumber = 0;// 卡号
	 // 是否登录
	 public static boolean isLogin = false;
	 // 是否注册
	 public static boolean isRegister = false;
}
/*
 * 注册类
 * 1.提示用户输入账号密码
 * 2.产生随机号[1000,2000]
 * 3.保存用户注册信息
 * 4.提示注册成功
 */
public class Register {
	// 注册方法
	public static void userRegister() {
		System.out.println("请填写个人信息:");
		System.out.println("用户名:");
		Scanner scanner = new Scanner(System.in);
		// 接收用户信息
		String userName = scanner.nextLine();
		System.out.println("密码:");
		// 接收密码
		String password = scanner.nextLine();
		// 随机生成卡号
		int cardNumber = (int)(Math.random() * (2000 - 1000 + 1) + 1000);
		// 保存到用户类中
		User.userName = userName;
		User.password = password;
		User.cardNumber = cardNumber;
		// 提示注册成功
		System.out.println("注册成功,请记好你的会员卡号");
		System.out.println("用户名:" + User.userName);
		System.out.println("密码:" + User.password);
		System.out.println("卡号:" + User.cardNumber);
		// 保存注册状态
		User.isRegister = true;
		// 整个工程,如果使用多次 scanner 只能关闭一次
		// scanner.close();
	}
}
/*
 * 登录类
 * 1.输入登录的账号和密码
 * 2.和用户信息进行匹配
 *   有三次重新输入的机会
 * 3.登录成功
 */
public class Login {
	// 保存登录失败的次数
	static int num = 0;
	// 登录方法
	// 静态方法里面需要使用静态成员变量
	public static boolean userLogin() {
		// 先判断是否注册
		if (User.isRegister == false) {
			System.out.println("请先进行注册!");
			Register.userRegister();
		} else {
			// 输入信息
			System.out.println("请填写个人信息:");
			System.out.println("用户名:");
			Scanner scanner = new Scanner(System.in);
			// 接收信息
			String userName = scanner.nextLine();
			System.out.println("密码:");
			String password = scanner.nextLine();
			// 匹配登录信息
			if (userName.equals(User.userName) && password.equals(User.password)) {
				// 登录成功
				System.out.println("欢迎您:" + userName);
				// 返回登录结果
				return true;
			} else {
				// 登录失败
				num++;
				System.out.println("用户名和密码有误,请重新输入!");
				System.out.println("还剩:" + (3 - num) + "次机会");
				// 判断输入登录信息错误几次
				if (num < 3) {
					// 继续登录
					userLogin();
				} else if (num == 3) {
					// 登录失败
					System.out.println("三次机会已用完,请明天重试!");
					// 重置记录登录次数的变量
					num = 0;
				}
			}
		}
		// 代码执行到这,说明登录一定失败了
		return false;
	}
}

http://blog.csdn.net/huzongnan/article/list

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值