基于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
