首页后端开发PHP基于Java怎么实现大乐透号码生成器

基于Java怎么实现大乐透号码生成器

时间2023-04-27 04:12:01发布访客分类PHP浏览1378
导读:今天小编给大家分享一下基于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

若转载请注明出处: 基于Java怎么实现大乐透号码生成器
本文地址: https://pptw.com/jishu/9857.html
个人cdn云服务器有哪些优势 php如何使用数组遍历查询数据库

游客 回复需填写必要信息