Java 新手项目一(双色球)

1.项目需求

双色球投注区分为红色球号码区和蓝色球号码区,

红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成。

投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注金额2元。

一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;

二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;

三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;

四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;

五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;

六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。

显示中奖结果的同时显示您一共下注人民币??元,累计中奖人民币??元

2.编写代码步骤

  1. 实现主菜单显示和选择
  2. 实现主菜单循环显示和选择
  3. 完成购买彩票操作
  4. 完成查看开奖主要步骤
  5. 完成完整查看开奖操作

一.主窗口(代码)

    static void mainWindow(int []red,int []bule,int []luck) {
    	int count=0;
    	 while (true) {
             System.out.println("***欢迎进入双色球彩票系统***");
             System.out.println("\t1.购买彩票");
             System.out.println("\t2.查看彩票");
             System.out.println("\t3.退出");
             System.out.println("***************************");
             System.out.print("请选择菜单:");
             int in = input.nextInt();
             switch (in) {//判断输入的值与其对应的菜单相对应。
                 case 1:
                    count= buy(bule, red);
                     break;
                 case 2:
                	 if(count==0)
                		 System.out.println("请先购买彩票");
                	 else
                		 showprice(red,luck, bule,count);
                     break;
                 case 3:
                     return;
             }
    }}

二.查看彩票

  public static void showprice(int[] red,int[]luck, int[] bule,int count) {
        for (int i = 0; i < red.length; i++) {//依次遍历随机生成的红球是否与已存在红球数组里面的数是否一致。
            int rand = (int) (Math.random() * 33 + 1);
            boolean isRepeat=checkBall(luck,rand,i);
            if(isRepeat) {//如果一致则i--重新再生成。
            	i--;
            }
            else luck[i]=rand;
        }
//        cheat(red,bule,luck);//作弊,此函数是为了验证一等奖。
    luck[6]= (int) (Math.random() * 16 + 1);
    int level=0;
    for(int i=0;i<red.length;i++) {
    	if(checkBall(luck,red[i],red.length)){
    		level++;
    	}
    }
    boolean buleBallReat=false;
    if(bule[0]==luck[6])
    	buleBallReat=true;
    if(level==6&&buleBallReat) {
    	System.out.println("恭喜你!中了1等奖您的奖金为:"+(count*1000000));
    }else if(level==6) {
    	System.out.println("恭喜你!中了2等奖您的奖金为:"+(count*500000));
    }else if(level==5||buleBallReat) {
    	System.out.println("恭喜你!中了3等奖您的奖金为:"+(count*3000));
    }else if(level==5||(buleBallReat&&level==4)) {
    	System.out.println("恭喜你!中了4等奖您的奖金为:"+count*200);
    }else if(level==4||buleBallReat&&level==3) {
    	System.out.println("恭喜你!中了5等奖,您的奖金为:"+count*5);
    }else if(buleBallReat) {
    	System.out.println("恭喜你!中了6等奖"+count*1000000);
    }else {
    	System.out.println("很遗憾您未中奖!");
    
}}

三.买彩票

public static int buy(int[] bule, int[] red) {
        for (int i = 0; i <red.length; i++) 
        {
            System.out.println("请输入第" + (i+1) + "个红球的数字1~33:");
            int num = input.nextInt();
            if (num < 1 || num > 33) {
                i--;
                System.out.println("输入错误,请重新输入!");
                continue;
            }
            if(checkBall(red,num,i)==false)//检查输入的红球与已存在的红球数组里面的元素是否一致。
            	red[i] = num;
            else
            	{System.out.println("红球不可重复购买");
            	i--;}//确保输入的红球要为6个,以下为输入蓝球数量。
        }
        System.out.println("请输入篮球的数字:");
        int num = input.nextInt();
        while (num > 16 || num < 1) {
            System.out.println("蓝球必须在1~16之间:");
            num = input.nextInt();
        }
        bule[0] = num;//将输入的蓝球数字放入数组bule数组中。
        display(red,bule);//显示购买蓝球与红球的数字。
        
        System.out.println("输入注数:");
        int count=input.nextInt();
        System.out.println("购买注数:"+count+" "+"花费金额:"+count*2.0);
        return count;
    }

四.显示购买球的号码

  static void display(int [] red,int []bule) {
    	System.out.print("购买红球:");
    	for(int i=0;i<red.length;i++) 
    		System.out.print(red[i]+" ");
    	System.out.println("购买蓝球的号码:"+bule[0]);
    }

