package com.heima.demo;
import java.sql.*;
import java.util.*;
public class Lottery {
public static void main(String[] args) throws SQLException {
while (true){
System.out.println("请选择:1 购买彩票 2 开奖 3 大奖查询 4 退出");
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
if (t == 1 ){
System.out.println("请输入购买彩票数量: ");
int vool = sc.nextInt();
List<String> temps = new ArrayList<>();
for (int i=0;i<vool*5;i++){
print(createLuckNums(),temps);
}
String joins = String.join("@@@", temps);
System.out.println("请输入购彩人姓名:");
String name = sc.next();
System.out.println("请输入学号:");
String number1 = sc.next();
System.out.println("请输入出生日期");
String bir = sc.next();
Connection conn = JdbcUtils.getConnect();
PreparedStatement ps = null;
try {
String sql = "insert into purchaser values(?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,number1);
ps.setString(3,bir);
ps.setString(4,joins);
int i = ps.executeUpdate();
System.out.println(i);
} catch (SQLException e) {
e.printStackTrace();
}
}
if (t == 2){
List<String> temps = new ArrayList<>();
System.out.println("本次中奖号码为:");
print(createLuckNums(),temps);
String joins = String.join("@@@", temps);
System.out.println("请输入开奖人姓名:");
String name = sc.next();
System.out.println("请输入开奖日期");
String bir = sc.next();
Connection conn = JdbcUtils.getConnect();
PreparedStatement ps = null;
String sql = "insert into lotter_info values(?,?,?)";
try {
ps = conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,bir);
ps.setString(3,joins);
int i = ps.executeUpdate();
System.out.println(i);
} catch (SQLException e) {
e.printStackTrace();
}
}
if (t == 3){
Connection conn = JdbcUtils.getConnect();
PreparedStatement ps = null;
ResultSet resultSet = null;
//执行查询
ps = conn.prepareStatement("select * from purchaser");
resultSet = ps.executeQuery();
String numberstr = "";
String name = "";
//操作ResultSet对象获取查询的结果集
while(resultSet.next()){
//获取列中的数据
numberstr = resultSet.getString("buyNo");
name = resultSet.getString("name");
}
String[] split = numberstr.split("@@@");
Map<Integer,String> map = new HashMap<>();
ps = conn.prepareStatement("select * from lotter_info");
resultSet = ps.executeQuery();
int[] tempnum = new int[7];
//操作ResultSet对象获取查询的结果集
List<String> tlist = new ArrayList<>();
while(resultSet.next()){
//获取列中的数据
tlist.add(resultSet.getString("win_number"));
}
String s1 = tlist.get(tlist.size() - 1);
String[] split2 = s1.split(",");
for (int i = 0; i < split2.length; i++) {
tempnum[i] = Integer.parseInt(split2[i]);
}
for (String s : split) {
int[] luckNums1 = new int[7];
String[] split1 = s.split(",");
for (int i = 0; i < split1.length; i++) {
luckNums1[i] = Integer.parseInt(split1[i]);
}
int res = judge(tempnum,luckNums1);
map.put(res,s);
}
for (int i = 6; i >= 0 ; i--) {
if (map.containsKey(0)){
System.out.println(name + "购彩人运气不佳,期待下次中奖");
}else{
System.out.println("恭喜获得" + i + " 等奖,中奖彩票号码为:" + map.get(i));
}
break;
}
}
if (t == 4){
System.out.println("退出系统");
break;
}
}
}
public static int[] createLuckNums() {
int[] luckNums = new int[7];
Random r = new Random();
// 1-6 为红球
for (int i = 0; i < luckNums.length - 1; i++) {
// 随机生成 1-33 的数字
while (true) {
int data = r.nextInt(33) + 1;
boolean flag = true;
for (int j = 0; j < i; j++) {
if (luckNums[j] == data) {
flag = false;
break;
}
}
if (flag) {
luckNums[i] = data;
break;
}
}
}
// 最后一个为蓝球
luckNums[luckNums.length - 1] = r.nextInt(16) + 1;
return luckNums;
}
public static void print(int[] arr,List<String> temps) {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
buf.append(i == arr.length - 1 ? arr[i] : arr[i] + ",");
}
System.out.println(buf.toString());
if (temps != null){
temps.add(buf.toString());
}
}
public static int judge(int[] luckNums, int[] userNums) {
int redCount = 0;
int blueCount = 0;
String winString = "";
int result = 0;
// 统计红球命中个数
for (int i = 0; i < userNums.length - 1; i++) {
for (int j = 0; j < luckNums.length - 1; j++) {
if (userNums[i] == luckNums[j]) {
redCount++;
break;
}
}
}
// 蓝球是否命中
blueCount = userNums[userNums.length - 1] == luckNums[luckNums.length - 1] ? 1 : 0;
winString = redCount + "+" + blueCount;
System.out.println("中奖号码为: ");
print(luckNums);
System.out.println("投注号码为: ");
print(userNums);
System.out.println("您命中的红球数为: " + redCount);
System.out.println("您命中的蓝球数为: " + blueCount);
// 判断中奖情况
switch (winString) {
case "0+1":
case "1+1":
case "2+1":
result = 6;
break;
case "3+1":
case "4+0":
result = 5;
break;
case "4+1":
case "5+0":
result = 4;
break;
case "5+1":
result = 3;
break;
case "6+0":
result = 2;
break;
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
功能描述: 使用面向对象的技术完成双色球彩票购买及抽奖程序,完成以下功能,双色球的游戏规则自行百度。 购买彩票功能,需输入购买几张彩票,每张彩票采用机选方1.式产生5注号码,将本次产生的所有号码和购买日期以及购彩人全部存入数据库。 2.完成开奖程序,每次开奖时开出的6个红球和1个蓝球,先按颜色排序,如果颜色相同,再按号码大小排序。同样需要将开奖人、开奖日期、中奖号码都存储到数据库中。 3.大奖查询功能,将本周购买的所有彩票和本次开奖结果进行比对,打印中奖最多的这注彩票号码、购彩人、购买日期。如果所有彩票一个号都没中,打印”XXX(自己姓名)购彩人运气不佳期待下次中奖”。 要求必须声明一个购彩人的类,用自己的姓名、学号和出生日期实例化出这位购彩人。 将所有代码和运行结果截图,数据库所有表中的内容截图,所有源代码(*iava)也要提交上传
资源推荐
资源详情
资源评论
收起资源包目录
shuangseq-sdm.zip (14个子文件)
双色球
截图
3.png 46KB
1.png 70KB
5.png 15KB
4.png 26KB
2.png 29KB
精简源码
Purchaser.java 733B
JdbcUtils.java 2KB
Lottery.java 8KB
数据库
lotter_info.sql 2KB
完整源码
wjkwk
pom.xml 1KB
src
test
java
com
powernode
main
resources
java
com
heima
demo
Purchaser.java 733B
JdbcUtils.java 2KB
Lottery.java 8KB
mybatisadvancedmapping.iml 344B
共 14 条
- 1
资源评论
- zhangxianhui012024-01-04资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
- 2302_822410052024-01-02资源值得借鉴的内容很多,那就浅学一下吧,值得下载!
- 2301_772062592024-01-04资源内容详细,总结地很全面,与描述的内容一致,对我启发很大,学习了。
飞翔的佩奇
- 粉丝: 3556
- 资源: 799
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功