java彩票程序_java程序设计 彩票购买抽奖程序 团队博客

该项目是一个模拟福利彩票36选7的Java程序,具备用户注册、购票、抽奖及中奖通知等功能。用户可以手动或随机选号,系统会显示抽奖过程。团队成员包括林羽晴和郭炜埕,分别负责不同模块的开发。项目提供了git地址、提交记录截图、功能架构图和运行截图。待改进点包括解决自动注册与手动注册冲突问题以及支持用户购买多张彩票。
摘要由CSDN通过智能技术生成

一、项目介绍

题目要求

功能要求: 模拟福利彩票36选7,实现彩票的抽奖与中奖通知功能。

1.允许注册用户,用户信息包括用户id,用户名,密码,账户金额,电话号码等属性。

2.允许注册用户购买彩票:手动选号、随机选号,并允许设置投注数。

3.抽奖功能:要求屏幕上能够显示抽奖的号码滚动过程,按“停止”按钮给出抽奖结果。特等奖,7个号码全中。一等奖,6个号码全中。抽出号码后,显示中奖用户id,中奖的倍数。

4.彩票抽奖通知功能:抽出号码后,当用户登录系统后,系统提示是否中奖。

5.设计一自动注册用户(注册10万个)、并自动买彩票为用户买彩票的程序。然后模拟抽奖。

二、团队名称、团队成员介绍(需要有照片)

团队成员:

林羽晴 网络1513 学渣一枚

郭炜埕 网络1513 团支书

三、项目git地址

四、项目git提交记录截图(要体现出每个人的提交记录、提交说明),老师将点击进去重点考核。

4b4491c553c8f8330880118e6d244abc.png

五、项目功能架构图与主要功能流程图

思维导图

9f790181899dc333974bf90f02a81edc.png

六、项目运行截图

登录账号密

7f24c7fc94a2dced05fea6eec1a4ea78.png

随机选号或手动选号

2d0c32131b8a5b54a5209b2e01813843.png

显示用户信息

bf5cd32002e7d682bd6d8f0ea1c38220.png

滚动抽奖并存入数据库

f0452d6645d497c0ac1c5e978aa3ed2e.png

c3cb62c82bed30f2aea82bcb33996fa9.png

模拟注册和查看中奖用户的功能

d82c29177c5c52d07687d961dfe209e3.png

31520527676831869ac614a5e2a90864.png

七、项目关键代码(不能太多)

User.setPassword(NewPasswordField.getPassword());

User.setMoney(NewMoneyField.getText());

User.setTelnum(NewTelnumField.getText());

if(User.getUsername().length()==0){

JOptionPane.showMessageDialog(null, "请输入用户名!");

}else if(Arrays.toString(User.getPassword()).length()==0){

JOptionPane.showMessageDialog(null, "请输入密码!");

}else if(User.getMoney().length()==0){

JOptionPane.showMessageDialog(null, "请输入账户金额!");

}else if(User.getTelnum().length()==0){

JOptionPane.showMessageDialog(null, "请输入电话号码!");

}else{

JOptionPane.showMessageDialog(null, "新用户" + NewUserField.getText() + "注册成功!");

}

String strSql = "insert into userreserve(username,password,money,telnum) values(?,?,?,?)";

PreparedStatement prepare = null;

try {

Class.forName(driverName);

connection = DriverManager.getConnection(url, userName, password);

connection.setAutoCommit(false);

prepare = connection .prepareStatement(strSql);

prepare.setString(1,User.getUsername());

prepare.setString(2, Arrays.toString(User.getPassword()));

prepare.setString(3, User.getMoney());

prepare.setString(4, User.getTelnum());

prepare.addBatch();

prepare.executeBatch();

connection.commit();

}catch (SQLException sqlE) {

sqlE.printStackTrace();

}

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

ArrayList list = new ArrayList<>();

Random random = new Random();

int i = 0, num = 0;

while (i < 7) { //产生不重复的随机数并存入arraylist中

num = random.nextInt(35) + 1;

if (!list.contains(num)) {

list.add(num);

} else continue;

i++;

}

Num1Field.setText(list.remove(0) + "");

Num2Field.setText(list.remove(0) + "");

Num3Field.setText(list.remove(0) + "");

Num4Field.setText(list.remove(0) + "");

Num5Field.setText(list.remove(0) + "");

Num6Field.setText(list.remove(0) + "");

Num7Field.setText(list.remove(0) + "");

}

public void update() throws SQLException{

String strSql = "insert into userreserve(username,password,times,money,telnum,num1,num2,num3,num4,num5,num6,num7) values(?,?,?,?,?,?,?,?,?,?,?,?)";

Connection con = null;

PreparedStatement prepare = null;

ResultSet rs = null;

ArrayList list= new ArrayList();

try {

Class.forName(driverName); // 加载MySql的驱动程序

con = DriverManager.getConnection(url, userName, password);

con.setAutoCommit(false);

prepare = con.prepareStatement(strSql);

Statement statement=con.createStatement();

statement.executeUpdate("truncate table userreserve");//每次都要先清空

for (long i = 0; i < usernumber; i++) {

for (int k = 1; k <= 36; k++) {

list.add(k);

}

prepare.setString(1,(i+1)+"aaa");

prepare.setString(2, "[1, 2, 3]");

prepare.setInt(3,new Random().nextInt(10)+1);//设置随机倍数1-10

prepare.setString(4,"100");

prepare.setString(5,"1300");

for (int j = 0; j < 7; j++) {

int locat=new Random().nextInt(list.size());

prepare.setInt(j+6,list.remove(locat));//将随机产生的号码放入数据库

}

list.clear();

prepare.addBatch();

}

prepare.executeBatch();

con.commit();

} catch...

八、尚待改进或者新的想法

**由于测试自动注册10万的数据,所以每次注册都要先删除原先的数据库,则容易导致手动注册的用户信息丢失,要将抽奖和自动注册功能连接起来,注册用户时遇到相同账户时应如何解决;每个用户可购买多张彩票 **

九、团队成员任务分配,团队成员课程设计博客链接(以表格形式呈现),标明组长。

任务分配:

郭炜埕

用户端图形界面设计,创建User类、实现手动选号、随机选号、设置倍数及属性,买彩票消费金额和中奖奖金计算,数据库信息更新

header 1 | header 2

林羽晴

用户注册信息的存储,登录的匹配,通知中奖的功能,管理员界面设计,要求4和要求5,数据库创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值