五.检查购买的球是否重复

  static boolean checkBall(int []red,int num,int count) {
    	for(int i=0;i<count;i++)
    	{
    		if(num==red[i])
    			return true;
    	}
    	return false;
    }

六.完整代码如下

package doubleTest;
import java.util.Scanner;
public class doubleTest {
	static Scanner input = new Scanner(System.in);
    public static void main(String[] args) {
        int[] bule = new int[1];
        int[] red = new int[6];
        int[] luck = new int[7];
        mainWindow(red,bule,luck);
     }
    static boolean checkBall(int []red,int num,int count) {
    	for(int i=0;i<count;i++)
    	{
    		if(num==red[i])
    			return true;
    	}
    	return false;
    }
    static void display(int [] red,int []bule) {
    	System.out.print("购买红球:");
    	for(int i=0;i<red.length;i++) 
    		System.out.print(red[i]+" ");
    	System.out.println("购买蓝球的号码:"+bule[0]);
    }
	public static int buy(int[] bule, int[] red) {
        for (int i = 0; i <red.length; i++) 
        {
            System.out.println("请输入第" + (i+1) + "个红球的数字1~33:");
            int num = input.nextInt();
            if (num < 1 || num > 33) {
                i--;
                System.out.println("输入错误,请重新输入!");
                continue;
            }
            if(checkBall(red,num,i)==false)
            	red[i] = num;
            else
            	{System.out.println("红球不可重复购买");
            	i--;}
        }
        System.out.println("请输入篮球的数字:");
        int num = input.nextInt();
        while (num > 16 || num < 1) {
            System.out.println("蓝球必须在1~16之间:");
            num = input.nextInt();
        }
        bule[0] = num;
        display(red,bule);
        
        System.out.println("输入注数:");
        int count=input.nextInt();
        System.out.println("购买注数:"+count+" "+"花费金额:"+count*2.0);
        return count;
    }
    static void mainWindow(int []red,int []bule,int []luck) {
    	int count=0;
    	 while (true) {
             System.out.println("***欢迎进入双色球彩票系统***");
             System.out.println("\t1.购买彩票");
             System.out.println("\t2.查看彩票");
             System.out.println("\t3.退出");
             System.out.println("***************************");
             System.out.print("请选择菜单:");
             int in = input.nextInt();
             switch (in) {
                 case 1:
                    count= buy(bule, red);
                     break;
                 case 2:
                	 if(count==0)
                		 System.out.println("请先购买彩票");
                	 else
                		 showprice(red,luck, bule,count);
                     break;
                 case 3:
                     return;
             }
    }}
//   static void cheat(int []red,int []bule,int []luck) {//作弊
//	   for(int i=0;i<6;i++)
//		   red[i]=luck[i];
//	   }
    public static void showprice(int[] red,int[]luck, int[] bule,int count) {
        for (int i = 0; i < red.length; i++) {
            int rand = (int) (Math.random() * 33 + 1);
            boolean isRepeat=checkBall(luck,rand,i);
            if(isRepeat) {
            	i--;
            }
            else luck[i]=rand;
        }
//        cheat(red,bule,luck);//作弊
    luck[6]= (int) (Math.random() * 16 + 1);
    int level=0;
    for(int i=0;i<red.length;i++) {
    	if(checkBall(luck,red[i],red.length)){
    		level++;
    	}
    }
    boolean buleBallReat=false;
    if(bule[0]==luck[6])
    	buleBallReat=true;
    if(level==6&&buleBallReat) {
    	System.out.println("恭喜你!中了1等奖您的奖金为:"+(count*1000000));
    }else if(level==6) {
    	System.out.println("恭喜你!中了2等奖您的奖金为:"+(count*500000));
    }else if(level==5||buleBallReat) {
    	System.out.println("恭喜你!中了3等奖您的奖金为:"+(count*3000));
    }else if(level==5||(buleBallReat&&level==4)) {
    	System.out.println("恭喜你!中了4等奖您的奖金为:"+count*200);
    }else if(level==4||buleBallReat&&level==3) {
    	System.out.println("恭喜你!中了5等奖,您的奖金为:"+count*5);
    }else if(buleBallReat) {
    	System.out.println("恭喜你!中了6等奖"+count*1000000);
    }else {
    	System.out.println("很遗憾您未中奖!");
    
}}}


版权声明:本文为qq_46374834原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。