当前位置: 代码迷 >> Java相关 >> 使用Java语言程序模拟彩票抽奖系统。
  详细解决方案

使用Java语言程序模拟彩票抽奖系统。

热度:516   发布时间:2010-08-31 21:09:39.0
使用Java语言程序模拟彩票抽奖系统。
要求实现以下功能:   1.双色球彩票系统       (1)在1~33之间产生6个随机数。              (2)再次产生一个1~16之间的随机数,     (3)用户输入彩票号码后打印结果             ( 4)本系统接受用户机选
搜索更多相关的解决方案: 彩票  Java  语言  系统  

----------------解决方案--------------------------------------------------------
不知道啥叫双色球彩票,我没玩过规则复杂的彩票- -

程序代码:

                int a[]=new int[6];
        Random ra=new Random();
                //获取6个1-33之间的随机数
        for (int i = 0; i < a.length; i++) {
            a[i]=ra.nextInt(33)+1;
        }
                //获取一个1-16的随机数
        int b=ra.nextInt(16)+1;

----------------解决方案--------------------------------------------------------
回复 2楼 shellingford
双色球就是有6个蓝球和1个红球的一种福利性彩票                           用户输入的“6+1”数字与系统产生的随机数比较之后并根据双色球的规则来判断是否中奖,最后输出结果。
----------------解决方案--------------------------------------------------------
程序代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class Dr {
    private int lastNum;
    private Random random = new Random();
    private List<Integer> list = new ArrayList<Integer>();
    private List<Integer> numList = new ArrayList<Integer>();
   
    public Dr(){
        init();
    }
   
   
    private void init(){
        list.clear();
        numList.clear();
      
        for(int i = 1; i<=33; i++){
            list.add(i);
        }
    }
   
    public void generateNum(){
        for(int i =0; i<6; i++){
            numList.add(list.remove(random.nextInt(list.size())));
        }
    }
   
    public void generateLastNum(){
        int index = getLastNumMaxIndex();
        lastNum = list.remove(random.nextInt(index));
    }
   
    private int getLastNumMaxIndex(){
        Collections.sort(list);
        for(int i =0; i<list.size(); i++){
            if(list.get(i)>16)
                return i-1;
        }
        return -1;
    }
   
    public void printRandomNums(){
        Collections.sort(numList);
        for(int i = 0;i<6;i++){
            System.out.print(numList.get(i) + " ");
        }
        System.out.println(lastNum + " ");
    }
   
    public static void main(String[] args) {
        Dr d = new Dr();
        d.generateNum();
        d.generateLastNum();
        d.printRandomNums();
    }
}

----------------解决方案--------------------------------------------------------
以下是引用shellingford在2010-8-31 23:23:22的发言:

不知道啥叫双色球彩票,我没玩过规则复杂的彩票- -


                int a[]=new int[6];
        Random ra=new Random();
                //获取6个1-33之间的随机数
        for (int i = 0; i < a.length; i++) {
            a=ra.nextInt(33)+1;
        }
                //获取一个1-16的随机数
        int b=ra.nextInt(16)+1;
双色球的6个数字是不能重复的
----------------解决方案--------------------------------------------------------
加个产生n组随机数据的函数
程序代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class Dr {
    private int lastNum;
    private Random random = new Random();
    private List<Integer> list = new ArrayList<Integer>();
    private List<Integer> numList = new ArrayList<Integer>();
   
    public Dr(){
        init();
    }
   
   
    private void init(){
        list.clear();
        numList.clear();
      
        for(int i = 1; i<=33; i++){
            list.add(i);
        }
    }
   
    public void generateNum(){
        for(int i =0; i<6; i++){
            numList.add(list.remove(random.nextInt(list.size())));
        }
    }
   
    public void generateLastNum(){
        int index = getLastNumMaxIndex();
        lastNum = list.remove(random.nextInt(index));
    }
   
    private int getLastNumMaxIndex(){
        Collections.sort(list);
        for(int i =0; i<list.size(); i++){
            if(list.get(i)>16)
                return i-1;
        }
        return -1;
    }
   
    public void printRandomNums(){
        Collections.sort(numList);
        for(int i = 0;i<6;i++){
            System.out.printf("%3d", numList.get(i));
        }
        System.out.printf("%3d\n",lastNum);
    }
   
    public void generateRandomNums(int n){
        for(int i =0; i<n; i++){
            init();
            generateNum();
            generateLastNum();
            printRandomNums();
        }
    }
   
    public static void main(String[] args) {
        Dr d = new Dr();
        d.generateNum();
        d.generateLastNum();
        d.printRandomNums();
      
        d.generateRandomNums(8);
    }
}


----------------解决方案--------------------------------------------------------
  相关解决方案