1、简单控制台程序如下,如需界面需要自己加个。
package zhidao;
import javautilHashSet;
import javautilRandom;
import javautilScanner;
import javautilSet;
/
@author bufei
@datetime 2020年8月31日15:54:11
/
public class YaoHao {
public static void main(String[] args) {
String xian = "= = = = = = = = =";
// 起点 终点 奖个数 指定的号码个数
int start = 0, end = 0, prizeNum = 0, defaNum = 0;
Systemoutprintln(xian);
Systemoutprintln("欢迎使用xxx 抽奖系统!");
Systemoutprintln(xian);
Scanner scanner = new Scanner(Systemin);
Systemoutprintln("请输入号码范围例如 1 10:");
start = scannernextInt();
end = scannernextInt();
Systemoutprintln("请输入奖项个数:");
prizeNum = scannernextInt();
Systemoutprintln("请输入指定中奖号码个数,不指定请输入0:");
defaNum = scannernextInt();
int[] defa = new int[defaNum];
if (defaNum != 0) {
Systemoutprintln("请输入指定的中奖号码,空格隔开:");
for (int i = 0; i < defaNum; i++) {
defa[i] = scannernextInt();
}
}
Systemoutprintln(xian);
Systemoutprintln("本次抽奖中奖号码为:");
for (int num : randomDraw(start, end, prizeNum, defa)) {
Systemoutprint(num+" ");
}
}
/
@param start 抽奖范围起点
@param end 抽奖号码范围终点
@param prizeNum 中奖号码个数
@param defa 指定中奖号码
@return
/
public static Set<Integer> randomDraw(int start, int end, int prizeNum, int[] defa) {
Set<Integer> set = new HashSet<>();
// 未指定中奖号码
if (defalength == 0) {
//随机抽 prizeNum 个奖
while (setsize() < prizeNum) {
setadd(new Random()nextInt(end - start + 1) + start);
}
return set;
} else {
//指定了中奖号码
//把指定的号码加入进去
for (int num : defa) {
setadd(num);
}
//如果没有全部指定 则继续抽剩余的奖项
while (setsize() < prizeNum - defalength) {
setadd(new Random()nextInt(end - start + 1) + start);
}
return set;
}
}
}
2、运行效果如图
指定了中奖号码
未指定中奖号码
未指定中奖号码
思路是对的,按照你前面的思路,后面只需要在页面上用JS来控制随机显示,和抽取了。
但是一般不这么做,因为你这么做不方便控制作弊,和中奖概率。还有JS控制抽奖很容易就能作弊。
我之前做过的一个抽奖项目是这样的:抽奖程序(抽奖界面)用flash来写,这样既方便作弊也能控制中奖概率,同时更安全,JAVA后台提供抽奖名单,中奖概率等数据,抽奖程序调用java的API获得抽奖数据,这里需要在后台对抽奖信息进行加密,我们使用的是base64加密(方便反向解密),然后由用户点击flash抽奖界面抽奖,中奖后,同样使用base64加密中奖信息,发送到java后台,然后保存在DB,同时后台程序发送中奖信息给用户。
我写给你,如果是本专业,以后要多多学习。JDK 16
import javaawtGridLayout;
import javaawteventMouseEvent;
import javaawteventMouseListener;
import javautilIterator;
import javautilRandom;
import javautilSet;
import javautilTreeSet;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJTextField;
public class LuckyDrawn {
private JFrame f = new JFrame("Lucky Drawn");
private JButton btn = new JButton("Drawn");
private JTextField result = new JTextField("Result");
private static final int MIN = 1;
private static final int MAX = 30;
private static final int RESULT_COUNT = 7;
public LuckyDrawn(){
fadd(btn);
fadd(result);
resultsetEditable(false);
btnaddMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
Random rand = new Random();
Set<Integer> set = new TreeSet<Integer>();
while(setsize() < RESULT_COUNT){
setadd(new Integer(randnextInt(MAX)+ 1));
}
StringBuffer sb = new StringBuffer("Lucky numbers are: ");
for (Iterator iter = setiterator(); iterhasNext();) {
sbappend(((Integer) iternext())intValue())append(", ");
}
resultsetText(sbsubstring(0, sblength() - 2)toString());
fpack();
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
});
fsetLayout(new GridLayout(2, 1));
fsetVisible(true);
fsetLocation(500, 200);
fpack();
fvalidate();
fsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
}
public static void main(String[] args) {
new LuckyDrawn();
}
}
以上就是关于java语言实现一个摇号系统,但是可以内部设定中奖名单这个怎么实现全部的内容,包括:java语言实现一个摇号系统,但是可以内部设定中奖名单这个怎么实现、如何用java写一个抽奖程序 web类型的、用java编写一个彩票抽奖程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)