双色球彩票抽奖系统

彩票系统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”的数字!");
			}
			
		}

	}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值