JAVA课程设计彩票号码生成器

我在控制台上输出了一个超级彩票代码。希望能帮到你:1。先说想法。a .声明两个数组和两个变量数组分别放在35的前区和12的后区。变量是两个数组的长度。b .首先随机获取前区五个数:随机。nextInt(前区长度的变量)获取随机数,在第一个数组中找到下标为这个随机数的元素,取出放入变量中。这个可以判断格式。可以用正则表达式判断是不是数字个数。如果是,请填写0。然后从数组中移除该元素。当然,存储数组的变量要从1中减去然后重复4次,这样就得到了1-35中的5个不重复的数。c .同上。2.附代码超级快乐。Java导入Java。Util。Arraylist

导入Java . util . arrays;

导入Java . util . list;

导入Java . util . random;

导入Java . util . regex . matcher;

导入Java . util . regex . pattern;/**

*以下是一个超级彩票随机数选择函数的模拟,严格按照概率生成。

* @作者杰克

*

*/

公开课超级快乐{

//声明一个列表来存储前区号码。

个人分发名单& lt整数& gtobjFrontList = new ArrayList & lt整数& gt();

//声明一个列表来存储区号。

个人分发名单& lt整数& gtobjBackList = new ArrayList & lt整数& gt();

//声明一个正则表达式对象,用于匹配是否是一位数,用于输出验证。

pattern objP = pattern . compile(" \ \ d ");

//要操作的字符串

Matcher objM = null

String[]Front = new String[5];

String[] Back =新字符串[2];//初始化彩票号码

public void init() {

for(int I = 1;我& lt= 35;i++) {

objfrontlist . add(I);

}

for(int I = 1;我& lt= 12;i++) {

objbacklist . add(I);

}

}//开始抽奖。

public void beginLottery() {

Random obj Random = new Random();

int nFrontCount = 35//前区号码总数

int nback count = 12;//后区号码总数//开奖前清空列表,然后初始化。

objfrontlist . clear();

//system . out . println(objFrontList);

objbacklist . clear();

//system . out . println(objBackList);

this . init();

/**

*生成5个前区号码。

*/

for(int I = 0;我& lt5;i++) {

//system . out . println(" nFrontCount:"+nFrontCount);

//最初有35个前缀码,随机生成一个索引。

int nIndex = obj random . nextint(nFrontCount);

//将选定的数字临时存储在一个带正则表达式验证的变量中。

int nTemp = objfrontlist . get(nIndex);

String strTemp =新整数(nTemp)。toString();

//用正则表达式匹配获得的数字

objM = objp . matcher(strTemp);

布尔标志= objm . matches();

//如果是个位数,就要补零。

如果(标志){

front[I]=(" 0 "+strTemp+" ");

}否则{

front[I]=(strTemp+" ");

}

//删除列表中这个索引处的数字,因为选择了一个就不会放回去。

objfrontlist . remove(nIndex);

//数字总数减一。

nFrontCount-;

}

Arrays.sort(前端);

for(int n = 0;n & ltFront .长度;n++) {

system . out . print(Front[n]+" \ t ");

}

system . out . print("+");

/**

*生成2个后区号码。

*/

for(int I = 0;我& lt2;i++) {

//system . out . println(" nBackCount:"+nBackCount);

//最初有12个区号,随机生成一个索引。

int nIndex = obj random . nextint(nBackCount);

//将选定的数字临时存储在一个带正则表达式验证的变量中。

int nTemp = objbacklist . get(nIndex);

String strTemp =新整数(nTemp)。toString();

//用正则表达式匹配获得的数字

objM = objp . matcher(strTemp);

布尔标志= objm . matches();

//如果是个位数,就要补零。

如果(标志){

back[I]=(" 0 "+strTemp+" ");

}否则{

back[I]=(strTemp+" ");

}

//删除列表中这个索引处的数字,因为选择了一个就不会放回去。

objbacklist . remove(nIndex);

//for(int n = 0;n & ltobjbacklist . size();n++){

//system . out . println(" obj backlist:"+obj backlist . get(n));

// }

//数字总数减一。

nback count-;

}

arrays . sort(Back);

for(int n = 0;n & ltBack .长度;n++) {

system . out . print(Back[n]+" \ t ");

}

//记笔记后回车。

system . out . println(" ");

}//按要求输出多少张彩票?

public void output lottery(int VN count){

for(int I = 0;我& ltvnCounti++) {

this . begin lottery();

}

} /**

* @param args

*/

公共静态void main(String[] args) {

SuperJoyful objSJ = new SuperJoyful

enter console objEC = new enter console();

//声明一个正则表达式对象来匹配是否是数字。

pattern objP = pattern . compile(" \ \ d { 1,} ");

//要操作的字符串

Matcher objM = null

//接收控制台输入

String objTemp =(String)objec . print console();

//String strTemp =(String)objTemp;

objM = objp . matcher(objTemp);

布尔标志= objm . matches();

int nTemp = 0;

如果(标志){

nTemp =新整数(objTemp);

}否则{

System.out.println("抱歉,只能输入数字!");

}

objsj . output lottery(nTemp);

}

} enter console . javaimport Java . io . buffered reader;

导入Java . io . io exception;

导入Java . io . inputstreamreader;

公共类输入控制台

{

公共对象printConsole(){

System.out.print("请输入你要随机选择的音符数,按回车键:");

buffered reader objBR = new buffered reader(new InputStreamReader(system . in));

String strValue = null

尝试

{

strValue =(String)objbr . readline();

}

捕捉(IOException e)

{

// TODO自动生成的catch块

e . printstacktrace();

}

返回strValue

}

}