
1、简单控制台程序如下,如需界面需要自己加个。
package zhidao
import java.util.HashSet
import java.util.Random
import java.util.Scanner
import java.util.Set
/**
* @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
System.out.println(xian)
System.out.println("欢培念迎使用xxx 抽奖系统!")
System.out.println(xian)
Scanner scanner = new Scanner(System.in)
System.out.println("请输入号码范围例如 1 10:")
start = scanner.nextInt()
end = scanner.nextInt()
System.out.println("请输入奖项个数:")
prizeNum = scanner.nextInt()
System.out.println("请输入指笑中定中奖号码个数,不指定请输入0:")
defaNum = scanner.nextInt()
int[] defa = new int[defaNum]
if (defaNum != 0) {
System.out.println("请输入指定的中奖号码,空格隔开:")
for (int i = 0i <defaNumi++) {
defa[i] = scanner.nextInt()
}
}
System.out.println(xian)
System.out.println("本次抽奖中奖号码为:")
for (int num : randomDraw(start, end, prizeNum, defa)) {
System.out.print(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 (defa.length == 0) {
//随机抽 prizeNum 个奖
while (set.size() <prizeNum) {
set.add(new Random().nextInt(end - start + 1) + start)
}
return set
} else {
//指定了中奖号码
//把指定的号码加入进去
for (int num : defa) {
set.add(num)
}
//如果没有全部指定 则继续抽剩余的奖项
while (set.size() <prizeNum - defa.length) {
set.add(new Random().nextInt(end - start + 1) + start)
}
return set
}
}
}
2、运行效果如图
指定了中奖号码
未指定中奖号码
未指定中奖号码
import java.util.Scannerpublic class LuckyNumber {
/**
* 幸运抽奖
*/
public static
void main(String[] args) {
String answer
= "y"// 标识是否继续
String
userName = ""睁缓// 用户名
String
password = ""// 密码
int cardNumber
= 0// 卡号
boolean
isRegister = false// 标识是否注册
boolean
isLogin = false// 标识是否登录
int max =
9999
int min =
1000
Scanner input
= new Scanner(System.in)
do {
System.out.println("*****欢迎进入奖客富翁系统*****")
System.out.println("\t1.注册")
System.out.println("\t2.登录")
System.out.println("\t3.抽奖")
System.out.println("***************************")
System.out.print("请选择菜单:")
int choice =
input.nextInt()
switch
(choice) {
case 1:
System.out.println("[奖客富翁系统
>注册]")
System.out.println("请填写个人注册信息:")
System.out.print("用户名:")
userName =
input.next()
System.out.print("密码:")
password =
input.next()
//
获取4位随机数作为卡号
cardNumber =
(int)(Math.random()*(max-min))+min
System.out.println("\n注册成功,请记好您的会员卡号")
System.out.println("用户名\t密码\t会员卡号")
System.out.println(userName
+ "\t" + password + "\t" + cardNumber)
isRegister =
true// 注册成功,标志位设置为true
break
case 2:
System.out.println("[奖客富翁系统
>登录]")
if
(isRegister) { // 判断是否做早厅注册
/纯隐/
3次输入机会
for (int i
= 1i <= 3i++) {
System.out.print("请输入用户名:")
String
inputName = input.next()
System.out.print("请输入密码:")
String
inputPassword = input.next()
if
(userName.equals(inputName) &&password.equals(inputPassword)) {
System.out.println("\n欢迎您:"
+ userName)
isLogin =
true// 登录成功,标志位设置为true
break
} else if
(i <3) {
System.out.println("用户名或密码错误,还有"
+ (3 - i) + "次机会!")
} else
{
System.out.println("您3次均输入错误!")
}
}
} else
{
System.out.println("请先注册,再登录!")
}
break
case 3:
System.out.println("[奖客富翁系统
>抽奖]")
if
(!isLogin) { // 判断是否登录
System.out.println("请先登录,再抽奖!")
} else
{
//生成5个4位随机数字,并保存在数组中
int[]
luckynums = new int[5]
for(int i
= 0i <luckynums.lengthi++){
luckynums[i] =
(int)(Math.random()*(max-min))+min
}
System.out.print("请输入您的卡号:")
int
yourcard = input.nextInt()
int
i
System.out.print("\n本日的幸运数字为:")
for (i = 0
i <luckynums.lengthi++) {
System.out.print(luckynums[i]
+ " ")\
}
for (i = 0
i <luckynums.lengthi++) {
if
(luckynums[i] == yourcard) {
System.out.println("\n恭喜!您是本日的幸运会员!")
break
}
}
if (i ==
luckynums.length) {
System.out.println("\n抱歉!您不是本日的幸运会员!")
}
}
break
default:
System.out.println("[您的输入有误!]")
break
}
System.out.print("继续吗?(y/n):")
answer =
input.next()
System.out.println("")
} while
("y".equals(answer))
if
("n".equals(answer)) {
System.out.println("系统退出,谢谢使用!")
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)