精华内容
下载资源
问答
  • 随机抽奖小程序

    2019-09-27 15:57:40
    本实例使用随机数字生成5位抽奖号码,并显示在窗体的5个文本框中。当用户单击"开始"按钮时,将启动一个线程对象为5个文本框生成随机数字。单击"抽奖"按钮时,线程对象停止运行,并且将准确的中奖号码显示在信息...

    本实例使用随机数字生成5位抽奖号码,并显示在窗体的5个文本框中。当用户单击"开始"按钮时,将启动一个线程对象为5个文本框生成随机数字。单击"抽奖"按钮时,线程对象停止运行,并且将准确的中奖号码显示在信息文本框中。

    开发一个抽奖小工具的实例。

    (1)自定义文本框组件,把5个生成随机数的文本框的公共属性抽象定义到该文本框。

    package com.lzw;  
    import java.awt.Font;  
    import javax.swing.JTextField;  
    import javax.swing.SwingConstants;  
    //自定义的文本框组件  
    public class NumField extends JTextField {  
        private static final Font numfont = new Font("", Font.BOLD, 48);//定义文本框使用的字体  
       public NumField() {  
            super();   //执行父类构造方法  
            setHorizontalAlignment(SwingConstants.CENTER);  //设置文本居中对齐  
            setFont(numfont);   //设置字体  
            setFocusable(false); //取消焦点  
        }  
    } 

    (2)编写抽奖窗体。

    public class Lottery extends JFrame {  
        private JTextField infoField;       //抽奖号码确认文本框  
        private NumField[] numFields;        //随机号码文本框数组  
        private RandomNum randomThread=new RandomNum();  
        public static void main(String args[]) {  
            EventQueue.invokeLater(new Runnable() {  
                public void run() {  
                    try {  
                        Lottery frame = new Lottery();  
                frame.setVisible(true);  
                    } catch (Exception e) {  
                        e.printStackTrace();  
                    }  
                }  
            });  
        }  
         //创建窗体界面的构造方法  
        public Lottery() {  
            super();  
            final BorderLayout borderLayout_1 = new BorderLayout();  
            borderLayout_1.setVgap(10);  
            getContentPane().setLayout(borderLayout_1);   //设置布局管理器  
            setBounds(100, 100, 420, 256);  
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            final JPanel contentPanel = new JPanel();   //创建中间的内容面板  
            final BorderLayout borderLayout = new BorderLayout();   
            borderLayout.setVgap(10);  
            borderLayout.setHgap(10);  
            contentPanel.setLayout(borderLayout);  //设置内容面板布局管理器  
            getContentPane().add(contentPanel);    //添加内容面板到窗体  
            final JPanel numPanel = new JPanel();  //创建显示随机数的面板  
            contentPanel.add(numPanel);            //添加随机数面板到内容面板  
            final GridLayout gridLayout = new GridLayout(1, 0);  
            gridLayout.setHgap(10);  
            numPanel.setLayout(gridLayout);    //设置随机数面板布局管理器  
            numFields = new NumField[5];      //创建随机数文本框数组  
            for(int i=0;i<numFields.length;i++){  //初始化随机数文本框  
                numFields[i]=new NumField();      //初始化数组元素  
                numPanel.add(numFields[i]);       //添加文本框到随机数面板  
            }  
            final JPanel infoPanel = new JPanel();  //创建显示抽奖号码的面板  
            infoPanel.setLayout(new BorderLayout());  //设置面板布局管理器  
            contentPanel.add(infoPanel, BorderLayout.SOUTH);  //添加面板到窗体  
            final JLabel label_1 = new JLabel();       //布局抽奖号码面板  
            label_1.setFont(new Font("", Font.BOLD, 20));  
            label_1.setText("随机抽奖的中将号码是:");  
            infoPanel.add(label_1, BorderLayout.WEST);  
            infoField = new JTextField();  
            infoPanel.add(infoField);  
            final JLabel logoLabel = new JLabel();  //布局LOGO标签  
            logoLabel.setFont(new Font("隶书",  Font.PLAIN, 72)); 
    logoLabel.setHorizontalAlignment(SwingConstants.CENTER);  
            getContentPane().add(logoLabel,  BorderLayout.NORTH);  
            logoLabel.setText("随机抽奖");  
            final JPanel controlPanel = new JPanel(); //创建控制按钮面板  
            final FlowLayout flowLayout = new FlowLayout();  
            flowLayout.setHgap(25);  
            controlPanel.setLayout(flowLayout);  //设置面板布局  
            getContentPane().add(controlPanel,  BorderLayout.SOUTH);  //添加面板到窗体底部  
            final JButton startButton = new JButton();    //创建开始按钮  
            startButton.addActionListener(new ActionListener() {    //添加事件监听器  
                public void actionPerformed(final ActionEvent e) {  
                do_startButton_actionPerformed(e);  
                }  
            });  
            startButton.setText("开始");  
            controlPanel.add(startButton);        //添加按钮到面板  
            final JButton lotteryButton = new JButton();  //创建抽奖按钮  
            lotteryButton.addActionListener(new ActionListener() {      //添加事件监听器  
                public void actionPerformed(final ActionEvent e) {                    
                do_lotteryButton_actionPerformed(e);  
                }  
            });  
            lotteryButton.setText("抽奖");  
            controlPanel.add(lotteryButton);  
            final JButton exitButton = new JButton();                     //创建退出按钮  
            exitButton.addActionListener(new ActionListener() {          //添加事件监听器  
                public void actionPerformed(final ActionEvent e) {  
                      do_exitButton_actionPerformed(e);  
                }  
            });  
            exitButton.setText("退出");  
            controlPanel.add(exitButton);  
    }  
    
         // 生成随机数字的内部线程类  
        class RandomNum extends Thread {  
            private boolean stop=false;      //线程状态变量  
            public void run() {  
                while (!stop) {  
                    for (final NumField nf :  numFields) {  
                        try {  
                Thread.sleep(1);  
                        } catch (InterruptedException e) {  
                    e.printStackTrace();  
                        }  
                        final int num =  (int) (Math.random() * 10);     //生成随机数  
                          
    EventQueue.invokeLater(new Runnable() {  
               public void run() {  
                nf.setText(num + "");  
                            }  
                        });  
                    }  
                }  
            }  
    
             //停止线程的方法  
                 public void stopLottery() {  
                this.stop = true;  
            }  
        }  
         // 开始按钮的事件处理方法  
        protected void do_startButton_actionPerformed(final ActionEvent e) {  
            if(randomThread!=null)                    //如果存在上一个线程对象  
                randomThread.stopLottery();           //停止它  
            randomThread=new RandomNum();             //创建新的线程对象  
            randomThread.start();                     //启动线程  
    }  
    
      
       //抽奖按钮的事件处理方法  
       
        protected void do_lotteryButton_actionPerformed(final ActionEvent e) {  
            if(randomThread!=null)              //如果存在线程对象  
                randomThread.stopLottery();     //停止它  
            try {  
                randomThread.join();            //等抽奖线程结束  
            } catch (InterruptedException e1) {  
                e1.printStackTrace();  
            }  
            EventQueue.invokeLater(new Runnable() {  //在事件队列中更新抽奖信息  
                public void run() {  
                    String code = "";                //抽奖代码字符串  
                    for (final NumField nf :  numFields) {    //遍历数字文本框  
                        code +=  nf.getText();                 //连接5个数字字符  
                    }  
                    infoField.setText(code);                  //更新抽奖信息文本框  
                }  
            });  
        }  
     
         // 退出按钮的事件处理方法  
     
     protected void do_exitButton_actionPerformed(final ActionEvent e) {  
            System.exit(0);                           //退出程序  
        }  
    }

     

    转载于:https://www.cnblogs.com/zheting/p/7751889.html

    展开全文
  • 按键盘空格键或者字母A可进行抽取,隐藏菜单请按ESC。 ESC菜单中高级设置可以设置参与人数,格子大小,重置抽奖数据等信息。 ... 中奖信息保存在本机上,如清理缓存活更换机器则记录将消失。...请使用Chrome浏览器浏览,...
  • 小巧的抽奖程序,右键可设置抽取的范围。用于小型的抽奖,也可用于随机的抽取答题。
  • 本次练习做一个抽奖程序,页面中有一个区域显示中奖人员的编号,在JS中写一段代码,要求每隔1秒中随机创建一个四位的数字(每一位数字的取值范围0-9),当10秒结束后,结束定时器,最后显示的四位数字即是中奖的...
    • 本次小练习做一个抽奖程序,页面中有一个区域显示中奖人员的编号,在JS中写一段代码,要求每隔1秒中随机创建一个四位的数字(每一位数字的取值范围0-9),当10秒结束后,结束定时器,最后显示的四位数字即是中奖的号码
    • 此次小练习主要完成随机数的生成和定时部分
    • JS的生成随机数主要通过Math的random方法获得0-1的随机数,再通过相乘取整等方法获得想要的随机数,再通过数组的一系列方法获得返回值。函数如下:
        function getNumber(){
            var ary = [];
            while(ary.length<4){
                var cur = Math.round(Math.random()*9);//取出的随机整数
                if(ary.indexOf(cur) === -1){ //说明数组没有这一项
                    ary.push(cur);
                }
            }
            return ary.join("");//把数组的每一项靠一起返回
        }
    复制代码
    • JS的定时部分函数如下:
        var i = 0;//为了知道现在是第几秒
        var timer = window.setInterval(function(){
            i++;
            oSpan.innerHTML = getNumber();
            if(i ===10){
                clearInterval(timer);
                timer = null;
            }
        },1000);
    复制代码
    • 最后效果如图:

    转载于:https://juejin.im/post/5ba4b9705188255c393f6867

    展开全文
  • python实现抽奖小程序

    2020-12-26 02:19:52
    本文实例为大家分享了python实现抽奖小程序的具体代码,供大家参考,具体内容如下 设计一个抽奖服务  背景:有x个奖品,要求在y天内发完;每天至少发放z个奖品;每天抽奖人数不定,事先会假设一个范围是m-n 举例...
  • 抽奖小程序Python实现

    2013-01-05 14:05:05
    接口要求:服务监听一个端口,测试程序不断连接,发送一个数字代表是第几天,比如第1-2000个请求发送1(模拟第一天来了2000人),第2001到5000请求发送2(模拟第二天来了3000人)... 服务返回 0 or 1 表示是否到...
  • 题目:从扑克牌中随机抽5张排,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大,小王可以看成任意数字。 最后面有完整代码 思路: 定义两个方法:一个用于抽牌 ...

    题目:从扑克牌中随机抽5张排,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大,小王可以看成任意数字。

    最后面有完整代码

    思路:

                 定义两个方法:一个用于抽牌  chou(),另一个用于判断是否是连牌judge()。

                1、首先   抽出手牌

                   调用shuffle工具类随机打乱15张牌,取出前5张为自己的手牌。

                   shuffle用法详细解释:https://blog.csdn.net/weixin_40879743/article/details/89281898

                   顺便用冒泡排序对手牌排序,便于后面判断。

               2、计算王的数量

                

            int king = 0;
            arr = chou();
            //遍历抽出来的牌  是14,15,king++
            for(int a:arr){
                if(a == 14 || a == 15){
                    king++;
                }
            }

               3、判断连牌

                 数组中arr[i]+1应该等于arr[i+1]这样才是连牌,一共是5张手牌,所以5张牌都应该满足这个判断。

                 但是由于有王的存在,他可以代替任意一张牌来帮助连接手牌。所以用手牌总数减去王的数量就是剩下需要判断的牌的数量。gg就是需要判断的总数,那么可以反过来这么想:gg+king 的数量就是我们需要的连牌的数量,那么gg就是除王以外需要的连接数。

                 定义 i = 0来保存现在已经有的连接数。当有王,而且不超过手牌数量的范围里循环。当arr[i]+1 == arr[i+1]时代表这两张牌是连接的,那么i++;如果不等于,那么用王抵一张牌来连接 king--,并且把arr[i]赋值为arr[i]+1 这张牌就相当于是王了。再次循环。

                  最后,如果i == gg   连接数i,所需要的连接数gg这俩相等的话,那么就是连牌,如果不等于,那么不是连牌。

    //除王以外需要的连接数 
            int gg = 4-king;
            int i = 0;
            while(king>=0 && i<4){
                if((arr[i]+1) != arr[i+1]){
                    king--;
                    arr[i] = arr[i]+1;
                }else{
                    i++;
                }
            }

    完整代码:

    public class Pai{    
        public static int[] chou(){
            //定义牌堆
            Integer[] num={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
            //存放抽中的手牌
            int[] arr = new int[5];
            //将牌堆转化成Arraylist,以便调用shuffle工具函数
            List<Integer> list=new ArrayList<Integer>(Arrays.asList(num));
            Collections.shuffle(list);
            //取前5个放入手牌
            for(int i=0 ; i<5 ; i++){
                arr[i] = list.get(i);
            }
            //对手牌排序。便于后面判断是否是连牌
            for(int i = 0;i<arr.length-1;i++) {
                for (int j = 0; j < arr.length - i - 1; j++) {
                    if (arr[j] > arr[j + 1]) {
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
            System.out.println(" 抽中的手牌: "+arr[0]+" "+arr[1]+" "+arr[2]+" "+arr[3]+" "+arr[4]);
            return arr;
        }
        //判断
        public static void judge(){
            //手牌
            int[] arr = new int[5];
            //计算王数量
            int king = 0;
            arr = chou();
            for(int a:arr){
                if(a == 14 || a == 15){
                    king++;
                }
            }
            //除王以外需要的连接数
            int gg = 4-king;
            int i = 0;
            while(king>=0 && i<4){
                if((arr[i]+1) != arr[i+1]){
                    king--;
                    arr[i] = arr[i]+1;
                }else{
                    i++;
                }
            }
            if(i == gg)
                System.out.println("是连牌");
            else
                System.out.println("不是连牌");
        }
    
        public static void main(String[] args) {
            for(int i=0 ; i<20 ; i++) {
              judge();
            }
        }
    }

    运行结果:

    由于我设置了20次循环,代表抽了20次,我就不全部截图了,只截取部分。

    展开全文
  • 提示:本程序采用txt读写数据,如果考虑兼容性,读写xml应该更佳。 晚会需要,临时写的,比较...功能描述:默认从1-420个号码中每次随机抽取5个数字,同时将中奖报名报名到txt文件中。代码见附件压缩包 演示: ...

    提示:本程序采用txt读写数据,如果考虑兼容性,读写xml应该更佳。

    晚会需要,临时写的,比较简陋。

    功能描述:默认从1-420个号码中每次随机抽取5个数字,同时将中奖报名报名到txt文件中。代码见附件压缩包

    演示:

    展开全文
  • 一个简单的数字幸运抽奖小程序

    万次阅读 2017-08-01 20:22:23
    有些公司没到年底或许都会有抽奖的活动。今天看博客到这个主题,感觉挺有意思,就自己做了一个...小程序的效果:完全满足上面的要求,并且每个中奖号码的生成时间有间隔,这样更有公示效果和抽奖效果。 下面是代码部分
  • 在该程序当中一共生成了三组随机数: 第一组随机数用于表示抽奖盒子当中的0-9 10 个随机小球 第二组随机数表示1-10 这10个人随机从抽奖盒子当中所拿到的10个不同的位置处的小球 第三组随机数表示1-10 这10个人...
  • 每一轮电脑从 1 到 100 中随机抽一个整数。 电脑请求你猜这个数字,因此你要输入一个 1 到 100 之间的整数。 电脑将你输入的数和它抽取的数进行比较,并告知你的数比它的数大了还是了。 然后它会再次让你输入...
  • 随机中奖(Lottery)

    2019-09-26 03:55:58
    最近想慢慢熟悉一下曾经自己写过的小程序,然后一个一个放在自己的博客上来,可以保存下来,自己做个纪念,也希望大家有问题的时候可以看看。 下面是自己写的一个随机产生数字,进行抽奖的程序,用C#写的,WPF...
  • C#随机数生成器(支持数字跳变)

    千次阅读 2015-11-30 13:53:50
    今天同学说在准备一个晚会,有进行随机号码抽奖的环节,想让我做一个随机号码生成器,最好是那种开始之后数字进行跳变,按键后暂停。 这玩意没啥技术含量,搁在c++里面也就是一个random的事,我总不能给人家一个...
  • 最近,由于一个项目的原因需要使用一些随机数据做测试,于是写了一个随机数据生成工具,... 随机英文输出(自定义大写,自定义固定长度还是随机长度); 随机数字输出(自定义固定长度还是随机长度); ...
  • 公司年会大屏幕抽奖

    2018-09-25 15:06:14
    更新:版本号从今天开始改为类似201707021这种形式,前八位是大版本日期,后面的数字版本的序号 2017.7.2 更新:前端UI界面全部优化 更新:抽奖支持多轮抽奖,可以内定 2017.6.25 更新:摇一摇功能全面优化升级...
  • 每天学一点flash(57)随机抽取

    千次阅读 2009-08-19 23:29:00
    如抽奖程序,就是利用随机数进行抽取的,将随机抽取结果然后显示出输出。 下面是一个抽取不重复一个实验,目的只是做一个介绍作用,和笔记记录。告诉有这样一回事。 问题是:现在有一些不相同的数字,现在通过...
  • 朋友要帮忙写个小程序抽奖,所以就写了这个程序。大体思路是这样的: 人员信息是通过xml配置的,在程序启动时,将人员信息存入一个list中。在每一次抽奖时,为每一个人随机生成一个数字代表他的排序ID,然后将list...
  • 4、不用区分相同数字的花色,有可能一方到A,另一方也到A,这时候后出方手里的A就再也出不了;有可能一方到10,另一方也到10,这时候先出方获胜。 5、由用户先出,轮流出牌,每次只能出一张并且要比别人出的...
  • Java范例开发大全 (源程序

    热门讨论 2011-04-27 07:47:22
     实例147 随机读写Java类文件 221  第3篇 Java面向对象编程  第8章 面向对象(教学视频:72分钟) 226  8.1 类 226  实例148 简单的通讯录类 226  实例149 简单的长度单位转换类 227  实例150 卡车和...
  • Java范例开发大全(全书源程序

    热门讨论 2013-04-05 11:50:26
    实例147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的通讯录类 226 实例149 简单的长度单位转换类 227 实例150 卡车和卡车司机之间的...
  • 3.2.3 有关随机数字的ANSI函数 91 3.2.4 实现random.c 93 3.3 字符串 96 3.3.1 字符串的底层表示 96 3.3.2 数据类型string 97 3.3.3 ANSI字符串库 98 3.3.4 接口strlib.h 102 3.4 标准的I/O库 108 3.4.1 ...
  • 36道C++算法题

    2020-03-29 21:04:36
    随机月份 编写一个随机产生1和12之间的整数的程序,并且根据数字显示相应的月份单词4.商业:检验ISBN-10 ISBN-10(国际标准书号)5.计算三角形周长6.点是否在圆内7.游戏(牌) 模拟从一副52张的牌中一张牌,并显示牌...
  • 组卷方式:自动随机抽题生成word试卷,试卷共三道大题,每题三道难度不同的题,共九道题,分布如下(试卷中有灰色底纹部分应为题目内容): 1、程序填空 (1) 易(11xx) (2) 中(12xx) (3) 难(13xx) 2、...
  • 251.如何使用键盘数字键模拟鼠标单击 252.如何禁止使用Esc键关闭对话框程序 253.如何禁止使用Air+F4组合键关闭程序 254.如何使用回车键切换编辑框的输入焦点 255.如何为应用程序自定义加速键 256.如何创建热键及其...
  • 如何随机更换对话框窗体的背景图像  193.如何设置HTML对话框窗体的背景图像  l94.如何获取默认的程序窗体边界宽度  195.如何获取窗体水平滚动条箭头宽度  196.如何获取窗体垂直滚动条箭头宽度  ...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

随机抽数字小程序