3D彩票系统

package com.hrf.java05;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class LotterySystem3D {

//	循环
//	键盘输入
//	2维数组
//	方法调用和返回值
//	简单的屏幕格式控制
	private static Scanner sc = new Scanner(System.in);
	private static Random r = new Random();
	private static int surplus = 10000000; // 剩余钱
	private static int maxCount = 100; // 用来统计最大购买数
	private static int[][] arr = new int[maxCount][4];
	private static int index = 0;
	private static int thePage = 0;// 是否留在该页面上
	private static boolean flag = true;

	public static void main(String[] args) {
		optional();
	}
//	3D彩票系统要实现 查询余额,充值,自选彩票,机选彩票,查看购买彩票,开奖,退出等功能

//	选择序号
	public static void optional() {
		program();
		System.out.println("请输入你要选择的项目数字 : ");
		while (true) {
			int num = sc.nextInt();
			if (num >= 0 && num <= 6) {
				switch (num) {
				case 1:
//					查看余额
					blance();
					break;
				case 2:
//					进行充值
					recharge();
					break;
				case 3:
//					自选
					selfOptionalLottery();
					break;
				case 4:
//					机选
					machineOptionalLottery();
					break;
				case 5:
//					查看购买彩票
					findBuyLottery();
					break;
				case 6:
//					开奖
					drawPrice();
					break;
				case 0:
//					退出
					exit();
					return;
				}
			} else {
				System.out.println("你输入的数字有误,请重新输入:");
				program();
			}
		}
	}

//	属性元素,主菜单
	public static void program() {
		System.out.println("------华丽分割线------");
		System.out.println("1.查看余额");
		System.out.println("2.充值");
		System.out.println("3.自选");
		System.out.println("4.机选");
		System.out.println("5.查看购买彩票");
		System.out.println("6.开奖");
		System.out.println("0.退出");
	}

//	1.查看余额
	public static void blance() {// 初始余额
		System.out.println("当前余额为:" + surplus + "元");
		optional();
	}

//	2.充值
	public static void recharge() {
		System.out.println("充值活动:充50送20元,充100送50元,充500送300元");
		System.out.println("请输入充值额度:");
		int money = sc.nextInt();
		if (money >= 50 && money < 100) {
			money += 20;
			surplus += money;
			System.out.println("充值成功 ! 当前余额为:" + surplus);
		} else if (money >= 100 && money < 500) {
			money += 50;
			surplus += money;
			System.out.println("充值成功 ! 当前余额为:" + surplus);
		} else if (money >= 500) {
			money += 300;
			surplus += money;
			System.out.println("充值成功 ! 当前余额为:" + surplus);
		} else if (money < 0) {
			System.out.println("输入有误,请重新输入:");
			recharge();
		} else {
			surplus += money;
			System.out.println("充值成功 ! 当前余额为:" + surplus);
		}
		System.out.println("1.继续充值 , 2.退出");
		System.out.println("请选择:");
		int re = sc.nextInt();
		if (re == 1) {
			recharge();
		}
		if (re == 2) {
			optional();
		}
	}

//	3.自选
	public static void selfOptionalLottery() {
		System.out.println("请输入购买彩票的类型: 1.直选 , 2.组六");
		int n = sc.nextInt();
		if (n == 1 || n == 2) {
			System.out.println("请输入号码(0~9):");
			int num1 = sc.nextInt();
			int num2 = sc.nextInt();
			int num3 = sc.nextInt();
			if ((num1 >= 0 && num1 <= 9) && (num2 >= 0 && num2 <= 9) && (num3 >= 0 && num3 <= 9)) {
				arr[index] = new int[] { num1, num2, num3, n };
				index++;
				surplus -= 5;
				System.out.println("购买成功!");
				optional();
			} else {
				System.out.println("输入有误,请重新输入");
				selfOptionalLottery();
			}
		}
	}

//	4.机选
	public static void machineOptionalLottery() {
		
		System.out.println("请输入购买彩票的类型: 1.直选 , 2.组六");
		int n1 = sc.nextInt();
		if(n1 == 1 || n1 == 2) {
			System.out.println("输入要买多少注:");
			int count = 0;
			while(true) {
//				maxCount += 100;
//				System.out.println(" ++" + maxCount);
				count = sc.nextInt();//输入要买的注数
				if(count > 0) {
					if(count + index > maxCount) {
						System.out.println("超过最大购买次数!");//最大购买菜次数为100
						System.out.println("请重新输入:");
					}else if(count * 5 < surplus) {
//						System.out.println("你买的注数是:" + count);
						break;//跳出循环
					}else {
						System.out.println("余额不足请先充值!为你跳到菜单页面!");
						optional();//到菜单页面
					}
				}else {
					System.out.println("你的输入有误,请重新输入:");
				}
				
			}
			for (int i = 0; i < count; i++) {
				int num1 = r.nextInt(10);
				int num2 = r.nextInt(10);
				int num3 = r.nextInt(10);
				arr[index] = new int[] {num1, num2, num3, n1};
				index++;
			}
			surplus -= count * 5;
			System.out.println("机选" + count + "次");
			optional();
		}else {
			System.out.println("你输入的有误,请重新输入:");
			machineOptionalLottery();
		}
	}
//	5.查看购买彩票
	public static void findBuyLottery() {
		for (int i = 0; i < index; i++) {
			for (int j = 0; j < 3; j++) {
				System.out.print(arr[i][j] + " ");
			}
			if(arr[i][3] == 1) {
				System.out.println("直选");
			}else {
				System.out.println("组六");
			}
		}
		optional();
	}

//	6.开奖
	public static void drawPrice() {
		System.out.println("开奖号码:");
		int[] price = new int[3];
		for (int i = 0; i < price.length; i++) {
			price[i] = r.nextInt(10);
			System.out.print(price[i] + " "); 
		}
		System.out.println();
		for (int i = 0; i < index; i++) {
			int type = arr[i][3];
			if(type == 1) {
				int[] temp = arr[i];
				if(isTwoArrEqual(price, temp)) {
					System.out.println("恭喜你中了100元");
					surplus += 100;
//					break;
				}else {
					System.out.println("很遗憾你没有中奖!请再接再厉!");
				}
			}else {
				int[] array = arr[i];
				int[] arr1 = {price[0], price[1], price[2]};
				int[] arr2 = {array[0], array[1], array[2]};
				Arrays.sort(arr1);
				Arrays.sort(arr2);
				if(isTwoArrEqual(arr1, arr2)) {
					System.out.println("恭喜你中了100元");
					surplus += 100;
//					break;
				}else {
					System.out.println("很遗憾你没有中奖!请再接再厉!");
				}
			}
		}
		optional();
	}
//	判断两个数组是否相等
	private static boolean isTwoArrEqual(int[] arr1, int[] arr2)  {
		for (int i = 0; i < index; i++) {
			if(arr1[i] != arr2[i]) {
				return false;
			}
		}
		return true;
	}
	
//	0.退出
	public static void exit() {
		System.out.println("欢迎下次光临!");
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值