JAVA课程设计 彩票号码产生器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA课程设计 彩票号码产生器相关的知识,希望对你有一定的参考价值。
如题
我这有个超级大乐透的代码在控制台输出的 还没有统计奖项概率 希望可以帮到你 :1.先说下思路 a.声明2个数组和2个变量数组分别放前区的35个数和后区的12个数,变量分别为这两个数组的长度 b.首先随机获得前区的5个号码:Random .nextInt(前区长度的变量) 获得随机数,找到第一个数组中下标为这个随机数的元素,取出放在变量中. 这 儿可以判断格式 的.可以用正则表达式判断是否为各位数,如果是的话就补全0.然后移除数组中这个元素.当然存储数组的变量要减去1的然后重复 以上的4次这样就获得了1-35中5个不重复的数字. c.同上. 2.附代码SuperJoyful.javaimport java.util.ArrayList;import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/**
* 以下是模拟一个超级大乐透随机选号功能,严格按概率生成
* @author Jack
*
*/
public class SuperJoyful
// 声明一个List用于存放前区号码
private List<Integer> objFrontList = new ArrayList<Integer>();
// 声明一个List用于存放后区号码
private List<Integer> objBackList = new ArrayList<Integer>();
// 声明一个正则表达式对象,用于匹配是否是一位数字,用于输出时验证
Pattern objP = Pattern.compile("\\d");
// 所要操作的字符串
Matcher objM = null;
String[] Front = new String[5];
String[] Back = new String[2]; // 初始化摇奖号码
public void init()
for (int i = 1; i <= 35; i++)
objFrontList.add(i);
for (int i = 1; i <= 12; i++)
objBackList.add(i);
// 开始摇奖
public void beginLottery()
Random objRandom = new Random();
int nFrontCount = 35; // 前区号码总数
int nBackCount = 12; // 后区号码总数 // 摇奖前先清空LIST,再初始化
objFrontList.clear();
//System.out.println(objFrontList);
objBackList.clear();
//System.out.println(objBackList);
this.init();
/**
* 产生5个前区号码
*/
for (int i = 0; i < 5; i++)
//System.out.println("nFrontCount:"+nFrontCount);
// 初始时有35个前区号,随机产生一个索引
int nIndex = objRandom.nextInt(nFrontCount);
// 将选出的号码暂时存放在变量中,带正则表达式验证
int nTemp = objFrontList.get(nIndex);
String strTemp = new Integer(nTemp).toString();
// 将获得的号码与正则表达式匹配
objM = objP.matcher(strTemp);
boolean flag = objM.matches();
// 如果是一位数,则在前面补零
if (flag)
Front[i] = ("0" + strTemp + " ");
else
Front[i] = (strTemp + " ");
// 删除LIST中该索引处的号码,因为选出一个就不再放回
objFrontList.remove(nIndex);
// 号码总数减少一个
nFrontCount--;
Arrays.sort(Front);
for (int n = 0; n < Front.length; n++)
System.out.print(Front[n] + "\t");
System.out.print("+ ");
/**
* 产生2个后区号码
*/
for (int i = 0; i < 2; i++)
//System.out.println("nBackCount:"+nBackCount);
// 初始时有12个后区号,随机产生一个索引
int nIndex = objRandom.nextInt(nBackCount);
// 将选出的号码暂时存放在变量中,带正则表达式验证
int nTemp = objBackList.get(nIndex);
String strTemp = new Integer(nTemp).toString();
// 将获得的号码与正则表达式匹配
objM = objP.matcher(strTemp);
boolean flag = objM.matches();
// 如果是一位数,则在前面补零
if (flag)
Back[i] = ("0" + strTemp + " ");
else
Back[i] = (strTemp + " ");
// 删除LIST中该索引处的号码,因为选出一个就不再放回
objBackList.remove(nIndex);
// for(int n = 0; n<objBackList.size();n++)
// System.out.println("objBackList:"+objBackList.get( n ));
//
// 号码总数减少一个
nBackCount--;
Arrays.sort(Back);
for (int n = 0; n < Back.length; n++)
System.out.print(Back[n] + "\t");
// 产生一注后回车
System.out.println("");
// 按要求输出多少注彩票
public void outPutLottery(int vnCount)
for (int i = 0; i < vnCount; i++)
this.beginLottery();
/**
* @param args
*/
public static void main(String[] args)
SuperJoyful objSJ = new SuperJoyful();
EnterConsole objEC = new EnterConsole();
// 声明一个正则表达式对象,用于匹配是否是数字
Pattern objP = Pattern.compile("\\d1,");
// 所要操作的字符串
Matcher objM = null;
// 接收控制台输入
String objTemp = (String) objEC.printConsole();
//String strTemp = (String)objTemp;
objM = objP.matcher(objTemp);
boolean flag = objM.matches();
int nTemp = 0;
if (flag)
nTemp = new Integer(objTemp);
else
System.out.println("对不起,只能输入数字!");
objSJ.outPutLottery(nTemp);
EnterConsole.javaimport java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class EnterConsole
public Object printConsole()
System.out.print("请输入你要随机选取多少注,确认回车即可:");
BufferedReader objBR = new BufferedReader(new InputStreamReader(System.in));
String strValue = null;
try
strValue = (String)objBR.readLine();
catch ( IOException e )
// TODO Auto-generated catch block
e.printStackTrace();
return strValue;
参考技术A 课程辅助教学网站
电话拨号程序
Web浏览与搜索
传真收发
对Modem的控制
云台控制系统
自动报警系统
VC串口编程调试精灵
VC单片机通信
人事管理系统
企业员工考勤管理系统
简易留言本
简易论坛
在线聊天室
在线购物网站(C#)
热卖作品
超市后台管理系统
企业人力资源管理系统
课程辅助教学网站
学生档案管理系统(VB+...
电脑销售管理系统
图书管理系统
酒店管理系统
酒店客房管理系统(前台+...
在线考试系统
财务管理系统
企业工资管理系统
电子商务系统
学生成绩管理系统
人事管理系统
销售管理系统(VB+SQ...
支付宝信任公告
本站荣誉成为支付宝信任商家
最新推荐
VB类作品
财务管理系统
点灯游戏
学生档案管理系统(VB+...
医院工资管理系统
旅游资源管理系统(综合版...
POS(财务+人事+库房...
销售管理系统(VB+SQ...
图书管理系统
Delphi类作品
酒店客房管理系统(前台+...
人事档案管理系统
工资管理系统
固定资产管理系统
人力资源管理系统
库存管理系统
手机销售管理系统
远程教育管理系统
ASP类作品
课程辅助教学网站
在线考试系统
留言板(2)
在线校友录
学生成绩管理系统
在线聊天室(2)
企业网上办公系统
在线聊天室
VC类作品
电话拨号程序
Web浏览与搜索
传真收发
对Modem的控制
云台控制系统
自动报警系统
VC串口编程调试精灵
VC单片机通信
JSP类作品
简易论坛
在线聊天室
物流信息管理
企业网站
电子商务系统
企业经销存管理系统
企业OA(办公自动化系统...
人力资源管理系统
其他类作品
人事管理系统
企业员工考勤管理系统
简易留言本
贸易管理系统
小区管理系统(综合版)
会员管理系统
票据管理系统
经销存管理系统
企业员工计时和帐单管理
图片库管理系统
.NET类作品
在线购物网站(C#)
简易公司网站
在线图书管理系统(C#)
多彩网络文本编辑器(C#...
音乐合(C#)
论坛(C#)
在线服务网站(C#)
个人秘书办公系统
定做作品展示
工程图纸管理系统
电话号码查询系统
出版社信息系统
火车站售票系统
学生成绩管理系统
彩票号码查询分析系统
成绩查询系统
超市后台管理系统
电脑销售管理系统
工地工伤信息管理系统
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la 参考技术B 符号字体制作完毕追答
姐妹一直给我推荐玩。12B ditu/www.lebeifu.com?otw317
彩票给出几组号码,就能预测下期的号码,在哪儿有啊
参考技术A 3d玩法简单,中奖率高,一直深受彩民喜爱,但计算3d下期开奖号,是最为头疼的事情,今天提到的四步,一定要记牢哦。第一步,采用排除法的方式,将号码划分成奇数和偶数,考虑其中的强弱因素,根据平衡原理而确宜定号码奇偶比例。第二步,确定当期合数值为奇数或为偶数,这样的工作可以将50%的合数排除,的范围可直接缩小50%,对有基础的彩民还可以确定合数值的大与小,又可以缩小50%,把确定的结论用于选号。第三步,确定点数的大致范围,按号码走势的周期规律决定包点的范围,缩小范围圈;全小和全大的形式在一般正常的周期中是很难开出的,一般在确定点数比值时,应当考虑上下十个点左右。第四步,个、十、百位的大小比值也可依据上几期号码走势确定,由于全大、全小号码在一般的周期中很难开出,可排除全大或全小的组合形式。中国福利彩票“3D”由中国福利彩票发行中心统一发行。中国福利彩票“3D”实行自愿购买,凡投注者均被视为同意遵守本规则。中国福利彩票发行管理中心指定网络信息发布媒体为中彩网。中国福利彩票3D游戏(以下简称3D),是以一个3位自然数为投注号码的彩票,投注者从000-999的数字中选择一个3位数进行投注。3D在各省(区、市)保留各自奖池、单独派奖的基础上实行三统一,即统一名称标识、统一游戏规则、统一开奖号码。追答www.33633.com
投注ok火款辈季
am5678.com
投注确实ok-凭悼贷隆
www.33633.com
投注确实ok-乓晴怀阿
am5678.com
投注确实ok-售讯辫很
本回答被提问者采纳以上是关于JAVA课程设计 彩票号码产生器的主要内容,如果未能解决你的问题,请参考以下文章