注册 登录
编程论坛 JAVA论坛

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

chhubert 发布于 2010-08-31 21:09, 9984 次点击
要求实现以下功能:   1.双色球彩票系统       (1)在1~33之间产生6个随机数。              (2)再次产生一个1~16之间的随机数,     (3)用户输入彩票号码后打印结果             ( 4)本系统接受用户机选
10 回复
#2
shellingford2010-08-31 23:23
不知道啥叫双色球彩票,我没玩过规则复杂的彩票- -

程序代码:

                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;
#3
chhubert2010-09-01 00:34
回复 2楼 shellingford
双色球就是有6个蓝球和1个红球的一种福利性彩票                           用户输入的“6+1”数字与系统产生的随机数比较之后并根据双色球的规则来判断是否中奖,最后输出结果。
#4
linjx01232010-09-01 09:18
程序代码:
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();
    }
}
#5
lampeter1232010-09-01 09:27
以下是引用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个数字是不能重复的
#6
linjx01232010-09-01 09:28
加个产生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);
    }
}

 
#7
zdd12015-11-17 18:19
怎样判断是否中奖呢?
#8
鲁凯我爱2016-01-13 22:17
      注意   要求      实现以下功能:   1.双色球彩票系统       (1)在1~33之间产生6个随机数。              (2)再次产生一个1~16之间的随机数,     (3)用户输入彩票号码后打印结果             ( 4)本系统接受用户机选      
#9
鲁凯我爱2016-01-13 22:22
项目效果图:
1.开始购买彩票
说明此系统的功能及规则,提示用户选择是否使用本系统,效果如图所示

2.如果在上图中选择“n”,则退出系统,效果如图所示
只有本站会员才能查看附件,请 登录
#10
鲁凯我爱2016-01-13 22:23
3.如果在第一个图中选择“y”

4.如果在上图中选择y则进入双色球机选

5.如果在上图选择“n”,则系统进入人工选

#11
哇哈哈65212018-06-30 18:22
上面的程序是完整程序吗?
1