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
java课程设计-彩票购买抽奖程序
目录
彩票抽奖程序
可实现功能:
- 允许注册用户,用户信息包括用户id,用户名,密码,账户金额,电话号码等属性。
- 允许注册用户购买彩票:手动选号、随机选号,并允许设置投注数。
- 抽奖功能:要求屏幕上能够显示抽奖的号码滚动过程,按“停止”按钮给出抽奖结果。特等奖,7个号码全中。一等奖,6个号码全中。抽出号码后,显示中奖用户id,中奖的倍数。
- 彩票抽奖通知功能:抽出号码后,当用户登录系统后,系统提示是否中奖。
- 设计一自动注册用户(注册10万个)、并自动买彩票为用户买彩票的程序。然后模拟抽奖。测试自己的抽奖程序正确与否。
一、 团队介绍
团队名称:澳门赌场三人组
团队成员: 钟海清[组长]:201821123098,网络1814
周仁杰:201821123120,网络1814
李晓阳:201821144049,网络1814
二、 项目git地址 https://gitee.com/haiqingz/Lottery
三、 项目git提交记录截图
四、 项目功能架构图与主要功能流程图
项目功能架构图
主要功能流程图
五、 项目运行截图
用户注册界面:
用户登录界面:
用户购买彩票界面:
管理员运行界面:
自动注册界面:
滚动抽奖界面:
查看历史中奖界面:
六、 项目关键代码
客户端
管理员
滚动抽奖-----多线程
自动注册-----随机生成用户及订单信息
读取文件信息-----将txt内容存于vector,之后创建默认模型model = new DefaultTableModel(data, columnNames)放于GUI中
七、尚待改进或者新的想法
相对于文件,数据库会更优一些,文件需要读取再进行操作比较麻烦
未能实现联网功能比较遗憾,有时间的话会继续完善
八、团队成员任务分配
钟海清[组长]:
主要负责管理员类,实现滚动抽奖、自动注册购买彩票以及查看中奖信息和用户信息的方法
周仁杰:
主要负责用户和管理员的GUI界面设计、监听器
李晓阳:
主要负责用户类,实现登录注册、手动以及随机选号、购买彩票功能
团队成员课程设计博客链接:
小组成员 | 博客链接 |
---|---|
钟海清 | |
周仁杰 | |
李晓阳 |
以上是关于JAVA课程设计 彩票号码产生器的主要内容,如果未能解决你的问题,请参考以下文章