纯java代码实现抽奖系统

 更新时间:2019年01月22日 16:23:26   作者:福炁AisinGioro  
这篇文章主要为大家详细介绍了纯java代码实现抽奖系统,无连接数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java实现抽奖系统 的具体代码,供大家参考,具体内容如下

模拟一个在终端登陆注册的页面

public class Cjtest {
 public static void main(String[] args) {
  String isGoOn = "n"; //循环的判断条件是否继续
 do {
  System.out.println("*********幸运52********");
  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 meunNum = scanner.nextLine();
  //根据用户的选择 来执行对应功能 
  meunChoose(meunNum);
  System.out.println("是否继续---输入y/n");
  //接收判断循环条件
  isGoOn = scanner.nextLine();
 } while (isGoOn.equals("y"));
 //循环结束提示
 System.out.println("欢迎下次使用");
 }
 //选择对应的方法
 public static void meunChoose(String meunNum) {
 switch (meunNum) {
 case "1":
  System.out.println("抽奖系统----注册");
  //调用 注册的方法
  Register.register();
 case "2":
  System.out.println("抽奖系统----登录");
  //调用登录的方法
  User.isLogin=Login.login();
  break;
 case "3":
  System.out.println("抽奖系统----幸运抽奖");
  LuckDraw.lukcDraw();
  break;
 default:
  System.out.println("输入错误请重新输入");
  break;
 }

 } 
}

不连接数据库所以模拟一个注册时用户信息所存放的位置

public class User {
 //用户名
 public static String userName = "";
 //密码
 public static String passWord = "";
 //幸运数字
 public static int luckNumber = 0;
 //用户的登录状态
 public static boolean isLogin = false;

}

注册功能实现

public class Register {
 public static void register() {
 System.out.println("请注册用户的个人信息");
 Scanner scanner = new Scanner(System.in);
 System.out.println("用户名");
 //接收用户名 放在用户信息中
 User.userName = scanner.nextLine();
 System.out.println("密码");
 //接收到用户信息中
 User.passWord = scanner.nextLine();
 //随机一个四位的1000-2000的数 保存到用户中。
 User.luckNumber = (int)(Math.random()*(2000-1000+1)+1000);
 //显示用户的注册信息
 System.out.println("用户名"+User.userName);
 System.out.println("密码"+User.passWord);
 System.out.println("幸运数字"+User.luckNumber);
//scanner.close();标记:注意scanner 只能关闭一次 关闭后在本程序执行中 在创建也不能接收键盘信息了
 } 

}

登陆

public class Login {
 static int number = 0;//控制循环输入密码三次
 public static boolean login() {
 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("登陆成功");
  //返回一个登录状态
  return true;
 }else {
  //登录失败 有重新登录三次机会。
  number++;
  System.out.println("你还有"+(3-number)+"次机会");
  if (number !=3) {
  //还有登陆的机会
  login();
 }else {
  //三次机会已用 登录失败
  System.out.println("三次机会已用完 登录失败");
 }
  //写返回值的时候要保证每一个分支都要有返回值
  return false;
 }
 }
}

抽奖系统逻辑

