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. 编程实践:设计并实现一个简单的幸运抽奖系统,包括以下功能模块:- 添加奖项和参与者;- 抽取幸运者;- 显示抽奖结果;- 程序异常处理与调试。
用JavaScript编程语言编写随机选择抽奖程序示例文章标题:用JavaScript编程语言编写随机选择抽奖程序示例介绍内容:抽奖活动是一种常见的活动形式,而编程语言可以帮助我们实现自动化的随机选择抽奖程序。
本文将介绍如何使用JavaScript 编程语言编写一个简单而实用的随机选择抽奖程序示例。
首先,我们需要在HTML页面中创建一个抽奖按钮和一些候选人的列表,如下所示:```html<!DOCTYPE html><html><head><title>随机选择抽奖程序示例</title></head><body><h1>随机选择抽奖程序示例</h1><button onclick="selectWinner()">抽奖按钮</button><ul id="candidates"><li>候选人1</li><li>候选人2</li><li>候选人3</li><li>候选人4</li><!--可以继续添加更多候选人--></ul><h2 id="winner"></h2><script src="script.js"></script></body></html>```在上述HTML页面中,我们创建了一个抽奖按钮,并在<ul>标签中列出了一些候选人的姓名。
点击抽奖按钮后,我们将在JavaScript代码中编写逻辑来随机选择一个候选人作为获奖者,并将结果显示在<h2>标签中。
抽奖软件设计java课程设计一、教学目标本课程旨在通过Java编程语言实现一个抽奖软件的设计与开发,使学生掌握Java编程的基本语法、面向对象编程思想以及常用的数据结构。
通过本课程的学习,学生将能够独立完成一个简单的抽奖软件的设计与实现,培养学生的编程能力和问题解决能力。
具体的教学目标如下:1.掌握Java编程语言的基本语法。
2.理解面向对象编程的基本概念和方法。
3.熟悉常用的数据结构及其在Java中的实现。
4.能够使用Java编程语言进行简单的程序设计。
5.能够运用面向对象编程思想进行软件设计。
6.能够运用常用的数据结构解决实际问题。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。
2.培养学生的问题解决能力和创新精神。
3.培养学生的自主学习能力和终身学习的观念。
二、教学内容本课程的教学内容主要包括Java编程语言的基本语法、面向对象编程思想和常用的数据结构。
具体的教学内容如下:1.Java编程语言的基本语法:数据类型、运算符、控制结构、数组、字符串等。
2.面向对象编程思想:类与对象、构造方法、封装、继承、多态等。
3.常用的数据结构:数组、链表、栈、队列、树、图等。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解,使学生掌握Java编程语言的基本语法和概念。
2.讨论法:通过小组讨论,引导学生深入理解面向对象编程思想和数据结构的应用。
3.案例分析法:通过分析实际的抽奖软件案例,使学生掌握软件设计和实现的方法。
4.实验法:通过编程实验,锻炼学生的实际编程能力和问题解决能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:《Java编程思想》2.参考书:《Java核心技术》3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、网络等。
通过以上教学资源的支持,我们将能够丰富学生的学习体验,提高学生的学习效果。
java编写双⾊球源代码。
-----系统作为彩票双⾊球⽣成器,模拟机选⼀注双⾊球的彩票号码package demo2;import java.util.Arrays;import java.util.Random;/*** 系统作为彩票双⾊球⽣成器,模拟机选⼀注双⾊球的彩票号码:* 1、需要从“01”到“32”中随机选择出6个数字作为红⾊球且这6个数字不能重复;* 2、并从”01”到”07”中随机选择⼀个数字作为蓝⾊球;* 3、7个数字合到⼀起作为⼀注双⾊球彩票的号码;*/public class DoubleBall {public static void main(String[] args) {String[] RED_BALLS = { "01", "02", "03", "04", "05", "06", "07", "08","09", "10", "11", "12", "13", "14", "15", "16", "17", "18","19", "20", "21", "22", "23", "24", "25", "26", "27", "28","29", "30", "31", "32" };String[] BLUE_BALLS = { "01", "02", "03", "04", "05", "06", "07" };boolean[] redFlags = new boolean[RED_BALLS.length];String[] redBalls = new String[6];String blueBall;Random ran = new Random();// redfor (int i = 0; i < redBalls.length; i++) {int index;do {index = ran.nextInt(RED_BALLS.length);} while (redFlags[index]);/*** redFlags[index]⽤途:* 当redFlags[index]=true表⽰已经重复,所以你需要* 再执⾏do当中的代码重新获取index*/redBalls[i] = RED_BALLS[index];redFlags[index] = true;}// blueblueBall = BLUE_BALLS[ran.nextInt(BLUE_BALLS.length)];Arrays.sort(redBalls);System.out.println("**********本期开奖**********");System.out.println("红球: ");for (int i = 0; i < redBalls.length; i++) {System.out.print("(" + redBalls[i] + ") ");}System.out.println();System.out.println("篮球: ");System.out.print("(" + blueBall + ") ");}}。
第一个Java文件:package xiaoA;import java.awt.Color;import java.awt.HeadlessException;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class GameFrame extends JFrame {JPanel zhuobu = new JPanel();//工人JLabel worker = null;//箱子JLabel box = null;//目的地JLabel goal = null;JLabel[] walls = null;public static final int SPEED = 12;//设置图片大小int imgSize = 48;public void setImgSize(int imgSize){this.imgSize = imgSize;}public GameFrame(String title) throws HeadlessException { super(title);//构造方法中调用本类的其它方法this.initContentPane();this.addKeyListener(new KeyListener() {//键盘按下事件public void keyPressed(KeyEvent e) {//[2.5] 使工人可以移动int xSpeed = 0, ySpeed = 0;switch (e.getKeyCode()) {case KeyEvent.VK_LEFT :xSpeed = -SPEED;worker.setIcon(new ImageIcon("image/workerUp.gif"));break;case KeyEvent.VK_RIGHT :xSpeed = SPEED;worker.setIcon(new ImageIcon("image/workerUp.gif"));break;case KeyEvent.VK_UP :ySpeed = -SPEED;worker.setIcon(new ImageIcon("image/workerUp.gif"));break;case KeyEvent.VK_DOWN :ySpeed = SPEED;worker.setIcon(new ImageIcon("image/workerUp.gif"));break;default:return;}worker.setBounds(worker.getX() + xSpeed, worker.getY() + ySpeed, worker.getWidth(), worker.getHeight());//[2.7] 判断工人是否撞到墙壁for (int i = 0; i < walls.length; i++) {if(worker.getBounds().intersects(walls[i].getBounds())) {worker.setBounds(worker.getX() - xSpeed, worker.getY() - ySpeed, worker.getWidth(), worker.getHeight());}}//[3.2] 使工人可以推动箱子if (worker.getBounds().intersects(box.getBounds())) {box.setBounds(box.getX() + xSpeed, box.getY() + ySpeed, box.getWidth(), box.getHeight());//[3.3] 判断箱子是否撞到墙壁for (int i = 0; i < walls.length; i++) {if (box.getBounds().intersects(walls[i].getBounds())) {worker.setBounds(worker.getX() - xSpeed, worker.getY() - ySpeed, worker.getWidth(), worker.getHeight());box.setBounds(box.getX() - xSpeed, box.getY() - ySpeed, box.getWidth(), box.getHeight());}}//[3.4] 判断是否胜利if (box.getX()==goal.getX() && box.getY()==goal.getY()) { JOptionPane.showMessageDialog(null, "您赢啦!");}}}public void keyReleased(KeyEvent e) {}public void keyTyped(KeyEvent e) {}});}/***设置内容面板*/public void initContentPane() {zhuobu.setBackground(Color.red);zhuobu.setLayout(null);//调用父类的属性和方法super.setContentPane(zhuobu);}/***把某个图片以组件的方式加入窗体*@param imgPath图片路径*@param x x*@param y y*@param width宽度*@param height高度*@return添加完的组件*/public void addComponent(int tag, String imgPath, int x, int y) { ImageIcon img = new ImageIcon(imgPath);//创建JLabel并把ImageIcon通过构造方法传参传入//把食物放到盘子里JLabel componet = new JLabel(img);//设置盘子在桌布上的位置和大小componet.setBounds(x, y, imgSize, imgSize);//把盘子放到桌布上zhuobu.add(componet);switch (tag) {case 1:box = componet;break;case 2:goal = componet;break;case 3:worker = componet;break;}}public void addWall(String imgPath, int[][] loactions) { ImageIcon wallImg = new ImageIcon(imgPath);walls = new JLabel[66 + loactions.length];for (int i = 0; i < walls.length; i++) {//创建没每一个围墙,他们使用的是同一个图片walls[i] = new JLabel(wallImg);}for (int i = 0; i < walls.length; i++) {//创建没每一个围墙,他们使用的是同一个图片walls[i] = new JLabel(wallImg);}int index = 0;/*分别设置各个图片位置*/for (int i = 0; i < 14; i++) {//左边墙walls[index].setBounds(0, i * imgSize, imgSize, imgSize);zhuobu.add(walls[index]);index++;//右边墙walls[index].setBounds(20 * imgSize, i * imgSize, imgSize, imgSize);zhuobu.add(walls[index]);index++;}for (int i = 0; i < 19; i++) {//上边墙walls[index].setBounds((i + 1) * imgSize, 0, imgSize, imgSize);zhuobu.add(walls[index]);index++;//下边墙walls[index].setBounds((i + 1) * imgSize, 13 * imgSize, imgSize, imgSize);zhuobu.add(walls[index]);index++;}//添加中间障碍耦合解耦for (int i = 0; i < loactions.length; i++) {walls[index].setBounds(loactions[i][0]* imgSize, loactions[i][1]* imgSize, imgSize, imgSize);zhuobu.add(walls[index]);index++;}}}第二个Java文件:public class Run {public static void main(String[] args) {GameFrame gameFrame = new GameFrame("推箱子游戏…");//设置大小gameFrame.setBounds(100, 50, 21 * 48 + 5, 14 * 48 + 25);//窗体大小不可变gameFrame.setResizable(false);gameFrame.setImgSize(48);gameFrame.addComponent(3, "workerUp.png", 400, 100);gameFrame.addComponent(1, "box.png", 160, 60);gameFrame.addComponent(2, "goal.png", 80, 520);int[][] wallLocations ={{4, 5},{5, 5},{6, 5},{7, 5},{8, 5},{9, 5},{10, 5},{6, 8},{7, 8},{8, 8},{9, 8},{10, 8},{11, 5}};gameFrame.addWall("wall.png", wallLocations);gameFrame.setVisible(true);}}。
抽奖软件设计java课程设计一、课程目标知识目标:1. 让学生掌握Java语言中面向对象编程的基本概念,包括类、对象、属性和方法的定义和应用。
2. 帮助学生理解随机数的生成原理及其在抽奖软件中的应用。
3. 引导学生掌握Java中事件处理机制,实现用户界面与程序逻辑的交互。
技能目标:1. 培养学生运用Java语言设计并实现一个具有基本功能的抽奖软件,包括软件界面设计和事件处理。
2. 提高学生分析问题、解决问题和编程实践的能力,使其能够独立完成简单的应用程序设计。
情感态度价值观目标:1. 培养学生积极参与课堂讨论,主动探究问题,形成良好的学习习惯。
2. 激发学生对编程的兴趣,提高其学习Java语言的积极性和自信心。
3. 引导学生认识到编程在现实生活中的应用价值,培养其创新意识和团队协作精神。
课程性质:本课程为实践性较强的学科,注重培养学生的编程能力和实际应用能力。
学生特点:学生处于高年级阶段,已具备一定的Java编程基础,对面向对象编程有一定了解,但实际操作能力有待提高。
教学要求:结合学生特点和课程性质,教师应注重理论与实践相结合,通过案例教学,引导学生动手实践,达到课程目标。
在教学过程中,关注学生的学习进度和需求,及时调整教学策略,确保课程目标的实现。
将课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 面向对象编程基础复习:回顾课本中关于类、对象、属性和方法的定义和应用,为后续抽奖软件设计打下基础。
2. 随机数生成:介绍Java中Random类和Math.random()方法的使用,结合实际案例讲解随机数在抽奖软件中的应用。
3. Java事件处理机制:讲解事件监听器、事件源和事件对象的概念,以及如何在抽奖软件中实现鼠标点击事件处理。
4. 用户界面设计:结合课本内容,介绍Java Swing图形用户界面设计,包括按钮、标签、文本框等组件的使用。
5. 抽奖软件设计实践:a. 分析需求,明确软件功能模块。
JAVA抽奖系统源代码/*主界面*** Created on __DATE__, __TIME__*//**** @author __USER__*/{/** Creates new form MainFrame */{super(parent, modal);initComponents();(null);etCurrentTheme(new SubstanceTerracottaTheme());etPath());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 = ()) != null){if (""))bufname = name;elsebufname = bufname + "\n" + name;key++;}}/** 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.*/516c53f5f1a8c5f1a5f1a1a5f505c7f516c53fetLayout(layout);(layout.addGroup(().addGroup((.addGroup(().addGap(98, 98,98).addComponent(jButton1).addGap(47, 47,47).addComponent(jButton3).addGap(44, 44,.addComponent( jButton2).addGap(104, 104,104)).addGroup(().addContainerGap() .addGroup((.addGroup(().addGroup((.addComponent( jScrollPane1, 142,.addComponent( jLabel1)).addPreferredGap( 14,.addGroup((.addComponent( jLabel2).addComponent( jScrollPane2, 137,.addGap(33,33).addGroup((.addComponent( jScrollPane3, 126,.addComponent( jLabel3))).addGroup(().addGap(108, 108,108).addComponent( jLabel6)).addComponent( jLabel5).addGroup(().addComponent( jScrollPane4, 134,.addPreferredGap( 80,.addComponent( jLabel4,116,.addGap(122, 122,122))).addPreferredGap(.addGap(13, 13, 13))); (layout.addGroup(().addComponent(jLabel6) .addGap(26, 26, 26).addGroup((.addGroup(().addComponent( jLabel1).addPreferredGap(.addComponent( jScrollPane1,.addGroup(().addGroup((.addComponent( jLabel3).addComponent( jLabel2)).addPreferredGap(.addGroup((.addComponent( jScrollPane3,.addComponent( jScrollPane2,.addGap(28, 28, 28).addComponent(jLabel5).addPreferredGap(.addGroup((.addComponent(jLabel4,148,.addComponent( jScrollPane4,148, ).addPreferredGap(.addGroup((.addComponent(jButton1).addGroup((.addComponent(jButton3).addComponent(jButton2))).addContainerGap()));pack();}tart();new Thread(cardthread).start(); new Thread(cardthread).start(); new Thread(cardthread).start(); }/*** @param args the command line arguments*/public static void main(String args[]){{public void run(){{{(0);}});(true);}});}quals("")){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;(key);return boo;}/*** map转换为字符串*/public static String mapToString(){String bufname = "";Set<> entries = ();for entry : entries){String name = ();if(""))bufname = name;elsebufname = bufname+"\n"+name;}return bufname;}}显示头像:public class ImageThread extends Thread {private MainFrame mainframe;public ImageThread(MainFrame mainframe) {= mainframe;}public void run(){showImage();if ()){}}public void showImage(){while && !()){int key = (int) () * 60 + 1);if (key)){if (name != null){name = (0, (","));getClass().getResource("/com/insigma/imag/" + name + ".jpg"))); try{sleep(1000);} catch (InterruptedException e){// TODO Auto-generated catch block ();}}}}}}。
c#写的实⽤抽奖程序,附源代码
前段时间⽤c#写了个抽奖程序,基于.net framework2.0 IDE:VS2008,现在拿出来和⼤家共享下.
其实这个程序不是我的原创,源代码是从CSDN下载的我根据⾃⼰需要做了⼀些修改和算法上的优化.
另外还做了个⼩⼩的⼿脚,呵呵... 就是可以固定中奖者.具体的⽤法是直接在程序启动的时候加上参数即可:
启动参数
Lucky.exe 特等奖⼀等奖1|⼀等奖2|⼀等奖3 ⼆等奖1|⼆等奖2|⼆等奖3|⼆等奖4 ...
如果不需要这个功能可以直接忽略...
将抽奖⼈员名单写在staff.txt⾥即可...
PS:我不是专业的程序员,所以代码很乱,⾼⼿可以直接路过.献丑了呵呵!
主界⾯的背景图我删除了,有需要⾃⼰找张加⼊即.右下⾓有个输⼊框是⽤来调整祝福语字体⼤⼩的,设置完双击⽣效.废话不多说了我把源代码附上有兴趣的朋友拿去研究吧...。
/*主界面* 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();}}}}}}。