彩票开奖系统

模拟双色球彩票系统

  1. 双色球规则:
    a)双色球分为红球和蓝球,红球选择的范围为1-33而且红球选择6个数字,蓝球1-16而且只能选择一个。
    b)选择方式为随机选择和手动输入选择号码。
    c)生成号码的顺序是由小到大。
  2. 功能描述: 通过JavaSE所学知识模拟彩票系统,首先系统能够让用户选择随机选择和手动选择。如果选择的是随机选择,则提示需要购买的注数;如果是手动选择,则让用户首选输入红球数字,然后输入篮球数字。
    用户选择或者输入完毕,则对比号码所匹配的奖次,并且把中奖号码都要显示出来。 中奖规则: 1等奖是中6+1,就是全部中了,奖金500万元
    2等奖是中6+0 就是红球全部中了,奖金保底3000-2000000元 3等奖是5+1 红球中5个,加篮球奖金3000元
    4等奖是5+0或者4+1,奖金200元 5等奖是4+0或者3+1,奖金10元 6等奖是2+1或者1+1或者0+1,奖金5元
    中奖号码,要系统自动生成。 业务说明
    1. 首先系统要生成中奖号码,而且中奖号码中不能有重复的数字,篮球可以和红球中某一个数字相同。
    2. 当用户输入中奖号码时,需要做判断用户输入的是否为数字,而且一定 要在1-33或1-16之间。
  3. 最后根据用户购买的注数,提示所中奖金的总金额,并且提示每注所属的奖项范围。4.扩展(选作):定义一个调度器,在一个规定的时间点来验证中奖信息。5.希望大家都能完成。

主程序入口

Test.java

package T;

import java.util.Scanner;


public class Test {

  public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    Start start=new Start();
    System.out.println("本期号码:");
    for(int a:start.number){
      System.out.print(a+" ");
    }
    start.cross(start.door());
    System.out.println("还需要继续购票吗?Y/N");
    String s=sc.nextLine();
    if(s.equalsIgnoreCase("Y")){
      start.cross(start.door());
    }else{
      System.out.println("输入错误或者操作不当,正在退出!!!");
      System.exit(0);
    }
  }
}

双色球的接口类

Base.java

package Test;
/*
新建一个球类的顶级父类
 */
public class Base {
private String Color;
private int[] num;

  public Base() {
  }

  public Base(String color, int[] num) {
    Color = color;
    this.num = num;
  }

  public String getColor() {
    return Color;
  }

  public int[] getNum() {
    return num;
  }

  public void setColor(String color) {
    Color = color;
  }

  public void setNum(int[] num) {
    this.num = num;
  }

  @Override
  public String toString() {
    return "Base{" +
        "Color='" + Color + '\'' +
        '}';
  }
}

手动输入的接口类

HandSelect.java

package Test;

import java.util.HashSet;
import java.util.Scanner;
/*
  *手动选择号码的类
  * 该类只提供一个方法handSelect,该方法传入俩个数组,并返回一个7位的数组,前六位是从第一个数组中选择的,最后
  * 一位是从另外一个数组中选择的。
 */
public class HandSelect {
public int[] handSelect(int[] redBase,int[] blueBase){
  /*
  该段代码为红球编号数组转为HashSet集合的代码
   */
  HashSet<Integer> setArray=new HashSet<>();
  for (int i = 0; i < redBase.length; i++) {
    setArray.add(redBase[i]);
  }
  /*
  该段代码为蓝球编号数组转为HashSet集合的代码
   */
  HashSet<Integer> setArray1=new HashSet<>();
  for (int i = 0; i < blueBase.length; i++) {
    setArray1.add(blueBase[i]);
  }
  /*
  新建一个数组,用来返回红球和篮球的编号
   */
  int[] handSelectArray=new int[7];

  Scanner sc=new Scanner(System.in);
  System.out.println("请输入你要选择的红球的代号:");
  for (int i = 0; i <6 ; i++) {
    int s=sc.nextInt();
    if(setArray.contains(s)){
      handSelectArray[i]=s;
      setArray.remove(s);
    }else{
      System.out.println("您输入错误,正在退出〉〉〉〉");
      System.exit(-1);
    }
  }
  System.out.println("请输入蓝球编号: ");
  int s = sc.nextInt();
  if(setArray1.contains(s)){
    handSelectArray[6]=s;
  }
  return handSelectArray;

}

}

