南哥带你玩转 Java 之 Java 抽奖系统扩展
2018-01-13 16:42
337 查看
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(" 4.石头剪刀布"); System.out.println(" 5.老虎棒子鸡"); 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; case "4": System.out.println("[石头剪刀布]"); STJDBStart.stjdbStart(); break; case "5": System.out.println("[老虎棒子鸡]"); LHBZJStart.lhbzjStart(); 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("请填写个人信息:"); fdf6 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; } } /* * 抽奖开始类(组装抽奖逻辑) */ 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; } } }
石头剪刀布类
/* * 石头剪刀布开始类 */ public class STJDBStart { public static void stjdbStart() { do { System.out.println("请输入: 1.石头 2.剪刀 3.布"); String string = Compare.isWin(Person.personToFist(),Computer.computerToFist()); System.out.println(string); Score.scoring(string); if (Score.perNum == 2) { System.out.println("你获得了最终的胜利"); break; } else if (Score.comNum == 2) { System.out.println("电脑获得了最终的胜利"); break; } } while (true); } } /* * 人类 * 人出拳 */ public class Person { public static int personToFist() { Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); int num = Integer.parseInt(string); System.out.println("人:" + Fist.toFist(num)); return num; } } /* * 电脑类 */ public class Computer { public static int computerToFist() { int num = (int) (Math.random() * (3 - 1 + 1) + 1); System.out.println("电脑:" + Fist.toFist(num)); return num; } } /* * 拳类 */ public class Fist { public static String toFist(int num) { String string = ""; switch (num) { case 1: string = "石头"; break; case 2: string = "剪刀"; break; case 3: string = "布"; break; default: string = "放弃"; break; } return string; } } /* * 比较类 * 判断谁赢了 * 人 电脑 * 石头 -- 1 1 * 剪刀 -- 2 2 * 布 -- 3 3 * * 人 石头 * 1 -- 1 平手 == 0 * 1 -- 2 人赢 == -1 * 1 -- 3 人输 == -2 * 剪刀 * 2 -- 1 人输 == 1 * 2 -- 2 平手 == 0 * 2 -- 3 人赢 == -1 * 布 * 3 -- 1 人赢 == 2 * 3 -- 2 人输 == 1 * 3 -- 3 平手 == 0 * * 人赢 两个拳相减 结果 -1 或者 2 */ public class Compare { public static String isWin(int num1, int num2) { // 让双方的拳头 相减 int rel = num1 - num2; if (rel == -1 || rel == 2) { return "你赢了"; } else if (rel == 0) { return "平手"; } else{ return "你输了,电脑胜利"; } } } /* * 比分类 */ public class Score { static int perNum = 0; static int comNum = 0; public static void scoring(String string) { switch (string) { case "你赢了": perNum++; System.out.println("当前比分:" + perNum + ":" + comNum); break; case "平手": System.out.println("当前比分:" + perNum + ":" + comNum); break; case "你输了,电脑胜利": comNum++; System.out.println("当前比分:" + perNum + ":" + comNum); break; default: break; } } }
老虎棒子鸡类
/* * 老虎棒子鸡开始类 */ public class LHBZJStart { public static void lhbzjStart() { do { System.out.println("请输入: 1.虫 2.棒子 3.老虎 4.鸡"); String string = Compare.isWin(Person.personToFist(),Computer.computerToFist()); System.out.println(string); Score.scoring(string); if (Score.perNum == 2) { System.out.println("你获得了最终的胜利"); break; } else if (Score.comNum == 2) { System.out.println("电脑获得了最终的胜利"); break; } } while (true); } } /* * 人类 */ public class Person { public static int personToFist() { Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); int num = Integer.parseInt(string); System.out.println("人:" + Fist.toFist(num)); return num; } } /* * 电脑类 */ public class Computer { public static int computerToFist() { int num = (int) (Math.random() * (4 - 1 + 1) + 1); System.out.println("电脑:" + Fist.toFist(num)); return num; } } /* * 老虎棒子鸡类 */ public class Fist { public static String toFist(int num) { String string = ""; switch (num) { case 1: string = "虫"; break; case 2: string = "棒子"; break; case 3: string = "老虎"; break; case 4: string = "鸡"; break; default: string = "放弃"; break; } return string; } } /* * 比较类 * 判断谁赢了 * 人 电脑 * 虫 -- 1 1 * 棒子 -- 2 2 * 老虎 -- 3 3 * 鸡 -- 4 4 * * 人 虫 * 1 -- 1 平手 == 0 * 1 -- 2 人赢 == -1 * 1 -- 3 平手 == -2 * 1 -- 4 人输 == -3 * 棒子 * 2 -- 1 人输 == 1 * 2 -- 2 平手 == 0 * 2 -- 3 人赢 == -1 * 2 -- 4 平手 == -2 * 老虎 * 3 -- 1 平手 == 2 * 3 -- 2 人输 == -1 * 3 -- 3 平手 == 0 * 3 -- 4 人赢 == -1 * 鸡 * 4 -- 1 人赢 == 3 * 4 -- 2 平手 == 2 * 4 -- 3 人输 == 1 * 4 -- 4 平手 == 0 * */ public class Compare { public static String isWin(int num1, int num2) { // 让双方的拳头 相减 int rel = num1 - num2; if (num1 > 4) { return "你输了,电脑胜利"; }else if (rel == -1 || rel == 3) { return "你赢了"; } else if (rel == 0 || rel == -2 || rel == 2) { return "平手"; } else{ return "你输了,电脑胜利"; } } } /* * 比分类 */ public class Score { static int perNum = 0; static int comNum = 0; public static void scoring(String string) { switch (string) { case "你赢了": perNum++; System.out.println("当前比分:" + perNum + ":" + comNum); break; case "平手": System.out.println("当前比分:" + perNum + ":" + comNum); break; case "你输了,电脑胜利": comNum++; System.out.println("当前比分:" + perNum + ":" + comNum); break; default: break; } } }
http://blog.csdn.net/huzongnan/article/list
相关文章推荐
- 南哥带你玩转 Java 之 Java 抽奖系统
- 南哥带你玩转 Java 之 Java 接口
- 南哥带你玩转 Java 之 Java 字符流与转换流
- 南哥带你玩转 Java 之 Java 集合总结
- 南哥带你玩转 Java 之 Java 集合--list
- 南哥带你玩转 Java 之 Java 抽象(abstract)
- 南哥带你玩转 Java 之 Java 石头剪刀布游戏
- 南哥带你玩转 Java 之 Java FIle 类
- 南哥带你玩转 Java 之 Java 集合(泛型及集合删除方法)
- Java抽奖系统制作2018.3.26
- 基于JAVA的抽奖系统
- java抽奖系统
- 南哥带你玩转 Java 之 Java 初识运行原理和操作
- 南哥带你玩转 Java 之 Java 类和对象
- 南哥带你玩转 Java 之 Java 流程控制
- 简单实现java抽奖系统
- JAVA用户抽奖系统设计(幸运大转盘作业)
- JAVA 超简单方法设计抽奖系统
- 南哥带你玩转 Java 之 Java 中的变量、运算符
- 南哥带你玩转 Java 之 Java 文件过滤器