彩票系统LotterySystem
1、提醒“欢迎进入***抽奖系统” 双色球
请选择
1:充值 2:查看账户资金 3:开始购买彩票 4:开奖 5:查看当前购买的彩票 6.退出系统
2、充值 用户自己录入充值金额,显示充值之后账户资金
3、开始购买彩票
购买彩票注数 10 【共7位,前6位1-33,第七位是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 LotterySystem {
//已购彩票
static int[][] array=null;//
//定义全局变量表示资金
static double money=100.0;//账户余额
//定义一个方法,生成一注彩票(机选彩票)
public static int[] getOneLottery1() {
int[] array=new int[7];
Random random=new Random();
for(int i=0;i<6;i++) {
int num=random.nextInt(33)+1;
//先赋值,如果相同,重新赋值
array[i]=num;
//验证数据是否重复
for(int j=0;j<i;j++) {
if(array[j]==array[i]) {
i--;
break;
}
}
}
//对数组中前6个元素升序排序
for(int i=0;i<array.length-1;i++) {
for(int j=0;j<array.length-2-i;j++) {
if(array[j]>array[j+1]) {
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
//蓝色球
int num=random.nextInt(16)+1;
array[6]=num;
return array;
}
//定义一个方法,生成一注彩票(自选彩票)
public static int[] getOneLottery2() {
int[] array=new int[7];
Scanner scanner=new Scanner(System.in);
for(int i=0;i<array.length-1;i++) {
System.out.println("请录入第"+(i+1)+"个数字:");
int num=scanner.nextInt();
if(num>=1 && num<=33) {
//先赋值,如果相同,重新赋值
array[i]=num;
//验证数据是否重复
for(int j=0;j<i;j++) {
if(array[j]==array[i]) {
System.out.println("数字重复:请重新录入!");
i--;
break;
}
}
}else {
System.out.println("红色球的范围是1-33,请重新输入:");
i--;
}
}
while(true) {
System.out.println("请录入第7个数字:");
int num=scanner.nextInt();
if(num>=1 && num<=16) {
array[6]=num;
break;
}else {
System.out.println("蓝色球的范围是1-16,请重新输入:");
}
}
//对数组中前6个元素升序排序
for(int i=0;i<array.length-1;i++) {
for(int j=0;j<array.length-2-i;j++) {
if(array[j]>array[j+1]) {
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
return array;
}
//定义一个方法,返回购买的彩票int[][]
public static int[][] buyLottery() {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入购买彩票的注数:");
int num=scanner.nextInt();
if(num*2>money) {//资金不足
System.out.println("余额不足!请充值");
return null;
}
money=money-num*2;
array=new int[num][7];
System.out.println("1、机选彩票 2、自选彩票");
int choose=scanner.nextInt();
switch(choose) {
case 1:
//机选彩票 每次出一注,循环num次
for(int i=0;i<num;i++) {
int[] array1=getOneLottery1();
array[i]=array1;
}
break;
case 2:
//自选彩票
for(int i=0;i<num;i++) {
System.out.println("----第"+(i+1)+"注----");
int[] array1=getOneLottery2();
array[i]=array1;
}
break;
default:
System.out.println("输入错误!");
}
return array;
}
//打印购买的彩票
public static void print() {
for(int i=0;i<array.length;i++) {
for(int j=0;j<array[i].length;j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
//开奖方法
public static void openLottery() {
//比对已有彩票int[][]和中奖码int[]
int[] code=getOneLottery1();
int sumMoney=0;
System.out.println("当期开奖码为:"+Arrays.toString(code));
for(int i=0;i<array.length;i++) {
int[] array1=array[i];
int rIndex=0;
for(int j=0;j<array1.length-1;j++) {
for(int k=0;k<array1.length-1;k++) {
if(array1[j]==code[k]) {
rIndex++;
break;
}
}
}
int bIndex=0;
if(array1[6]==code[6]) {
bIndex=1;
}
int money = getLotterMoney(rIndex,bIndex);
sumMoney += money;
System.out.println(Arrays.toString(array1)+"红球"+rIndex+"个,蓝球"+bIndex+"个,中奖"+money+"¥");
}
money += sumMoney;
System.out.println("当次购买彩票,总共中奖"+sumMoney+"元");
}
public static int getLotterMoney(int rIndex,int bIndex) {
int sumMoney=0;
if((rIndex>=3 && bIndex==0) || (rIndex<3 && bIndex==1)) {
sumMoney=5;
}else if((rIndex==4 && bIndex==0) || (rIndex==3 && bIndex==1)){
sumMoney=20;
}else if(rIndex==4 && bIndex==1){
sumMoney=200;
}else if((rIndex == 5 && bIndex == 0) ) {
sumMoney = 1000;
}else if((rIndex == 5 && bIndex == 1) ) {
sumMoney = 20000;
}else if((rIndex == 6 && bIndex == 0) ) {
sumMoney = 100000;
}else if((rIndex == 6 && bIndex == 1) ) {
sumMoney = 5000000;
}
return sumMoney;
}
public static void main(String[] args) {
System.out.println("----欢迎进入双色球彩票抽奖系统----");
Scanner scanner=new Scanner(System.in);
boolean flag=true;
while(flag) {
System.out.println("请选择:"
+"1:充值"
+"2:查看账户资金"
+"3:开始购买彩票"
+"4:开奖"
+"5:查看当前购买的彩票"
+"6:退出系统");
int choose=scanner.nextInt();
switch(choose) {
case 1:
//充值
System.out.println("请输入充值金额:");
money+=scanner.nextDouble();
System.out.println("充值成功!");
break;
case 2:
//查看账户资金
System.out.println("账户余额为:"+money);
break;
case 3:
//购买彩票
buyLottery();
print();
break;
case 4:
//开奖[0, 1, 2]
openLottery();
break;
case 5:
//查看当前购买的彩票
print();
break;
case 6:
//退出系统
System.out.println("欢迎下次光临!");
flag=false;
break;
default :
System.out.println("录入错误,请输入“1-6”的数字!");
}
}
}
}