随机选择类

RandomSelect.java

package Test;


import java.util.Random;

public class RandomSelect {
public int[] randomSelect(int[] redBase,int[] blueBase){
  Random random=new Random();
  Plug plug=new Plug();
  int[] array=plug.randomCommon(1,33,6);
  int[] array1=new int[7];
  for (int i = 0; i < array.length; i++) {
    array1[i]=redBase[array[i]];
  }
  int i=random.nextInt(16)+1;
  array1[6]=i;
  return array1;
}

}

获取随机不同的数的小插件接口

Plug.java

package Test;

public class Plug {
  public static int[] randomCommon(int min, int max, int n) {
    if (n > (max - min + 1) || max < min) {
      return null;
    }
    int[] result = new int[n];
    int count = 0;
    while (count < n) {
      int num = (int) (Math.random() * (max - min)) + min;
      boolean flag = true;
      for (int j = 0; j < n; j++) {
        if (num == result[j]) {
          flag = false;
          break;
        }
      }
      if (flag) {
        result[count] = num;
        count++;
      }
    }
    return result;
  }
}

开奖系统

Kaijiang.java

package Test;

import java.util.HashSet;
import java.util.Random;


public class Kaijiang {
  public int[] getNumber(int[] redBase,int[] blueBase){
    Random random=new Random();
    Plug plug=new Plug();
    int[] array1=plug.randomCommon(1,33,6);
    int[] array2=new int[7];
    for (int i = 0; i < 6; i++) {
      array2[i]=redBase[array1[i]];
    }
    int i=random.nextInt(16)+1;
    array2[6]=i;
    return  array2;
  }
  /*
    1等奖是中6+1,就是全部中了,奖金500万元
    2等奖是中6+0  就是红球全部中了,奖金保底3000-200 0000元
    3等奖是5+1    红球中5个加篮球,奖金3000元
    4等奖是5+0或者4+1,奖金200元
    5等奖是4+0或者3+1,奖金10元
    6等奖是2+1或者1+1或者0+1,奖金5元
    中奖号码,要系统自动生成。
    3.业务说明1.首先系统要生成中奖号码,而且中奖号码中不能有重复的数字,
 篮球可以和红球中某一个数字相同。2.当用户输入中奖号码时,需要做判断用户
 输入的是否为数字,而且一定要在1-33或1-16之间。3.最后根据用户购买的注数,
 提示所中奖金的总金额,并且提示每注所属的奖项范围。
 4.扩展(选作):定义一个调度器,在一个规定的时间点来验证中奖信息。5.希望
 大家都能完成。
 */
public void kaiJiang(int[] number,int[] array){
  HashSet hashSet1=new HashSet();
  for (int i = 0; i < array.length-1; i++) {
    hashSet1.add(number[i]);//将开奖号码的前6个数放入HashSet集合中
  }
  if(number[6]==array[6]){//中了一个蓝球
    for (int i = 0; i < 6; i++) {
      if(hashSet1.contains(array[i])){
        hashSet1.remove(array[i]);
      }
    }
    if(hashSet1.size()==0){
      System.out.println("恭喜您中大奖了,奖金为500万元!!! 恭喜恭喜:)");
    }else if(hashSet1.size()==1){
      System.out.println("恭喜您中3等奖,奖金为3000元 !!!");
    }else if(hashSet1.size()==2){
      System.out.println("恭喜您中4等奖,奖金为200元 !!!");
    }else if(hashSet1.size()==3){
      System.out.println("恭喜您中5等奖,奖金为10元 !!!");
    }else if(hashSet1.size()==4||hashSet1.size()==5||hashSet1.size()==6){
      System.out.println("恭喜您中6等奖,奖金为5元 !!!");
    }else{
      System.out.println("抱歉,您是个非酋,好好学习吧!!");
    }
  }else if(number[6]!=array[6]){
    for (int i = 0; i < 5; i++) {
      if(hashSet1.contains(array[i])){
        hashSet1.remove(array[i]);
      }
    }
    if(hashSet1.size()==0){
      System.out.println("恭喜您中2等奖了,奖金为3000元到500万元!!! 恭喜恭喜:)");
    }else if(hashSet1.size()==1){
      System.out.println("恭喜您中4等奖了,奖金为200元!!!");
    }else if(hashSet1.size()==2){
      System.out.println("恭喜您中5等奖,奖金为10元 !!!");
    }else{
      System.out.println("抱歉,您是个非酋,好好学习吧!!");
    }
  }else {
    System.out.println("程序可能出错了emmmm!");
  }
}
}

