彩票购买抽奖程序

一、团队成员

网络2112 林双强  202121333059

二、项目git地址

仓库数据统计 · 林双强/BigJob - Gitee.com

三、项目简介

登录时自动识别用户或管理员,用户需要账号和密码来登录,登录后可以实现彩票的手动选号,自动选号进行购买,余额不足则无法购买,可以充值余额。

管理员进行开奖,点开始屏幕彩票号开始滚动,按暂停及开出奖项,管理员可以查看用户的中奖信息。可通过后台进行十万个用户数据 的测试。如果用户在线且中奖可以实时通知。

四、项目功能架构图

五、包规划以及UML图

 

六、部分运行测试

七、核心代码

开奖

drawButton.setOnAction(e->{if(flag[0]){flag[0]=false;new Thread(() -> {while (!flag[0]){HashSet<Integer> set = new HashSet<>();Random random = new Random();while(set.size()<8){set.add(random.nextInt(36)+1);}Iterator<Integer> iterator = set.iterator();textFieldNum1.setText(iterator.next()+"");textFieldNum2.setText(iterator.next()+"");textFieldNum3.setText(iterator.next()+"");textFieldNum4.setText(iterator.next()+"");textFieldNum5.setText(iterator.next()+"");textFieldNum6.setText(iterator.next()+"");textFieldNum7.setText(iterator.next()+"");try {Thread.sleep(20);} catch (InterruptedException ex) {throw new RuntimeException(ex);}}}).start();}});stopButton.setOnAction(e->{flag[0]=true;});

中奖后的转账

