JAVA课程设计彩票号码生成器
导入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
}
}