彩票系统的Java实现

能够实现的功能有六个:(1)充值 (2)查看账户资金(3)开始购买彩票(4)开奖  (5)查看当前购买的彩票(6)退出系统

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

public class Shuangseqiu {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
         /*1、提醒“欢迎进入***抽奖系统”  双色球
         */
        System.out.println("欢迎进入双色球抽奖系统");
        //command是记录命令的字符,只有1—6可以选择系统中已经存在的命令
        String command = null;
        //accountMoney是账户余额,MoneyEarned是彩票中的钱
        int accountMoney = 20,MoneyEarned = 0;
        Scanner sc = new Scanner(System.in);
//        int[][] UserLotter = new int[10][8];
        
        int[][] UserNumber = new int[10][7];
        int[] SystemNumber = new int[7];
        Random ran = new Random();
        int LotterNum = 0;//用户选择彩票的注数
        while (true) {
//        请选择
//              ​  1:充值 2:查看账户资金 3:开始购买彩票 4:开奖  5:查看当前购买的彩票 6.退出系统
            System.out.println("请输入您的命令,1:充值 2:查看账户资金 3:开始购买彩票 4:开奖  5:查看当前购买的彩票 6.退出系统");
//            LotterNum = 0;
            command = sc.nextLine();
            switch (command) {
            case "1":
//                1、充值  用户自己录入充值金额,显示充值之后账户资金
                System.out.println("请输入一个为整数的充值金额:");
                int Money = sc.nextInt();
                System.out.println("原先账户金额为"+accountMoney+"元");
                accountMoney += Money;
                System.out.println("充值之后,账户金额为"+accountMoney+"元");    
                break;
            case "2":
//                2:查看账户资金
                System.out.println("账户金额为"+accountMoney+"元");    
                break;
            case "3":
                /*3、开始购买彩票      
                  ​   购买彩票注数  10  【共7位,前6位1-32,第七位是1-16】
                    一注【1,2,5,8,20,32,16】不能重复且前6位从小到大有序
                     验证当前账户资金是否充足?一注2块
                    1)自选彩票   自己录入7个数值
                    2)机选   随机生成彩票  随机给用户出彩票,用户资金减少*/
                System.out.println("输入您想选择的注数,最多可以选择10注");
                String Number = sc.nextLine();
                LotterNum = Integer.parseInt(Number);
                //用来存储用户输入到系统中的红球和蓝球
//                int[][] UserNumber = new int[LotterNum][7];
                if(accountMoney<(LotterNum*2)) {
                    System.out.println("余额不足,请您去充值");
                    break;
                }else {
                    accountMoney-=LotterNum*2;
                    System.out.println("开始选择彩票,输入8开始自选彩票,输入其他数字,就是机选彩票");
                    String chooseCommand = sc.nextLine();
                    if(chooseCommand.equals("8")) {
                        System.out.println("开始自己选择彩票");
                        
                        for(int i = 0;i < LotterNum;i++) {
                            for(int j = 0;j < UserNumber[i].length;j++) {
                                if(j<6){
                                    System.out.print("请输入第"+(i+1)+"注中的第"+(j+1)+"个红球:");
                                    String num = sc.nextLine();
                                    UserNumber[i][j] = Integer.parseInt(num);
                                    if(UserNumber[i][j]<=32&&UserNumber[i][j]>=1) {
                                    for(int k = 0;k < j;k++) {
                                        if(UserNumber[i][k] == UserNumber[i][j]) {
                                            j--;
                                            System.out.println("与前面输入的数重复了,请重新输入");
                                            break;
                                        }
                                    }
                                    }else{
                                        j--;
                                        System.out.println("输入的数必须大于等于1小于等于32,您输的数据不符合要求,请重新输入");
                                    }
                                }else{
                                    System.out.println("\n请输入第"+(i+1)+"注中的蓝球:");
                                    String num = sc.nextLine();
                                    UserNumber[i][j] = Integer.parseInt(num);
                                    if(UserNumber[i][j]<1||UserNumber[i][j]>16) {
                                        System.out.println("您输入的数字不在1到16之间,请重新输入");
                                        j--;
                                    }
                                }
                                
                            }
                        }    
                    }else {
                        System.out.println("开始机器选择彩票");
                        for(int i = 0;i < LotterNum;i++) {
                            for(int j = 0;j < UserNumber[i].length;j++) {
                                if(j<6){
                                    int num = ran.nextInt(32)+1;
                                    UserNumber[i][j] = num;
                                    for(int k = 0;k < j;k++) {
                                        if(UserNumber[i][k] == UserNumber[i][j]) {
                                            j--;
                                            break;                                        }
                                    }
                                }else{
                                    int num = ran.nextInt(16)+1;
                                    UserNumber[i][6] = num;
                                }
                                
                            }
                        }
                    }
                }
                int temp;
                for (int t = 0; t < LotterNum; t++) {
                    for (int m = 0; m < 5; m++)  {
                        for (int n = 0; n < 5-m; n++) {
                            if (UserNumber[t][n] > UserNumber[t][n+1]) {
                                temp = UserNumber[t][n];
                                UserNumber[t][n] = UserNumber[t][n+1];
                                UserNumber[t][n+1] = temp;
                            }
                        }
                    }
                }
                for(int i = 0;i < LotterNum;i++) {
                    System.out.print("红球为");
                    for(int j = 0;j < UserNumber[i].length;j++) {
                        if(j<6) {
                            System.out.print(UserNumber[i][j]+" ");
                        }else {
                            System.out.print("蓝球为"+UserNumber[i][j]);
                        }
                    }    
                    System.out.println();
                }
                break;
            case "4":
                /*4、开奖   随机产生一注彩票,然后和用户的彩票数组比对,
                如果红色球有三个相同/或者一个蓝球,中5元
                如果红色球3个+1个蓝色球,中10元
                如果红色球4个,中20
                如果四个红色球+1个蓝色球,中200
                如果5个红色球,中1000
                如果5个红色球+1个蓝色球,中2万
                如果6个红色球,中红10万
                如果6个红色球+1个蓝色球,中500万
                账户余额更新*/
                
                for(int i=0;i<6;i++) {
                    SystemNumber[i] = ran.nextInt(32)+1;
                    for(int k = 0;k < i;k++) {
                        if(SystemNumber[i] == SystemNumber[k]) {
                            i--;
                            break;
                            }
                    }
                }
                SystemNumber[6] = ran.nextInt(16)+1;
                for (int m = 0; m < 5; m++)  {
                    for (int n = 0; n < 5-m; n++) {
                        if (SystemNumber[n] > SystemNumber[n+1]) {
                            temp = SystemNumber[n];
                            SystemNumber[n] = SystemNumber[n+1];
                            SystemNumber[n+1] = temp;
                        }
                    }
                }
                
                for(int t = 0;t

你可能感兴趣的:(Java,java)