public static void transforAccout(HashSet<Integer> set,int id){Connection conn;PreparedStatement st;HashSet<Integer> integers;int times=0;//倍数try{conn = JdbcUtils.getConnection();String sql="select * from lottery where `ID` =? and account!=0";st=conn.prepareStatement(sql);st.setInt(1,id);ResultSet resultSet = st.executeQuery();while(resultSet.next()){integers=new HashSet<>();String account1 = resultSet.getString("account");integers.add(resultSet.getInt("num1"));integers.add(resultSet.getInt("num2"));integers.add(resultSet.getInt("num3"));integers.add(resultSet.getInt("num4"));integers.add(resultSet.getInt("num5"));integers.add(resultSet.getInt("num6"));integers.add(resultSet.getInt("num7"));BigDecimal money=resultSet.getBigDecimal("money");integers.removeAll(set);int size= integers.size();switch (size) {case 5 -> times = 20;case 4 -> times = 500;case 3 -> times = 5000;case 2 -> times = 50000;case 1 -> times = 500000;case 0 -> times = 5000000;}if(size>1){BigDecimal ignotNum = getIgnotNum(account1);for (int i = 0; i < Administrator.getOnlineClientList().size(); i++) {if(account1.equals(Administrator.getOnlineClientList().get(i).getAccount())){Socket socket = Administrator.getOnlineClientList().get(i).getSocket();PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));out.println("你中了"+account1);out.flush();}}realTranforAccount(account1,ignotNum.add(money.multiply(new BigDecimal(times))));}}JdbcUtils.release(conn,st,null);} catch (SQLException e) {e.printStackTrace();} catch (IOException e) {throw new RuntimeException(e);}}public static void realTranforAccount(String account,BigDecimal money){Connection conn;PreparedStatement st;try {conn=JdbcUtils.getConnection();String sql="update user set ingotNum=? where account=?";st=conn.prepareStatement(sql);st.setBigDecimal(1,money);st.setString(2,account);st.executeUpdate();JdbcUtils.release(conn,st,null);} catch (SQLException e) {throw new RuntimeException(e);}}

显示购彩记录

public static ArrayList<Lottery> displayBought(String account) {//显示买过了的Connection conn;PreparedStatement st ;ArrayList<Lottery> lotteries = new ArrayList<>();try {conn = JdbcUtils.getConnection();String sql = "select * from lottery where `account`=? ";st = conn.prepareStatement(sql);st.setString(1,account);ResultSet resultSet = st.executeQuery();while(resultSet.next()){HashSet<Integer> set = new HashSet<>();int id = resultSet.getInt("id");BigDecimal money = resultSet.getBigDecimal("money");int run = resultSet.getInt("run");int num1 = resultSet.getInt("num1");set.add(num1);int num2 = resultSet.getInt("num2");set.add(num2);int num3 = resultSet.getInt("num3");set.add(num3);int num4 = resultSet.getInt("num4");set.add(num4);int num5 = resultSet.getInt("num5");set.add(num5);int num6 = resultSet.getInt("num6");set.add(num6);int num7 = resultSet.getInt("num7");set.add(num7);Lottery lottery = new Lottery(id, set, money,run);lotteries.add(lottery);}} catch (SQLException e) {throw new RuntimeException(e);}return lotteries;}

购买彩票

public static void purchase(Lottery lottery) throws SQLException {Connection conn;PreparedStatement st;Iterator<Integer> iterator = lottery.getNums().iterator();conn = JdbcUtils.getConnection();String sql="insert into lottery(`id`,`account`,`money`,`run`,`num1`,`num2`,`num3`,`num4`,`num5`,`num6`,`num7`) " +"values (?,?,?,?,?,?,?,?,?,?,?)";st=conn.prepareStatement(sql);st.setInt(1,lottery.getID());st.setString(2,lottery.getAccount());st.setBigDecimal(3,lottery.getMoney());st.setInt(4,lottery.getRun());st.setInt(5,iterator.next());st.setInt(6,iterator.next());st.setInt(7,iterator.next());st.setInt(8,iterator.next());st.setInt(9,iterator.next());st.setInt(10,iterator.next());st.setInt(11,iterator.next());JdbcUtils.release(conn,st,null);}

八、展望

使用的是GUI,将来可以使用web技术,还有框架技术加以完善。

没法控制手动选号时号码重复的问题。

可视化界面设计的比较潦草,将来有待完善。

还未生成exe文件

Java课程设计-基于网络的彩票购买程序相关推荐

  1. Java课程设计基于ssm的微信小程序

    Java课程设计, 基于ssm的微信小程序 后端涉及技术spring.mysql等 效果查看请扫一扫 喜欢可以点赞哟

  2. Java课程设计-基于Java Swing的学生信息管理系统-版本二

    Java课程设计-基于Java Swing的学生信息管理系统-版本二 1.介绍 2.相关技术 3. 代码仓库 4.所需环境 5.安装教程 6.运行截图 7.相关博客 1.介绍 设计一个简单学生个人信息 ...

  3. Java课程设计基于SSM的出租房管理

    Java课程设计, 基于ssm 后端涉及技术spring.mysql等 效果演示 代码 黄勇康 (huang-yk) - Gitee.com 部分sql create table user (user ...

  4. Java课程设计-基于Swing的学生信息管理系统

    Java课程设计-基于Swing的学生信息管理系统 1.介绍 2.相关技术 3.项目地址 4.所需环境 5.安装教程 6.运行截图 7.相关博客 本代码是整理其他人项目,如有问题请及时联系笔者. 1. ...

  5. 计算机网络课程设计--基于TCP协议网上聊天程序--python实现带图形界面--socket--多线程

                                              基于TCP协议网上聊天程序 引言 21世纪是一个以网络为核心的信息时代,要实现信息化,就必须依靠完善的网络.而随着计 ...

  6. java课程设计抽奖程序源码_java课程设计---个人博客 彩票抽奖程序 201821123098 钟海清...

    1.团队课程设计博客链接 2.个人负责模块或任务说明 我主要负责主要负责管理员类,实现滚动抽奖.自动注册购买彩票以及查看中奖信息和用户信息的方法 3.自己的代码提交记录截图 4.自己负责模块或任务详细 ...

  7. java课程设计:基于SSM实现个人健康管理系统

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...

  8. Java课程设计 基于c/s端学生成绩管理系统

    java课设选择了学生成绩管理系统,在此记录一下自己做课设的一些想法和问题. 文件源码放在: https://gitee.com/feeling-cool/java-information-syste ...

  9. java课程设计电子相册_java课程设计基于Java的电子相册系统设计与实现.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava java课程设计基于Java的电子相册系统设计与实现. ...

最新文章

  1. 划痕麻点检测程序_精密外观检测机设计
  2. 2.4.1 算术逻辑单元ALU与加法器(串行加法器、并行加法器、全加器)
  3. java基础知识系列---垃圾收集
  4. 【NetApp】exportfs命令的使用
  5. thinkphp3.2.3 自动验证 正则验证
  6. 最新GitHub新手使用教程(Windows Git从安装到使用)——详细图解
  7. 阿蛮点歌 未能成功访问服务器,阿蛮歌霸KTV点歌软件的4种添加歌曲的方法
  8. 交警计算机系统审计,公安移动警务审计及考核系统
  9. 基于自适应巡视算法的工业物联网异常行为检测
  10. 烽火狼烟丨VMware Workspace ONE Access身份验证绕过、本地提权漏洞风险提示
  11. 拨开迷雾 看见vivo穿越周期的秘密
  12. 106个汉语多音字一句话总结!
  13. BlankDTX9Window - DirectX9c 程序的模板[原创]
  14. PMP备考错题集-作业习题二
  15. 重磅发布!RK3568开发板C应用编程手册
  16. 删除服务 MySQL mysql删除服务 无法删除服务
  17. JavaEE - 面向对象-构造方法、封装、类加载过程
  18. 智能计算系统(学习笔记)-第二章神经网络
  19. el-upload 文件上传一次再次上传无反应
  20. 双目相机标定图片拍摄规范

热门文章

  1. 解决当考生点击开始考试的时候出现卡顿问题
  2. 游戏运营环节的一些关键转化率
  3. Unix/Linux编程:网络接口层
  4. 多个Sheet根据不同条件对应字段导出
  5. (附源码)springboot 校园二手销售网站 毕业设计 161417
  6. ssm跨平台教学系统毕业设计源码280843
  7. Substance Designer油画风格贴图实例制作视频教程
  8. 5G系统——系统架构模型(1)
  9. 嵌入式音频软件的架构
  10. 多语言笔记系列:Polyglot Notebooks 中使用 Html