彩票系统
1、提醒“欢迎进入***抽奖系统” 双色球
请选择:
- 充值
- 查看账户资金
- 开始购买彩票
- 开奖
- 查看当前购买的彩票
- 退出系统
2、充值 用户自己录入充值金额,显示充值之后账户资金
3、开始购买彩票
购买彩票注数 10 【共7位,前6位1-32,第七位是1-16】
一注【1,2,5,8,20,32,16】不能重复且前6位从小到大有序
验证当前账户资金是否充足?一注2块
1)自选彩票 自己录入7个数值
2)机选 随机生成彩票 随机给用户出彩票,用户资金减少
4、开奖 随机产生一注彩票,然后和用户的彩票数组比对,
如果红色球有三个相同/或者一个蓝球,中5元
如果红色球3个+1个蓝色球,中10元
如果红色球4个,中20
如果四个红色球+1个蓝色球,中200
如果5个红色球,中1000
如果5个红色球+1个蓝色球,中2万
如果6个红色球,中红10万
如果6个红色球+1个蓝色球,中500万
账户余额更新
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Lottery {
public static void main(String[] args) {
System.out.println("====欢迎光临Cheat彩票系统====");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
Random r = new Random();
boolean flag = true;
double balance = 0.0; // 余额
double sumMoney = 0.0; // 花费金额
int[][] lottery = null; // 自己买的彩票
int[] raffle = null; // 开奖彩票
int sum = 0; // 单注红球相同数
int sum2 = 0; // 单注蓝球相同数
int sum3 = 0; // 单注的中奖金额
int[] s = null; // 所有注红球相同情况
int[] s2 = null; // 所有注蓝球相同情况
int[] bonus = null; // 单注中奖金额
double sumBonus = 0.0; // 所有注中奖金额
while (flag == true) {
System.out.println("请选择菜单:1.充值 2.看账户资金 3.开始购买彩票 4.开奖 5.查看当前购买的彩票 6.退出系统");
int id = sc.nextInt();
switch (id) {
case 1:
// 充值
System.out.println("请输入充值金额:");
double recharge = sc.nextDouble();
if (recharge > 0) {
balance += recharge;
System.out.println("充值成功!");
}
break;
case 2:
// 查看账户资金
System.out.println("卡上余额:" + balance);
break;
case 3:
// 开始购买彩票
double money = 2.0;
System.out.println("请输入您要购买的彩票注数:");
int num = sc.nextInt();
sumMoney = money * num;
if (balance >= sumMoney) {
balance -= sumMoney;
System.out.println("花费" + sumMoney + "余额为:" + balance);
} else {
System.out.println("余额不足,请充值!");
break;
}
lottery = new int[num][7];
System.out.println("选择彩票方式:自选输入0,机选为1.");
int no = sc.nextInt();
// 自选彩票
if (no == 0) {
System.out.println("请输入您的彩票号码(不能重复):");
for (int i = 0; i < lottery.length; i++) {
for (int j = 0; j < lottery[i].length; j++) {
lottery[i][j] = sc.nextInt();
}
sc.nextLine();
}
// 对彩票的红球进行升序排列
for (int i = 0; i < lottery.length; i++) {
if (i == 0) {
for (int j = 0; j < lottery[0].length - 2; j++) {
for (int k = 0; k < lottery[0].length - 2; k++) {
if (lottery[0][k] > lottery[0][k + 1]) {
int temp = lottery[0][k];
lottery[0][k] = lottery[0][k + 1];
lottery[0][k + 1] = temp;
}
}
}
} else {
for (int j = 0; j < lottery[i - 1].length - 2; j++) {
for (int k = 0; k < lottery[i - 1].length - 2; k++) {
if (lottery[i][k] > lottery[i][k + 1]) {
int temp = lottery[i][k];
lottery[i][k] = lottery[i][k + 1];
lottery[i][k + 1] = temp;
}
}
}
}
}
}
// 机选彩票
if (no == 1) {
System.out.println("正在为您机选号码,请稍等!");
for (int i = 0; i < lottery.length; i++) {
for (int j = 0; j < lottery[i].length - 1; j++) {
lottery[i][j] = r.nextInt(32) + 1;
for (int k = 0; k < j; k++) {
if (lottery[i][j] == lottery[i][k]) {
j--;
break;
}
}
}
lottery[i][6] = r.nextInt(16) + 1;
}
// 对彩票的红球进行升序排列
for (int i = 0; i < lottery.length; i++) {
if (i == 0) {
for (int j = 0; j < lottery[0].length - 2; j++) {
for (int k = 0; k < lottery[0].length - 2; k++) {
if (lottery[0][k] > lottery[0][k + 1]) {
int temp = lottery[0][k];
lottery[0][k] = lottery[0][k + 1];
lottery[0][k + 1] = temp;
}
}
}
} else {
for (int j = 0; j < lottery[i - 1].length - 2; j++) {
for (int k = 0; k < lottery[i - 1].length - 2; k++) {
if (lottery[i][k] > lottery[i][k + 1]) {
int temp = lottery[i][k];
lottery[i][k] = lottery[i][k + 1];
lottery[i][k + 1] = temp;
}
}
}
}
}
}
break;
case 4:
// 开奖
raffle = new int[7];
for (int i = 0; i < raffle.length; i++) {
if (i < raffle.length - 1) {
raffle[i] = r.nextInt(32) + 1;
for (int j = 0; j < i; j++) {
if (raffle[i] == raffle[j]) {
i--;
break;
}
}
} else {
raffle[i] = r.nextInt(16) + 1;
}
}
for (int i = 0; i < raffle.length - 2; i++) {
for (int j = 0; j < raffle.length - 2 - i; j++) {
if (raffle[j] > raffle[j + 1]) {
int temp = raffle[j];
raffle[j] = raffle[j + 1];
raffle[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(raffle));
break;
case 5:
// 查看中奖情况
if (lottery == null) {
System.out.println("未购买彩票,请先购买彩票!");
} else if (raffle == null) {
System.out.println("未开奖,请等待开奖!");
} else {
System.out.println("开奖号:");
System.out.println(Arrays.toString(raffle));
System.out.println("购买的彩票:");
// 将所有注红球中奖情况放入一个数组内
s = new int[lottery.length];
for (int i = 0; i < lottery.length; i++) {
sum = 0;
for (int j = 0; j < lottery[i].length - 1; j++) {
for (int k = 0; k < raffle.length - 1; k++) {
if (lottery[i][j] == raffle[k]) {
sum++;
}
}
}
s[i] = sum;
System.out.println(Arrays.toString(lottery[i]));
}
// 将所有注蓝球中奖情况放入一个数组内
s2 = new int[lottery.length];
for (int i = 0; i < lottery.length; i++) {
sum2 = 0;
if (lottery[i][6] == raffle[6]) {
sum2++;
}
s2[i] = sum2;
}
System.out.println(" ");
System.out.println("红球中奖数:");
System.out.println(Arrays.toString(s));
System.out.println("蓝球中奖数:");
System.out.println(Arrays.toString(s2));
将所有注中奖金额放入一个数组(bonus)内
bonus = new int[lottery.length];
for (int i = 0; i < s.length; i++) {
sum = 0;
if ((s[i] == 3 && s2[i] == 0) || (s[i] < 3 && s2[i] == 1)) {
sum3 = 5;
} else if (s[i] == 3 && s2[i] == 1) {
sum3 = 10;
} else if (s[i] == 4 && s2[i] == 0) {
sum3 = 20;
} else if (s[i] == 4 && s2[i] == 1) {
sum3 = 200;
} else if (s[i] == 5 && s2[i] == 0) {
sum3 = 1000;
} else if (s[i] == 5 && s2[i] == 1) {
sum3 = 20000;
} else if (s[i] == 6 && s2[i] == 0) {
sum3 = 100000;
} else if (s[i] == 6 && s2[i] == 1) {
sum3 = 5000000;
} else {
sum3 = 0;
}
bonus[i] = sum3;
}
System.out.println("单注中奖金额:");
System.out.println(Arrays.toString(bonus));
// 所有注总共中奖金额
for (int i = 0; i < bonus.length; i++) {
sumBonus += bonus[i];
}
System.out.println("您一共中奖" + sumBonus + "元!");
}
balance += sumBonus;
break;
case 6:
// 退出系统
System.out.println("退出成功!欢迎下次光临!");
flag = false;
break;
default:
System.out.println("录入指令错误!请重新录入1~6的指令:");
break;
}
}
}
}