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;
java双色球抽奖程序控制台(含数据库mysql操作)
版权申诉
5星 · 超过95%的资源 126 浏览量
2023-12-28
14:24:04
上传
评论
收藏 169KB ZIP 举报
飞翔的佩奇
- 粉丝: 3560
- 资源: 800
最新资源
- 微软常用运行库 游戏运行库 VC++各个版本
- 微信小程序开发教程.pptx
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- 锐捷网络认证中心网络管理.pdf
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- SD8233LF是一款用于单按键触摸及接近感应开关,其用途是替代传统的机械型开关芯片IC
- 基于YOLOv5的烟雾火焰检测算法研究
- 基于STM32的联合调试侦听设备解决方案原理图PCB源文件调试工具视频(大赛作品)
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