public class LuckDraw {
 //记录输入卡号注册
 static int number = 0;
 public static void lukcDraw() {
 //是否注册 没注册不能抽
 if(User.userName.length() ==0 ) {
  //没注册 下面都不执行
  System.out.println("你没注册");
  return;
 }
 //是否登录 没登录不让抽
 if(!User.isLogin) {
  System.out.println("你没登录");
  return;
 }
 //如果卡号没输对 也不让抽奖 直接return
 if (!isLuckNumber()) {
  System.out.println("卡号不对!不能登录");
  return;
 }
 //真的 可以抽奖了
 //定义一个 变量保存中奖的结果
 boolean isLucky = false;
 //随机五个数 打印出结果 并判断是否匹配幸运号码
 //定义一个变量 来保存累加的字符串
 String s = "本次幸运的数";
 for (int i = 0; i < 5; i++) {
  int num = (int) (Math.random() * (2000-1000+1) + 1000);
  //拼接要打印的字符串
  if(i<5) {
  s = s + num+","; 
  }else {
  s = s+num; 
  }
  //判断是否中奖
  if(User.luckNumber==num);
  //中奖
  isLucky = true;
 }
 //打印幸运数字
 System.out.println(s);
 if (isLucky) {
  System.out.println("你中奖了");
 }else {
  System.out.println("你没中奖");
 }
 }
 public static boolean isLuckNumber() { //判断卡号是个输入正确
 //抽奖
  System.out.println("请输入卡号");
  Scanner scanner = new Scanner(System.in);
  int luckNumber = scanner.nextInt();
  //判断用户输入的卡号是不是 这个用户之前随机出来的那个数
  if (luckNumber==User.luckNumber) {
   System.out.println("输入正确抽奖马上运行");
   return true;
   //卡号相同可以抽奖
  }else {
   //卡号不相同 重新输入三次机会
   number++;
   if (number!=3) {
   isLuckNumber();
   }else {
   System.out.println("三次机会已用尽");
   }
   return false;
 }
 }
}

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 教你如何用好 Java 中的枚举

    教你如何用好 Java 中的枚举

    在本文中,我们将看到什么是 Java 枚举,它们解决了哪些问题以及如何在实践中使用 Java 枚举实现一些设计模式。下面小编将为大家详细介绍
    2021-09-09
  • Java利用反射动态设置对象字段值的实现

    Java利用反射动态设置对象字段值的实现

    桥梁信息维护需要做到字段级别的权限控制,本文主要介绍了Java利用反射动态设置对象字段值的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Java开发岗位面试被问到泛型怎么办

    Java开发岗位面试被问到泛型怎么办

    泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。java泛型知识点也是Java开发岗位必问的一个话题,今天小编就给大家普及下Java泛型常见面试题,感兴趣的朋友一起看看吧
    2021-07-07
  • 解决复制springboot项目后,启动日志无颜色的问题

    解决复制springboot项目后,启动日志无颜色的问题

    这篇文章主要介绍了解决复制springboot项目后,启动日志无颜色的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java替换中使用正则表达式实现中间模糊匹配的方法

    Java替换中使用正则表达式实现中间模糊匹配的方法

    今天小编就为大家分享一篇Java替换中使用正则表达式实现中间模糊匹配的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 详解SpringBoot中@PostMapping注解的用法

    详解SpringBoot中@PostMapping注解的用法

    在SpringBoot中,我们经常需要编写RESTful Web服务,以便于客户端与服务器之间的通信,@PostMapping注解可以让我们更方便地编写POST请求处理方法,在本文中,我们将介绍@PostMapping注解的作用、原理,以及如何在SpringBoot应用程序中使用它
    2023-06-06
  • 深入浅析SSH的三个组件ssh、sftp、scp

    深入浅析SSH的三个组件ssh、sftp、scp

    SSH 包含3个组件,文中给大家详细提到。这篇文章主要介绍了SSH的三个组件ssh、sftp、scp ,需要的朋友可以参考下
    2018-10-10
  • Java抽象类、继承及多态和适配器的实现代码

    Java抽象类、继承及多态和适配器的实现代码

    这篇文章主要介绍了Java抽象类、继承及多态和适配器的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-06-06
  • 基于JavaMail的常用类详细介绍

    基于JavaMail的常用类详细介绍

    以下是对JavaMail的常用类进行了详细分析的介绍,需要的朋友可以过来参考下
    2013-09-09
  • java8中新的Date和Time详解

    java8中新的Date和Time详解

    这篇文章主要是java8中新的Date和Time,探讨新Date类和Time类背后的设计原则,有所需要的小伙伴希望能帮助到你
    2016-07-07

最新评论