封装系统入口类

Start.java

package T;

import java.util.Scanner;

public class Start {
  Base redBase=new Base("  红球", new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33});
  Base blueBase=new Base("蓝球",new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16});
  Kaijiang kaijiang=new Kaijiang();
  Scanner sc=new Scanner(System.in);
  int[] number = kaijiang.getNumber(redBase.getNum(), blueBase.getNum());//本期号码数组 number
/*
生成本期号码
 */
public int door(){

  System.out.println("请选择购号方式:\n 1. 手动购号\n 2. 自动随机购号");
  int a=sc.nextInt();
  return a;
}
public void cross(int a){
  if(a==1){
    HandSelect handSelect=new HandSelect();
    int[] array=handSelect.handSelect(redBase.getNum(),blueBase.getNum());
    System.out.println("您的号码为:");
//      Arrays.sort(array);
    for (int aa:array
    ) {
      System.out.print(aa+" ");
    }
      /*
      开始兑奖:
       */
    kaijiang.kaiJiang(number,array);

  }
  if(a==2){
    System.out.println("请输入您要下的注数: ");
    int n=sc.nextInt();
    zhushu(n);

  }
}
public void zhushu(int n){
  RandomSelect randomSelect=new RandomSelect();
  for (int i = 0; i < n; i++) {
    int[] array=randomSelect.randomSelect(redBase.getNum(),blueBase.getNum());
    System.out.println("您的号码为:");
//      Arrays.sort(array);
    for (int aa:array
    ) {
      System.out.print(aa+" ");
    }
      /*
      开始兑奖:
       */
    kaijiang.kaiJiang(number,array);
  }


}
}

运行结果:

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 彩票系统全套源码Java是一套用Java语言编写的彩票管理系统代码集合。该系统覆盖了彩票销售和管理的各个方面,包括彩票的种类、销售渠道、票务管理、开奖、派奖等等。该系统使用了Java EE技术开发,具有良好的可扩展性和可维护性。 彩票系统全套源码Java可以为彩票销售商提供全面的解决方案,使其能够进行更有效率的管理和运营。代码中包含了各种常见的彩票游戏,如双色球、福彩3D、七乐彩等,同时还提供了各种开奖方式和奖金设置。彩票销售商可以根据自己的需要进行配置和管理,例如设置彩票出售渠道、开奖时间、奖金比例等等。此外,该系统还包含了多种支付方式和结算方式,使销售商可以更轻松地管理彩票销售和收入。 总之,彩票系统全套源码Java是一套功能齐全、易于扩展和维护的彩票管理系统代码集合,可为彩票销售商提供全面的解决方案,提高其管理和运营效率。 ### 回答2: 彩票系统全套源码Java是一个用Java语言编写的完整彩票系统的源代码。该源码通常包括以下几个主要方面的内容。 1. 用户管理系统:包括用户注册、登录、密码找回等功能。用户可以通过注册和登录来参与购买彩票、查看购买记录等操作。 2. 彩票购买系统:提供用户购买彩票的功能。用户可以选择不同的彩票类型、投注方式和号码,然后进行支付购买。该系统需要实现彩票的生成、存储和校验等功能。 3. 彩票开奖系统:实现彩票开奖过程。该系统需要根据彩票规则和实时数据进行开奖,并将开奖结果通知给购买彩票的用户。 4. 中奖查询系统:提供用户查询是否中奖的功能。用户可以输入购买的彩票号码,在系统中查询是否中奖,并显示中奖金额等信息。 5. 统计分析系统:提供彩票数据的统计和分析功能。该系统可以对历史彩票数据进行统计,生成各种统计报表和图表,帮助用户分析彩票走势和制定购买策略。 6. 后台管理系统:提供彩票系统的后台管理功能。管理员可以管理用户信息,设置彩票规则和开奖时间,发布公告等。 彩票系统源码Java可以作为一个基础框架,可以根据具体需求进行二次开发和定制。使用Java语言编写的彩票系统具有良好的可扩展性和跨平台性,能够适应不同规模和需求的彩票业务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值