基于Java怎么实现大乐透号码生成器
导读:今天小编给大家分享一下基于Java怎么实现大乐透号码生成器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
今天小编给大家分享一下基于Java怎么实现大乐透号码生成器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
一、题目
大乐透是中国体育彩票的一种玩法,是国家体育总局体彩中心为适应市场发展需要,丰富体育彩票的市场结构,经过慎重研究和广泛的市场调研,于2007年5月28日向全国推出的一种全新大盘彩票玩法。到现在还在运行。
玩法:前区“35选5”+后区“12选2”
基本玩法是,从135随机数字中选5个不重复数字, 112随机数字中选2个不重复数字。如果完全跟中奖号码一样,则中了一等奖。
实现:实现一个大乐透号码生成器。
二、解题思路
创建一个类:SuperFun
使用SuperFun继承JFrame构建窗体
窗体主要有三部分组成:输入部分;显示部分;生成号码按钮
通过Random类的实例生成伪随机数流。
随机生成前段5个号码的方法:getStartNumber()
随机生成后段2个号码的方法:getEndNumber()
三、代码详解
packagecom.xiaoxuzhu; importjava.awt.BorderLayout; importjava.awt.EventQueue; importjava.awt.Font; importjava.awt.GridLayout; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjava.util.ArrayList; importjava.util.Collections; importjava.util.List; importjava.util.Random; importjavax.swing.JButton; importjavax.swing.JFrame; importjavax.swing.JLabel; importjavax.swing.JPanel; importjavax.swing.JScrollPane; importjavax.swing.JTextArea; importjavax.swing.JTextField; importjavax.swing.SwingConstants; importjavax.swing.UIManager; importjavax.swing.border.EmptyBorder; /** *Description:大乐透 * *@authorxiaoxuzhu *@version1.0 * *pre> *修改记录: *修改后版本 修改人 修改日期 修改内容 *2022/4/30.1 xiaoxuzhu 2022/4/30 Create */pre> *@date2022/4/30 */ publicclassSuperFunextendsJFrame{ /** * */ privatestaticfinallongserialVersionUID=6787592245621788484L; privateJPanelcontentPane; privateJTextFieldtextField; privateJTextAreatextArea; /** *Launchtheapplication. */ publicstaticvoidmain(String[]args){ try{ UIManager .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch(Throwablee){ e.printStackTrace(); } EventQueue.invokeLater(newRunnable(){ publicvoidrun(){ try{ SuperFunframe=newSuperFun(); frame.setVisible(true); } catch(Exceptione){ e.printStackTrace(); } } } ); } /** *Createtheframe. */ publicSuperFun(){ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100,100,450,300); contentPane=newJPanel(); contentPane.setBorder(newEmptyBorder(5,5,5,5)); contentPane.setLayout(newBorderLayout(0,0)); setContentPane(contentPane); setTitle("大乐透号码生成器"); JPanelpanel=newJPanel(); contentPane.add(panel,BorderLayout.NORTH); panel.setLayout(newGridLayout(1,2,5,5)); JLabellabel=newJLabel("请输入号码组数:"); label.setFont(newFont("微软雅黑",Font.PLAIN,18)); label.setHorizontalAlignment(SwingConstants.CENTER); panel.add(label); textField=newJTextField(); textField.setFont(newFont("微软雅黑",Font.PLAIN,18)); panel.add(textField); textField.setColumns(10); JPanelbuttonPanel=newJPanel(); contentPane.add(buttonPanel,BorderLayout.SOUTH); JButtonbutton=newJButton("生成号码"); button.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ inttimes=Integer.parseInt(textField.getText()); //获得用户输入的需要生成的中奖号码个数 //省略提示购买数量太多的代码 StringBuildersb=newStringBuilder(); //创建字符串生成器对象 for(inti=0; itimes; i++){ ListString> startList=getStartNumber(); //获得前段号码的集合 ListString> endList=getEndNumber(); //获得后段号码的集合 for(intm=0; mstartList.size(); m++){ sb.append(startList.get(m)); //在字符串生成器中添加前段号码 } sb.append(""); for(intn=0; nendList.size(); n++){ sb.append(endList.get(n)); //在字符串生成器中添加后段号码 } sb.append("\n"); } textArea.setText(sb.toString()); //在文本域中显示号码 } } ); button.setFont(newFont("微软雅黑",Font.PLAIN,18)); buttonPanel.add(button); JScrollPanescrollPane=newJScrollPane(); contentPane.add(scrollPane,BorderLayout.CENTER); textArea=newJTextArea(); textArea.setFont(newFont("微软雅黑",Font.PLAIN,18)); scrollPane.setViewportView(textArea); } /** *随机生成前段5个号码的方法 * *@return */ publicListString> getStartNumber(){ ListString> list=newArrayListString> (); //创建前段号码集合 StringluckyNumber=""; for(inti=1; i36; i++){ //初始化前段号码集合 if(i10){ list.add("0"+i+""); //添加0~9的号码 } else{ list.add(""+i+""); //添加大于9的号码 } } introundIndex=0; ListString> luckylist=newArrayListString> (); //保存前段号码的List集合 for(intj=0; j5; j++){ intamount=list.size(); //获取前段号码的个数 Randomr=newRandom(); //创建并实例化Random的对象 roundIndex=r.nextInt(amount); //获取一个0到amount-1的随机数 luckyNumber=list.get(roundIndex); //获取幸运数字 luckylist.add(luckyNumber); //添加luckylist中 list.remove(roundIndex); //移除刚刚产生的号码 } Collections.sort(luckylist); //对前段号码进行排序 returnluckylist; } /** *随机生成后段2个号码的方法 * *@return */ publicListString> getEndNumber(){ ListString> list=newArrayListString> (); //创建后段号码集合 StringluckyNumber=""; for(inti=1; i13; i++){ //初始化后段号码集合 if(i10){ list.add("0"+i+""); //添加0~9的号码 } else{ list.add(""+i+""); //添加大于9的号码 } } introundIndex=0; ListString> luckylist=newArrayListString> (); //保存后段号码的List集合 for(intj=0; j2; j++){ intamount=list.size(); //获取后段号码的个数 Randomr=newRandom(); //创建并实例化Random的对象 roundIndex=r.nextInt(amount); //获取一个0到amount-1的随机数 luckyNumber=list.get(roundIndex); //获取幸运数字 luckylist.add(luckyNumber); //添加luckylist中 list.remove(roundIndex); //移除刚刚产生的号码 } Collections.sort(luckylist); //对后段号码进行排序 returnluckylist; } }
以上就是“基于Java怎么实现大乐透号码生成器”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 基于Java怎么实现大乐透号码生成器
本文地址: https://pptw.com/jishu/9857.html