📄 lottery.java
字号:
case 2:Storeroom.write(atf1.getText());
Storeroom.write(atf2.getText());break;
//如果是2,就调用自定以方法Storeroom下的静态方法2次
//分别把文本1和文本2中的信息传过去
//通过调用这个方法2次把这2个文本中的字符串写入数据库
//以下同理
case 3:Storeroom.write(atf1.getText());
Storeroom.write(atf2.getText());
Storeroom.write(atf3.getText());break;
case 4:Storeroom.write(atf1.getText());
Storeroom.write(atf2.getText());
Storeroom.write(atf3.getText());
Storeroom.write(atf4.getText());break;
default:Storeroom.write(atf1.getText());
Storeroom.write(atf2.getText());
Storeroom.write(atf3.getText());
Storeroom.write(atf4.getText());
Storeroom.write(atf5.getText());break;
}
}
}
}
//------------------------------------------------------------------------------------------------
public static void main(String[] args) //主函数
{
new Lottery();
}
}
//***********************************************************************************************
//-----------------------------------------------------------------------------------------------
//***********************************************************************************************
class algo //返回1-35的随机数的类
{
static String[] great(int a) //定义反回多组随机数的静态方法
//(可以类名.直接调用),形参为要几组随机数
{
String str[]=new String [a];
//定义要返回的数组(形参a为数组长度)
String m[]=new String[7];
//定义中转int用的数组
for(int k=0;k<a;k++) //需要几组数就循环几次
{
str[k]=""; //让字符数组中的每个字符串都为空;
int q[]=new int[7]; //获取随机数用的数字数组
for(int i=0;i<7;i++) //循环7次获取7个随机数
{
q[i]=(int)(Math.random()*35)+ 1; //获得一个随机数赋给数字数组中的每个元素
for(int j=0;j<i;j++) //判断随机数是否与之前每次的数相同
{
if( q[i]==q[j]) //如果相同
{
i=i-1; //就重复这次循环
break;
}
}
}
for(int i=0;i<7;i++) //通过循环把数数字组中的随机数赋给字符数组
{
m[i]=String.valueOf(q[i]); //把获得的每个int数组转成字符串
if(m[i].length()==1) //如果字符串是个位数,说明int值是1位
{
m[i]="0"+m[i]; //就在这个数的前面加上0
}
str[k]=str[k]+m[i]+" "; //然后加给总的字符串
}
}
return str;//把总的字符数组返回
}
//----------------------------------------------------------------------------------------------
static String great1() //定义反回一组随机数的静态方法
{
String str=new String("");
String m[]=new String[7];
//定义中转int用的数组
int q[]=new int[7]; //获取随机数用的数字数组
for(int i=0;i<7;i++) //循环7次获取7个随机数
{
q[i]=(int)(Math.random()*35)+ 1; //获得一个随机数赋给数字数组中的每个元素
for(int j=0;j<i;j++) //判断随机数是否与之前每次的数相同
{
if( q[i]==q[j]) //如果相同
{
i=i-1; //就重复这次循环
break;
}
}
}
for(int i=0;i<7;i++) //通过循环把数数字组中的随机数赋给字符数组
{
m[i]=String.valueOf(q[i]); //把获得的每个int数组转成字符串
if(m[i].length()==1) //如果字符串是个位数,说明int值是1位
{
m[i]="0"+m[i]; //就在这个数的前面加上0
}
str=str+m[i]+" ";
}
return str;//把总的字符数组返回
}
}
//********************************************************************************************
//--------------------------------------------------------------------------------------------
//********************************************************************************************
class log //定义文件读写类
{
static File file;
static RandomAccessFile raf;
static void write_log(String str,FileDialog save) //定义静态写入方法
{ //把所有的文本字符串和FileDialog当形参
try
{
file=new File(save.getDirectory(),save.getFile());
//新建文件 //getDirectory()方法获得文件路径
//getFile()获得所选的文件
raf=new RandomAccessFile(file,"rw");
//用RandomAccessFile类创建文件写入的管道.定义文件为可读可写
raf.seek( raf.length() );
//从最大的长度之后开始写
byte[] bt;
bt=str.getBytes("GB2312"); //转成简体中文
raf.write(bt);
raf.writeBytes("---------------------------------"+"\r\n");
}catch(Exception ee){}
}
//----------------------------------------------------------------------------------------------
static String read_log(String str) //定义静态的读取方法
{ //把开奖号码当形参传过来
int z1=0; //为1等奖计数的数
int z2=0; //为2等奖计数的数
int z3=0; //为3等奖计数的数
int z4=0; //为4等奖计数的数
int flag=0; //为特等奖计数的数
long money=0; //本期彩票的总钱数
String sq; //读取每行文件所返回的字符串
try
{
raf=new RandomAccessFile(file,"rw");
while( (sq=raf.readLine()) != null ) //如果文件里面还有字符串,就继续循环
{
int zzz=0; //为文件中每一组数字与大奖中每一组数字是否对应计数的数
if(!sq.equals("")) //如果文件中的一行信息不是回车(\r\n);
{
for(int i=0;i<28;i=i+4) //截取一组文件里字符串所用的循环
{
for(int j=0;j<28;j=j+4) //截取一组大奖字符串所用的循环
{
if( (sq.substring(i,i+4)).trim().equals( (str.substring(j,j+4)).trim()) )
{ //如果文件里面所截取的字符串=大奖里面的任何一组截取的字符串
zzz++; //就让累数工具累加1个数
}
}
}
if(zzz==7)//如果累数工具累加了6个数.说明此号码是与大奖完全相同的
{
flag++; //让累加大奖的数累加
}
if(zzz==6)//如果累数工具累加了6个数.说明此号码有6组数是与大奖相同的
{
z1++; //就累加1个中1等奖的人数
}
if(zzz==5)//如果累数工具累加了5个数.说明此号码有5组数是与大奖相同的
{
z2++; //就累加1个中2等奖的人数
}
if(zzz==4) //以下同理
{
z3++;
}
if(zzz==3)
{
z4++;
}
}
}
money=(flag*5000000)+(z1*1000000)+(z2*100000)+(z3*50000)+(z4*10000);
//计算总的钱数
}catch(Exception ee)
{
return "请在点保存和摇奖之后再点开奖!"+"本期无人购买彩票!";
}
return "本期中奖号码为:"+str+"\r\n"+
" 【特等奖】为: "+flag+"注\r\n"+
"1等奖(有6组数字对应上的)为:"+z1+"注\r\n"+
"2等奖(有5组数字对应上的)为:"+z2+"注\r\n"+
"3等奖(有4组数字对应上的)为:"+z3+"注\r\n"+
"4等奖(有3组数字对应上的)为:"+z4+"注\r\n"+
" 〖总的中奖资金〗为"+money+"RMB!";
//把所有的信息加成1个大字符串返回给窗体显示
}
}
//**********************************************************************************************
//----------------------------------------------------------------------------------------------
//**********************************************************************************************
class Storeroom //定义向数据库写入字符串的类
{
static Connection con;
static Statement stmt;
//static ResultSet rs;
public static void write(String str) //具体写入的方法
{ //(要写入字符串当形参)
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
//获得oracle驱动程序
con=DriverManager.getConnection("jdbc:oracle:thin:@10.0.227.30:1521:tata","scott","tiger");
//连接数据库(ip地址,端口,sid,登陆名字,登陆密码)
System.out.println("Connection success");
//提示连接成功信息
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//创建可执行sql语句(双向滚动.同时可见)
}catch(Exception ee1){System.out.println(ee1);}
try
{
stmt.executeUpdate("insert into caipiao values("+"'"+str+"'"+")");
//把形参字符串写入数据库
}catch(Exception ee2){System.out.println(ee2);}
}
}
//**********************************************************************************************
//----------------------------------------------------------------------------------------------
//**********************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -