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