| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9984 人关注过本帖
标题:使用Java语言程序模拟彩票抽奖系统。
只看楼主 加入收藏
chhubert
Rank: 1
来 自:田埂上
等 级:新手上路
帖 子:20
专家分:2
注 册:2010-7-14
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:10 
使用Java语言程序模拟彩票抽奖系统。
要求实现以下功能:   1.双色球彩票系统       (1)在1~33之间产生6个随机数。              (2)再次产生一个1~16之间的随机数,     (3)用户输入彩票号码后打印结果             ( 4)本系统接受用户机选
搜索更多相关主题的帖子: 彩票 Java 语言 系统 
2010-08-31 21:09
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:3 
不知道啥叫双色球彩票,我没玩过规则复杂的彩票- -

程序代码:
                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;
2010-08-31 23:23
chhubert
Rank: 1
来 自:田埂上
等 级:新手上路
帖 子:20
专家分:2
注 册:2010-7-14
收藏
得分:0 
回复 2楼 shellingford
双色球就是有6个蓝球和1个红球的一种福利性彩票                           用户输入的“6+1”数字与系统产生的随机数比较之后并根据双色球的规则来判断是否中奖,最后输出结果。
2010-09-01 00:34
linjx0123
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
收藏
得分:3 
程序代码:
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();
    }
}
2010-09-01 09:18
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:3 
以下是引用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个数字是不能重复的

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-09-01 09:27
linjx0123
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
收藏
得分:0 
加个产生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);
    }
}

 
2010-09-01 09:28
zdd1
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-11-17
收藏
得分:0 
怎样判断是否中奖呢?
2015-11-17 18:19
鲁凯我爱
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-1-13
收藏
得分:0 
      注意   要求      实现以下功能:   1.双色球彩票系统       (1)在1~33之间产生6个随机数。              (2)再次产生一个1~16之间的随机数,     (3)用户输入彩票号码后打印结果             ( 4)本系统接受用户机选      
2016-01-13 22:17
鲁凯我爱
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-1-13
收藏
得分:0 
项目效果图:
1.开始购买彩票
说明此系统的功能及规则,提示用户选择是否使用本系统,效果如图所示

2.如果在上图中选择“n”,则退出系统,效果如图所示
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-01-13 22:22
鲁凯我爱
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-1-13
收藏
得分:0 
3.如果在第一个图中选择“y”

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

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

2016-01-13 22:23
快速回复:使用Java语言程序模拟彩票抽奖系统。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014265 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved