昨天帮一个哥们改了一个JAVA的模拟抽奖程序,有点意思。自己还给它加了一个暗箱,嘿嘿。暗箱还是比较暗,而且作用效果不错,准备再改改。改好了发源码!
本程序用于模拟抽奖,可用于日常的单位、公司进行抽奖活动。
具体的算法思想是:
首先从一个文本文件中读取参加抽奖的人员信息,该信息有一定的格式既:姓名-手机号码(根据具体情况而定,切记中间是字符“-”,否则无法读入)。如下图:
程序将读入的信息装入两个VECTOR中(v_identNumber和v_name)。点击“开始”按钮进行抽奖操作。
后台的数据产生是利用JAVA的伪随机函数。根据随机数产生展现在前台的字符,每次间隔的时间是0.05秒。
用户点击“停止”按钮,操作线程就挂起,这时产生相应的中奖号码(即前台展示的号码),中奖号码存储在v_printident中。v_printident同样是VECTOR类型的。
本系统设置的是将产生3个3等奖,2个2等奖,1个1等奖还有一个特等奖。系统将根据用户点击按钮次数来确定产生几等奖。
奖项全部产生以后,点击保存,可以将结果信息保存在当前目录下的result.txt中。
关于暗箱的说明:
基本说明:
暗箱操作不是光明正大的行为,但是作为一个小小的研究对象,本人觉得还是有点意思。
具体功能:
可以实现对制定人员的获奖操作,可以实现对特等奖的产生操作。
实现机制:
首先,用户读入指定获奖的人员文件,数据的格式为:姓名*号码切记是(“*”,否则无法读入)。在人员文件的最后一行,是控制中奖力度的key,具体格式为“ *key”(切记前面要有一个空格键),如下图:
关于key的说明:
Key的值可以设置1到10,如果没有在这个范围,系统将自动设置key为5
系统的key设置得越大,指定人员的获奖概率就越大。具体公式:key/(总人数*指定人数)
如果key的值设置为10,系统将会产生特等奖,获得者为制定人员的第一项,但是除了特等奖,不会再对其他人员有任何操作(相当于只能产生特等奖)。
其他一些说明读者自己去看程序,这里不再赘述。程序很简单(在后面的):
posted on 2008-08-13 17:20
志遥 阅读(3467)
评论(4) 编辑 收藏