JAVA抽奖系统源代码
- 格式:doc
- 大小:62.00 KB
- 文档页数:20
求用v b编一个抽奖软件的源代码悬赏分:20 - 解决时间:2008-4-15 22:47要求:1.点击‘开始’从tex t或ex cel文件中依次调用每一行的电话号码,滚动显示在界面上,点击‘停止‘ 则停在某一个电话上即可2.请带一些语句说明最好问题补充:这位前辈是不是将input 写成了inpue ,while not(eof(#1))总是提示错误我是个v b小白,能不能说明白点,需要几个控键分别叫啥名字,语句能不能更完整些,谢谢开始和停止为同一个键也可以提问者:qv x i aogang - 试用期一级最佳答案dim i窗口启动:i=0Open App.Path & "\电话号码.tx t" F or Input As #1while eof(1)=falseLine Input #1,aList1.AddItem awendclose #1按开始:timer1.Interval=50按结束:timer1.Interval=0timer的事件:i=i+1if i=List1.ListCount then i=0Label1.Caption = List1.List(i)不好意思啊,由于没有注意,所以先前的答案有两个小错误,现在已修正了所需控件:两个按钮,一个开始,一个结束;一个时钟控件一个列表框;一个标签控件用VB 6.0编写电脑抽奖程序近年来在娱乐节目之中常常见到利用电脑来抽奖,笔者对其发生了兴趣遂自己动手用VB编了一个小程序来实现电脑抽奖的小功能,其原理如下:主要利用VB中的Rnd函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。
Rnd函数的语法结构是Rnd[(number)],可选的nu mber参数是single或任何有效的数值表达式。
Rnd函数返回小于1但大于或等于0的值。
nu mber 的值决定了Rnd 生成随机数的方式。
为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound -lowerbound +1) × Rnd +lowerbound)这里,upperbound 是随机数范围的上限,而lowerbound 则是随机数范围的下限。
Java实现⼤转盘抽奖需要⽤到注意:⼤转盘抽奖各奖项中奖概率之和为 1。
奖品列表中的概率为累加概率,需要按照添加进列表的顺序进⾏累加,添加顺序不做要求。
实际中使⽤需要考虑奖品数量限制等业务需求,该代码只是个简单的抽奖demo。
奖品数量限制的话,如果需要保证剩余奖品概率⽐例不变,需要重新构建奖品列表。
package com.wangbo.choujiang;import java.util.ArrayList;import java.util.List;import java.util.Random;/*** ⼤转盘抽奖* @author wangbo* @date 2019-05-22 14:54:47*/public class Test1 {public static void main(String[] args) {List<Award> awardList = new ArrayList<Award>();Award award1 = new Award();award1.setAwardName("⼿机");//10%award1.setProbability(0.1);awardList.add(award1);Award award2 = new Award();award2.setAwardName("⽔杯");//20%award2.setProbability(0.2+0.1);//概率加上上⼀个奖品的概率(累加)awardList.add(award2);Award award4 = new Award();award4.setAwardName("⿏标");//10%award4.setProbability(0.1+0.2+0.1);awardList.add(award4);Award award5 = new Award();award5.setAwardName("谢谢惠顾");//60%award5.setProbability(1d);//最后⼀个肯定是1awardList.add(award5);Random random = new Random();int a = 0,b = 0,c = 0,d = 0;for (int i = 0; i < 10000; i++) {Double userSelect = random.nextDouble();//0.0-1.0的double随机数(不包括1.0)String awardName = duageAward(userSelect, awardList);//信息统计if ("⼿机".equals(awardName)) {a++;}else if ("⽔杯".equals(awardName)) {b++;}else if ("⿏标".equals(awardName)) {c++;}else if ("谢谢惠顾".equals(awardName)){d++;}}System.out.println("⼿机 " + a + " 次");System.out.println("⽔杯 " + b + " 次");System.out.println("⿏标 " + c + " 次");System.out.println("谢谢惠顾 " + d + " 次");}/*** 选奖品* @param userSelect* @param awardList* @return*/public static String duageAward(Double userSelect, List<Award> awardList){for (Award award : awardList) {if(userSelect < award.getProbability()){return award.getAwardName();}}return null;}}class Award{private String awardName;private Double probability;public String getAwardName() {return awardName;}public Double getProbability() {return probability;}public void setAwardName(String awardName) {this.awardName = awardName;}public void setProbability(Double probability) {this.probability = probability;}}运⾏结果:。
JavaScript简单抽奖程序的实现及代码简单抽奖程序的实现及代码1.需求说明某公司年终抽奖,需要有如下功能1)可以根据实际情况设置到场⼈数的最⼤值2)点击“开始”,⼤屏幕滚动,点击“停⽌”,获奖者的编号出现在⼤屏幕上3)在界⾯⾥显⽰全部奖项获奖⼈编号4)不重复获奖5)不会因为输⼊错误⽽导致抽奖结果异常。
2.代码呈上1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"><html><head><title>某公司周年庆抽奖</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script language="javascript">var timer;var flag = new Array(100);var existingnum = new Array(100);var clickTimes = 0;var randnum;var cellnum =1;var mobile;var num ;function check_input(){var input = document.getElementById("real_num").value;var re = /^[1-9]+[0-9]*]*$/;if (!re.test(input)){alert("请输⼊正整数");window.location.href=window.location.href;return false;}}//get the random numbers from the mobile array every 0.05sfunction setTimer(){timer = setInterval("getRandNum();",50);document.getElementById("start").disabled = true;document.getElementById("end").disabled = false;}function getRandNum(){document.getElementById("result").value = mobile[GetRnd(0,num)];}function GetRnd(min,max){randnum = parseInt(Math.random()*(max-min+1));return randnum;}//------------------------------------------------//turn the input's running downfunction clearTimer(){noDupNum();clearInterval(timer);document.getElementById("start").disabled = false;document.getElementById("end").disabled = true;}// Re defined array:change the length of the array and delete the checked onefunction noDupNum(){mobile.removeEleAt(randnum);var o = 0;for(p=0; p<mobile.length;p++){if(typeof mobile[p]!="undefined"){mobile[o] = mobile[p];o++;}}num = mobile.length-1;}function setValues(){document.getElementById(cellnum).value = document.getElementById("result").value ;cellnum++;}function set_array(){var real_num = document.getElementById("real_num").value ;mobile= new Array(real_num);var o = 0;for(i=1; i<=real_num;i++){mobile[o] = i;o++;}num = mobile.length-1;document.getElementById("set_number").disabled = true;}Array.prototype.removeEleAt = function(dx){if(isNaN(dx)||dx>this.length){return false;}this.splice(dx,1);}</script></head><body><center><div id="main"><div><h1>获奖⼩伙伴</h1><p><input id="result" type="text" size="30" style="height:130px;width:800px;border:2px solid red;font-size:120;" readonly/> </p><p><input id="start" type="button" value="开始" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:4em; background: #fc0;" onclick="setTimer()" /><input id="end" type="button" value="停" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:4em; background: #fc0;"onclick="clearTimer();setValues();" disabled/></p><p><strong>⼀等奖(1名)</strong></p><table width="190" height="30" border="1"><tr><td><input name="text1" type="text" id="3" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td></tr></table><p>⼆等奖(2名)</p><table width="380" height="30" border="1"><tr><td><input name="text2" type="text" id="2" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td><td><input name="text3" type="text" id="1" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td></tr></table></div></div><p></p><p></p><div id="setter" style="border:1px solid;width:45em"><h3>系统设置</h3><table width="300" height="30" border="1"><tr><td>活动⼈数</td><td><input type="text" id="real_num" style="width:11em"></td><td><input id="set_number" type="button" value="设置" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:4em; background: #fc0;" onclick="check_input();set_array();"/></td></tr><tr></tr></table><br/><input id="set_number" type="button" value="重新开始抽奖" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:45em;height: 3em;background: #fc0;" onclick="window.location.href=window.location.href;"/><p></p></div><center></body></html>复制代码3.丑陋截图我很丑,但是我很温柔~。
JAVA⽤户抽奖系统设计(幸运⼤转盘作业)商家为了吸引⽤户,设100个奖品,⼀等奖3名,⼆等奖6名,三等奖10名,四等奖50名,其他为谢谢参与.编写程序产⽣奖项. package luckPan;public class LuckPan {public static void main(String[] args) {int a;int first,second,third,fouth;first=second=third=fouth=0;java.util.Random random=new java.util.Random();for(int i=0;i<100;i++){a=random.nextInt(5);if(first<=3&&a==0){first++;System.out.println("获得⼀等奖");}else if(second<=6&&a==1){second--;System.out.println("获得⼆等奖");}else if(third<=10&&a==2){third--;System.out.println("获得三等奖");}else if(fouth<=50&&a==3){fouth--;System.out.println("获得四等奖");}else{System.out.println("谢谢参与!");}}}}(2)为了精细控制抽奖过程,要求如下:* 1. 每周最多产⽣⼀个⼀等奖* 2. 每天⾄少产⽣10个四等奖* 3. ⽤户摇奖前,显⽰当前最近获奖的5个四等奖以上的奖项。
请在原有程序的基础上实现上述要求。
package luckPan;import java.util.Scanner;public class LuckPan2 {public static void main(String[] args) {int a;int first,second,third,fouth;int days;java.util.Random random=new java.util.Random();Scanner week=new Scanner(System.in);int weeks=1;while (weeks==1) {days=7;int show=5;first=second=third=fouth=0;while (days>0){fouth=10;//每天⾄少10个for(int i=0;i<100;i++){a=random.nextInt(5);if(show>0&&first<1&&a==0){//每周first++;System.out.println("获得⼀等奖");show--;}else if(show>0&&second<=6&&a==1){//每周second++;System.out.println("获得⼆等奖");show--;}else if(show>0&&third<=10&&a==2){//每周third++;System.out.println("获得三等奖");show--;}else if(show>0&&fouth<=10&&a==3){fouth--;System.out.println("获得四等奖");show--;}else{//System.out.println("谢谢参与!");}}days--;}System.out.println("本周已经结束!\n继续抽奖请输⼊1,退出输⼊0\n"); weeks=week.nextInt();}}}。
java实现双⾊球抽奖算法本⽂实例为⼤家分享了java实现双⾊球抽奖的具体代码,供⼤家参考,具体内容如下实现双⾊球先考虑整体思路:1.随机⽣成7位数的数组为⼤奖号码(前6位红球每个数值取值范围为1~33,⽽且6个数值不能相同,第七位篮球取值范围为1~16)2.判断购买号码为⼿动输⼊还是机选(如为⼿动输⼊,将⽤for循环⼀次从控制台输⼊⼀个依次数赋值到数组;如为机选,实现代码和 1. 中相同)3.将⼤奖号码和购买号码的前6位红球分别实现升序排列4.判断⼤奖号码和购买号码的号码匹配程度来确定得奖级别或者没有得奖,并将结果输出到控制台实现代码具体如下://导包import java.util.*;class TestDouble01{public static void main(String[] args){Scanner s = new Scanner(System.in);Random ran = new Random();//随机⽣成⼤奖号码int arr2[]=new int[7];int shu =33;for (int i=0;i<arr2.length ;i++ ){boolean flag2=true;while (flag2){if(i==6){shu = 16;}int b = ran.nextInt(shu)+1;int num2=0;for (int j=0;j<arr2.length ;j++ ){if (b==arr2[j]){num2++;}}if (num2==0){arr2[i]=b;flag2=false;}}}//判断购买号码的⽣成⽅式boolean flag=true;int arr1[]=new int[7];while(flag){System.out.println("请选择机选还是⼿选:1、机选;2、⼿选;3、退出(请输⼊对应序号)");int xz=s.nextInt();if (xz == 1){int shu1 = 33;//随机⽣成购买号码for (int i=0;i<arr1.length ;i++ ){boolean flag1=true;while (flag1){if (i==6){shu1=16;}int a = ran.nextInt(shu1)+1;int num1=0;for (int j=0;j<arr1.length ;j++ ){if (a==arr1[j]){num1++;}}if (num1==0){arr1[i]=a;flag1=false;}}}flag=false;}else if (xz==2){//⼿动输⼊for (int i=0;i<arr1.length ;i++ ){System.out.println("请输⼊第"+(i+1)+"个数:");arr1[i]=s.nextInt();}s.close();}else if (xz==3){//退出flag=false;}else{System.out.println("请输⼊正确的序号");}}//将随机的⼤奖数组前6位红球升序排列for(int j=0;j<=arr1.length-2;j++){for (int i = 0;i<arr1.length-2-j;i++ ){if (arr1[i]>arr1[i+1]){arr1[i]=arr1[i]+arr1[i+1];arr1[i+1]=arr1[i]-arr1[i+1];arr1[i]=arr1[i]-arr1[i+1];}}}//将随机的购买数组前6位红球升序排列for(int j=0;j<=arr2.length-2;j++){for (int i = 0;i<arr2.length-2-j;i++ ){if (arr2[i]>arr2[i+1]){arr2[i]=arr2[i]+arr2[i+1];arr2[i+1]=arr2[i]-arr2[i+1];arr2[i]=arr2[i]-arr2[i+1];}}}//输出打印⼤奖号码和购买号码System.out.println("购买号码为:"+Arrays.toString(arr1)); System.out.println("⼤奖号码为:"+Arrays.toString(arr2)); //判断奖项//查询两个数组中前6位数字相同的数量int num = 0;for (int i=0;i<arr1.length-1 ;i++ ){for (int j=0;j<arr2.length-1 ;j++ ){if (arr2[i]==arr1[j]){num++;}}}//由相同的数字数量判断奖项System.out.println(num);System.out.println(arr1[6]==arr2[6]);if (arr1[6]==arr2[6]){if (num==6){System.out.println("恭喜您获得⼀等奖");}else if (num==5){System.out.println("恭喜您获得三等奖");}else if (num==4){System.out.println("恭喜您获得四等奖");}else if (num==3){System.out.println("恭喜您获得五等奖");}else if (num==2 || num==1 || num==0){System.out.println("恭喜您获得六等奖");}else{System.out.println("您未获奖,再接再厉");}}else{if (num==6){System.out.println("恭喜您获得⼆等奖");}else if (num==5){System.out.println("恭喜您获得四等奖");}else if (num==4){System.out.println("恭喜您获得五等奖");}else{System.out.println("您未获奖,再接再厉");}}}}代码运⾏结果如下:由于获奖为概率问题,所以想获得到结果为⼤奖的⼏率很低,⼤多数为:“未获奖 ”属于正常现象。
<html><title>模拟抽奖</title><head><meta name="keywords"content=""><meta http-equiv=Content-Type content="text/html; charset=gb2312"></head><body><SCRIPT LANGUAGE="JavaScript">var alldata = "51windows,blueidea,csdn,google,baidu,msn,qq,cctv,microsoft,adobe"//抽奖的姓名,以,为分隔var alldataarr = alldata.split(",")var num = alldataarr.length-1var timerfunction change(){document.getElementById("oknum").value = alldataarr[GetRnd(0,num)];}function start(){clearInterval(timer);timer = setInterval('change()',50); //50(毫秒)为变换间隔,越小变换的越快}function ok(){ clearInterval(timer);}function GetRnd(min,max){return parseInt(Math.random()*(max-min+1));}</SCRIPT>模拟抽奖:<input type="text"id="oknum"name="oknum"value=""><button onclick="start()"accesskey="s">开始(<U>S</U>)</button><button onclick="ok()"accesskey="o">停止(<U>O</U>)</button></body></html>。
java 课程设计抽奖一、教学目标本节课的教学目标是让学习者掌握Java编程中的抽奖系统设计。
知识目标包括理解Java程序的流程控制、随机数生成以及面向对象编程的基本概念。
技能目标要求学习者能够运用Java语言实现一个简单的抽奖程序,并能够理解和使用Java中的异常处理机制。
情感态度价值观目标则是培养学习者的创新意识和解决问题的能力,通过编程实践提高学习者对计算机科学的兴趣。
二、教学内容本节课的教学内容主要包括三个部分:首先是Java程序设计的基本概念,包括变量、数据类型、运算符等;其次是流程控制语句,如if条件语句、for和while循环语句;再次是面向对象编程,包括类的定义、构造函数、成员变量和成员方法。
此外,还包括异常处理和随机数生成在抽奖系统中的应用。
三、教学方法为了达到教学目标,将采用多种教学方法相结合的方式。
首先,通过讲授法向学生介绍Java程序设计的基本概念和语法。
其次,通过案例分析法让学生通过分析实际案例来理解和运用所学知识。
再者,通过讨论法促进学生之间的交流与合作,培养他们的问题解决能力。
最后,通过实验法让学生动手实践,实际操作编写和运行Java程序,增强他们的实践能力。
四、教学资源教学资源包括教材、多媒体资料和实验设备。
教材方面,将选用《Java编程思想》作为主教材,辅以《Java核心技术》等参考书籍。
多媒体资料包括教学PPT、视频教程等,用于辅助讲解和复习。
实验设备包括计算机和网络设施,以便进行编程实践和在线交流。
五、教学评估本节课的教学评估将采取多元化评价方式,全面客观地评价学生的学习成果。
平时表现占30%,包括课堂参与度、提问与回答问题的情况等;作业占30%,通过布置与抽奖系统设计相关的编程作业,评估学生对知识的掌握和运用能力;考试成绩占40%,包括选择题、填空题和编程题,以检验学生对Java程序设计知识的系统理解和实际操作能力。
评估方式将严格遵守客观、公正的原则,确保每位学生的努力和进步都能得到合理的体现和认可。
一个简单又有趣的JAVA小游戏代码猜数字import java.util.*;import java.io.*;public class CaiShu{public static void main(String[] args) throws IOException{Random a=new Random();int num=a.nextInt(100);System.out.println("请输入一个100以内的整数:");for (int i=0;i<=9;i++){BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); String str=bf.readLine();int shu=Integer.parseInt(str);if (shu>num)System.out.println("输入的数大了,输小点的!");else if (shu<num)System.out.println("输入的数小了,输大点的!");else {System.out.println("恭喜你,猜对了!");if (i<=2)System.out.println("你真是个天才!");else if (i<=6)System.out.println("还将就,你过关了!"); else if (i<=8)System.out.println("但是你还……真笨!"); elseSystem.out.println("你和猪没有两样了!"); break;}import java.util.Scanner;import java.util.Random;public class Fangfa{static int sum,sum1=0;public static void main(String [] args){int a=1,b=1,c=1;int k=0,m=1;int money =5000;int zhu =0;boolean flag = true;Random rand = new Random();Scanner input = new Scanner(System.in);while(m==1){while(flag){System.out.println("掷色子开始!");System.out.println("请下注注:下注金额只能是50的倍数且不能超过1000"); zhu=input.nextInt();if(zhu%50==0&&zhu<=1000&&zhu<=money){System.out.println("下注成功");System.out.println("买大请输入数字1,买小输入数字2");k=input.nextInt();a= rand.nextInt(6)+1;b= rand.nextInt(6)+1;c= rand.nextInt(6)+1;sum=a+b+c;if(k==1){if(sum>9){money+=zhu;System.out.println("恭喜您猜对了,骰子点数为"+sum+"结果是大"+"余额为"+money); }else{money-=zhu;System.out.println("很遗憾,骰子点数为"+sum+"结果是小"+"余额为"+money);}}if(k==2){if(sum<=9){money+=zhu;System.out.println("恭喜您猜对了,骰子点数为"+sum+"结果是小"+"余额为"+money); }else{money-=zhu;System.out.println("很遗憾,骰子点数为"+sum+"结果是大"+"余额为"+money);}}flag= false;System.out.println("继续请按1,退出请按任意键");m=input.nextInt();if(m==1){flag=true;System.out.println("您选择的是继续");}else{flag=false;System.out.println("欢迎您下次再来玩");}}else{System.out.println("下注失败"+"余额为"+money); }}}}。
java幸运抽奖系统课程设计一、课程目标知识目标:1. 学生能掌握Java基本语法和面向对象编程思想,如类与对象、方法、属性等。
2. 学生能理解并运用Java中的随机数生成方法,实现抽奖逻辑。
3. 学生能运用Java的流程控制语句(如if-else、switch-case、for循环等)编写抽奖系统的各个功能模块。
技能目标:1. 学生能够独立设计并编写一个简单的Java幸运抽奖系统,具备基本的编程实践能力。
2. 学生能够运用调试工具找出并修正程序中的错误,提高程序调试能力。
3. 学生能够通过编写文档和演示,清晰地向他人介绍自己的程序设计思路和功能实现。
情感态度价值观目标:1. 学生通过本课程的学习,培养对编程的兴趣和热情,增强学习动力。
2. 学生能够体会到团队合作的重要性,提高沟通协作能力。
3. 学生能够在程序设计过程中,培养解决问题的耐心和毅力,形成良好的学习习惯。
分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握Java编程基础知识的基础上,通过设计并实现一个幸运抽奖系统,提高编程实践能力和逻辑思维能力。
课程目标具体、可衡量,有助于学生和教师在教学过程中明确预期成果,为后续的教学设计和评估提供依据。
二、教学内容1. Java基本语法复习:变量、数据类型、运算符、控制流程(if-else、switch-case、for循环等)。
2. 面向对象编程基础:类与对象、构造方法、封装、继承、多态。
3. 随机数生成:Random类、Math.random()方法,以及如何在抽奖系统中应用随机数。
4. 数组的使用:声明、初始化、遍历数组,以及如何在抽奖系统中管理奖项和参与者。
5. 界面设计与交互:使用Scanner类进行用户输入,实现用户与抽奖系统的交互。
6. 编程实践:设计并实现一个简单的幸运抽奖系统,包括以下功能模块:- 添加奖项和参与者;- 抽取幸运者;- 显示抽奖结果;- 程序异常处理与调试。
/*主界面* MainFrame.java** Created on __DA TE__, __TIME__*/package com.insigma.frame;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import .URLDecoder;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.UIManager;import org.jvnet.substance.SubstanceLookAndFeel;import org.jvnet.substance.painter.StandardGradientPainter;import org.jvnet.substance.theme.SubstanceTerracottaTheme;import mutil.CardThread;import mUtil;import mutil.ImageThread;/**** @author __USER__*/public class MainFrame extends javax.swing.JDialog{/** Creates new form MainFrame */public MainFrame(java.awt.Frame parent, boolean modal){super(parent, modal);initComponents();this.setLocationRelativeTo(null);// 居中显示try{UIManager.setLookAndFeel(new SubstanceLookAndFeel());JFrame.setDefaultLookAndFeelDecorated(true);JDialog.setDefaultLookAndFeelDecorated(true);SubstanceLookAndFeel.setCurrentTheme(new SubstanceTerracottaTheme());//SubstanceLookAndFeel.setSkin(new EmeraldDuskSkin());//SubstanceLookAndFeel.setCurrentButtonShaper(new//ClassicButtonShaper());//SubstanceLookAndFeel.setCurrentWatermark(new//SubstanceBubblesWatermark());//SubstanceLookAndFeel.setCurrentBorderPainter(new// StandardBorderPainter());// SubstanceLookAndFeel.setCurrentGradientPainter(new//StandardGradientPainter());//水晶蓝// SubstanceLookAndFeel.setCurrentTitlePainter(new// FlatTitlePainter());} catch (Exception e){System.err.println("Something went wrong!");}try{showPerson();} catch (IOException e){// TODO Auto-generated catch blocke.printStackTrace();}}public void showPerson() throws IOException{String filename = URLDecoder.decode(Class.class.getResource("/com/insigma/config/name.txt").getPath());FileInputStream fileInputStream = new FileInputStream(filename);InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "gbk");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String name = "";String bufname = "";int key = 1;while ((name = bufferedReader.readLine()) != null){if (bufname.equals(""))bufname = name;elsebufname = bufname + "\n" + name;CommUtil.map.put(key, name);key++;}this.jTextArea4.setText(bufname);this.jLabel4.setText("准备......!");}/** This method is called from within the constructor to* initialize the form.* WARNING: Do NOT modify this code. The content of this method is* always regenerated by the Form Editor.*///GEN-BEGIN:initComponents// <editor-fold defaultstate="collapsed" desc="Generated Code">private void initComponents(){jLabel1 = new javax.swing.JLabel();jLabel2 = new javax.swing.JLabel();jLabel3 = new javax.swing.JLabel();jScrollPane1 = new javax.swing.JScrollPane();jTextArea1 = new javax.swing.JTextArea();jScrollPane2 = new javax.swing.JScrollPane();jTextArea2 = new javax.swing.JTextArea();jScrollPane3 = new javax.swing.JScrollPane();jTextArea3 = new javax.swing.JTextArea();jLabel4 = new javax.swing.JLabel();jLabel5 = new javax.swing.JLabel();jScrollPane4 = new javax.swing.JScrollPane();jTextArea4 = new javax.swing.JTextArea();jButton1 = new javax.swing.JButton();jButton2 = new javax.swing.JButton();jButton3 = new javax.swing.JButton();jLabel6 = new javax.swing.JLabel();setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);setTitle("\u516c\u53f8\u5e74\u7ec8\u62bd\u5956\u7cfb\u7edf");jLabel1.setText("\u4e00\u7b49\u5956\u83b7\u5f97\u8005\uff1a");jLabel2.setText("\u4e8c\u7b49\u5956\u83b7\u5f97\u8005\uff1a"); jLabel3.setText("\u4e09\u7b49\u5956\u83b7\u5f97\u8005\uff1a");jTextArea1.setColumns(20);jTextArea1.setRows(5);jScrollPane1.setViewportView(jTextArea1);jTextArea2.setColumns(20);jTextArea2.setRows(5);jScrollPane2.setViewportView(jTextArea2);jTextArea3.setColumns(20);jTextArea3.setRows(5);jScrollPane3.setViewportView(jTextArea3);jLabel4.setFont(new java.awt.Font("宋体", 1, 18));jLabel4.setForeground(new java.awt.Color(255, 0, 0));jLabel4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); jLabel5.setText("\u62bd\u5956\u8005\u540d\u5355\uff1a");jTextArea4.setColumns(20);jTextArea4.setRows(5);jScrollPane4.setViewportView(jTextArea4);jButton1.setText("\u5f00\u59cb");jButton1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jButton1ActionPerformed(evt);}});jButton2.setText("\u6682\u505c");jButton2.setEnabled(false);jButton2.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jButton2ActionPerformed(evt);}});jButton3.setText("\u91cd\u7f6e");jButton3.setEnabled(false);jButton3.addActionListener(new java.awt.event.ActionListener(){public void actionPerformed(java.awt.event.ActionEvent evt){jButton3ActionPerformed(evt);}});jLabel6.setFont(new java.awt.Font("微软雅黑", 1, 36));jLabel6.setForeground(new java.awt.Color(153, 0, 153));jLabel6.setText("\u516c\u53f8\u5e74\u7ec8\u62bd\u5956");javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(98, 98,98).addComponent(jButton1).addGap(47, 47,47).addComponent(jButton3).addGap(44, 44,44).addComponent(jButton2).addGap(104,104,104)).addGroup(layout.createSequentialGroup().addContainerGap().addGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jScrollPane1,javax.swing.GroupLayout.PREFERRED_SIZE,142,javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel1)).addPreferredGap(ponentPlacement.RELATED,14,Short.MAX_V ALUE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLabel2).addComponent(jScrollPane2,javax.swing.GroupLayout.PREFERRED_SIZE,137,javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(33,33,33).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jScrollPane3,javax.swing.GroupLayout.PREFERRED_SIZE,126,javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel3))).addGroup(layout.createSequentialGroup().addGap(108,108,108).addComponent(jLabel6)).addComponent(jLabel5).addGroup(layout.createSequentialGroup().addComponent(jScrollPane4,javax.swing.GroupLayout.PREFERRED_SIZE,134,javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(ponentPlacement.RELATED,80,Short.MAX_V ALUE).addComponent(jLabel4,javax.swing.GroupLayout.PREFERRED_SIZE,116,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(122,122,122))).addPreferredGap(ponentPlacement.RELATED))).addGap(13, 13, 13)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(jLabel6).addGap(26, 26, 26).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addGroup(layout.createSequentialGroup().addComponent(jLabel1).addPreferredGap(ponentPlacement.RELATED).addComponent(jScrollPane1,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(layout.createSequentialGroup().addGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(jLabel2)).addPreferredGap(ponentPlacement.RELATED).addGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jScrollPane3,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jScrollPane2,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)))).addGap(28, 28, 28).addComponent(jLabel5).addPreferredGap(ponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jLabel4,javax.swing.GroupLayout.DEFAULT_SIZE,148, Short.MAX_V ALUE).addComponent(jScrollPane4,javax.swing.GroupLayout.DEFAULT_SIZE,148, Short.MAX_V ALUE)).addPreferredGap(ponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jButton1).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jButton3).addComponent(jButton2))).addContainerGap()));pack();}// </editor-fold>//GEN-END:initComponents/*** 重置事件* @param evt*/private void jButton3ActionPerformed(java.awt.event.ActionEvent evt){this.jButton1.setEnabled(true);this.jButton3.setEnabled(false);CommUtil.boo = false;//重置计数器CommUtil.firstsum = 0;CommUtil.secondsum = 0;CommUtil.thirdsum = 0;//清空抽奖框this.jTextArea1.setText("");this.jTextArea2.setText("");this.jTextArea3.setText("");//重置人员try{showPerson();} catch (IOException e){// TODO Auto-generated catch blocke.printStackTrace();}}/*** 暂停事件* @param evt*/private void jButton2ActionPerformed(java.awt.event.ActionEvent evt){CommUtil.boo = false;this.jButton2.setEnabled(false);this.jButton1.setEnabled(true);}/*** 开始事件* @param evt*/private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){CommUtil.boo = true;this.jLabel4.setText(null);CardThread cardthread = new CardThread(this);cardthread.start();ImageThread imageThread = new ImageThread(this);imageThread.start();new Thread(cardthread).start();new Thread(cardthread).start();new Thread(cardthread).start();new Thread(cardthread).start();this.jButton1.setEnabled(false);this.jButton2.setEnabled(true);}/*** @param args the command line arguments*/public static void main(String args[]){java.awt.EventQueue.invokeLater(new Runnable(){public void run(){MainFrame dialog = new MainFrame(new javax.swing.JFrame(), true);dialog.addWindowListener(new java.awt.event.WindowAdapter(){public void windowClosing(java.awt.event.WindowEvent e){System.exit(0);}});dialog.setVisible(true);}});}//GEN-BEGIN:variables// Variables declaration - do not modifypublic javax.swing.JButton jButton1;public javax.swing.JButton jButton2;public javax.swing.JButton jButton3;public javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;private javax.swing.JLabel jLabel3;public javax.swing.JLabel jLabel4;private javax.swing.JLabel jLabel5;private javax.swing.JLabel jLabel6;private javax.swing.JScrollPane jScrollPane1;private javax.swing.JScrollPane jScrollPane2;private javax.swing.JScrollPane jScrollPane3;private javax.swing.JScrollPane jScrollPane4;public javax.swing.JTextArea jTextArea1;public javax.swing.JTextArea jTextArea2;public javax.swing.JTextArea jTextArea3;public javax.swing.JTextArea jTextArea4;// End of variables declaration//GEN-END:variables }抽奖功能:package mutil;import com.insigma.frame.MainFrame;public class CardThread extends Thread{private MainFrame mainframe;public CardThread(MainFrame mainframe){this.mainframe = mainframe;}public void run(){synchronized (mainframe){firstCard();secondCard();thirdCard();}if (CommUtil.isEnd()){mainframe.jButton1.setEnabled(false);mainframe.jLabel4.setText("抽奖结束!");mainframe.jButton2.setEnabled(false);mainframe.jButton3.setEnabled(true);}}/*** 抽一等奖*/public void firstCard(){while (CommUtil.boo && CommUtil.firstsum < CommUtil.firstcount){int key = (int) (Math.random() * 60 + 1);if (CommUtil.getPerson(key)){String name = CommUtil.map.get(key);if (mainframe.jTextArea1.getText() != null&& !mainframe.jTextArea1.getText().equals("")){mainframe.jTextArea1.setText(mainframe.jTextArea1.getText()+ "\n" + name);} else{mainframe.jTextArea1.setText(name);}CommUtil.deletePerson(key);String bufname = CommUtil.mapToString();mainframe.jTextArea4.setText(bufname);CommUtil.firstsum++;try{sleep(1000);} catch (InterruptedException e){// TODO Auto-generated catch blocke.printStackTrace();}}}}/*** 抽三等奖*/public void thirdCard(){while (CommUtil.boo && CommUtil.thirdsum < CommUtil.thirdcount){int key = (int) (Math.random() * 60 + 1);if (CommUtil.getPerson(key)){String name = CommUtil.map.get(key);if (mainframe.jTextArea3.getText() != null&& !mainframe.jTextArea3.getText().equals("")){mainframe.jTextArea3.setText(mainframe.jTextArea3.getText()+ "\n" + name);} else{mainframe.jTextArea3.setText(name);}CommUtil.deletePerson(key);String bufname = CommUtil.mapToString();mainframe.jTextArea4.setText(bufname);CommUtil.thirdsum++;try{sleep(1000);} catch (InterruptedException e){// TODO Auto-generated catch blocke.printStackTrace();}}}}/*** 抽二等奖*/public void secondCard(){while (CommUtil.boo && CommUtil.secondsum < CommUtil.secondcount){int key = (int) (Math.random() * 60 + 1);if (CommUtil.getPerson(key)){String name = CommUtil.map.get(key);if (mainframe.jTextArea2.getText() != null&& !mainframe.jTextArea2.getText().equals("")){mainframe.jTextArea2.setText(mainframe.jTextArea2.getText()+ "\n" + name);} else{mainframe.jTextArea2.setText(name);}CommUtil.deletePerson(key);String bufname = CommUtil.mapToString();mainframe.jTextArea4.setText(bufname);CommUtil.secondsum++;try{sleep(1000);} catch (InterruptedException e){// TODO Auto-generated catch blocke.printStackTrace();}}}}}工具类:package mutil;import java.util.HashMap;import java.util.Map;import java.util.Set;public class CommUtil{public static boolean boo = false;public static Map<Integer, String> map = new HashMap<>();/*** 奖项获奖人数*/public static int firstcount = 1;public static int secondcount = 3;public static int thirdcount = 5;/*** 计数器*/public static int firstsum = 0;public static int secondsum = 0;public static int thirdsum = 0;/*** 查找人员*/public static boolean getPerson(int key){boolean boo = false;if(map.get(key)!=null && !map.get(key).equals("")){boo = true;}return boo;}public static boolean isEnd(){boolean boo = false;if(firstcount == firstsum && secondcount==secondsum && thirdcount==thirdsum){boo = true;}return boo;}/*** 删除人员*/public static boolean deletePerson(int key){boolean boo = false;map.remove(key);return boo;}/*** map转换为字符串*/public static String mapToString(){String bufname = "";Set<Map.Entry<Integer, String>> entries = map.entrySet();for (Map.Entry<Integer, String> entry : entries){String name = entry.getValue();if(bufname.equals(""))bufname = name;elsebufname = bufname+"\n"+name;}return bufname;}}显示头像:package mutil;import com.insigma.frame.MainFrame;public class ImageThread extends Thread{private MainFrame mainframe;public ImageThread(MainFrame mainframe){this.mainframe = mainframe;}public void run(){showImage();if (CommUtil.isEnd()){mainframe.jLabel4.setIcon(null);}}public void showImage(){while (CommUtil.boo && !CommUtil.isEnd()){int key = (int) (Math.random() * 60 + 1);if (CommUtil.getPerson(key)){String name = CommUtil.map.get(key);if (name != null){name = name.substring(0, name.indexOf(","));mainframe.jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/insigma/imag/" + name + ".jpg")));try{sleep(1000);} catch (InterruptedException e){// TODO Auto-generated catch blocke.printStackTrace();}}}}}}。