guyanqing 11 months ago
parent
commit
c603dbaf6d

+ 1 - 1
src/main/java/com/sf/day01/T.java → src/main/java/com/sf/preheat/day01/T.java

@@ -1,4 +1,4 @@
-package com.sf.day01;
+package com.sf.preheat.day01;
 
 
 import org.junit.jupiter.api.Test;

+ 128 - 0
src/main/java/com/sf/preheat/day02/BallDemo.java

@@ -0,0 +1,128 @@
+package com.sf.preheat.day02;
+
+import java.util.Arrays;
+import java.util.Random;
+import java.util.Scanner;
+
+public class BallDemo {
+    static final int BLUE_BALL_BOUND = 16;
+    public static void main(String[] args) {
+        System.out.println("欢迎来到双色球玩法");
+        //维护一个球的数组/集合 01~33
+        String[] ballPool = getBallPool();
+        System.out.println(Arrays.toString(ballPool));//面向对象有现成工具类直接使用
+        //开奖 - 帮助机器选择 随机选择6个不重复红球与一个篮球
+        String[] sysRedBalls = getRedBalls(ballPool);
+
+        System.out.println("机选出来的红球为:" + Arrays.toString(sysRedBalls));
+        Random r = new Random();
+
+        String sysBlueBall = ballPool[r.nextInt(BLUE_BALL_BOUND)];
+        System.out.println("系统选的一个篮球为 :" + sysBlueBall);
+
+        System.out.println("用户选球: (1) 机选  (2) 手选");
+        Scanner sc = new Scanner(System.in);
+        int type = sc.nextInt();
+
+        String[] userRedBalls = new String[6];
+        String userBlueBall = "";
+        boolean flag = true;
+        while (flag){
+            switch (type){
+                case 1: //机选
+                    userRedBalls = getRedBalls(ballPool);
+                    userBlueBall = ballPool[r.nextInt(BLUE_BALL_BOUND)];
+                    flag = false;
+                    break;
+                case 2: //手选
+                    System.out.println("手选红球,请依次输入六个红球:");
+                    for(int i = 0 ; i < userRedBalls.length ; i++)
+                        userRedBalls[i] = sc.next();
+                    System.out.println("手选蓝球,请输入一个蓝球:");
+                    userBlueBall = sc.next();
+                    flag = false;
+                    break;
+                default:
+                    System.out.println("用户选球: (1) 机选  (2) 手选");
+                    type = sc.nextInt();
+                    break;
+            }
+        }
+
+        System.out.println("-----------用户选完了------------");
+        System.out.println("用户选的六个红球为 : " + Arrays.toString(userRedBalls) );
+        System.out.println("用户选的蓝球为 : " + userBlueBall );
+
+        System.out.println("-----------是否中奖-----------");
+        System.out.println(isAward(sysRedBalls, sysBlueBall, userRedBalls, userBlueBall));
+
+
+    }
+
+    /**
+     * 判断是否中奖了
+     * @return
+     */
+    public static String isAward(String[] sysRedBalls , String sysBlueBall , String[] userRedBalls , String userBlueBall){
+        int blueCount = 0 ;
+        //篮球是否相等
+        if(sysBlueBall.equals(userBlueBall)) blueCount ++;
+        int redCount = 0 ;
+        for(String x : sysRedBalls){
+            for(String y : userRedBalls){
+                if(x.equals(y)) redCount++;
+            }
+        }
+        System.out.println("几个红球相同:" + redCount + ", 篮球是否相同 : " + blueCount);
+        if(blueCount == 1 && redCount < 3) return "六等奖";
+        else if((blueCount + redCount) == 4) return "五等奖";
+        else if((blueCount + redCount) == 5) return "四等奖";
+        else if(redCount == 5 && blueCount == 1) return "三等奖";
+        else if(redCount == 6 && blueCount == 0) return "二等奖";
+        else if(redCount == 6 && blueCount == 1) return "一等奖";
+        else return "没中奖,很遗憾~~~";
+    }
+
+    /**
+     * 传递一个球池过来,从球池中获取6个不重复的红球
+     * @param ballPool
+     * @return
+     */
+    public static String[] getRedBalls(String[] ballPool){
+        String[] redBalls = new String[6];
+        Random r = new Random();//使用随机函数对象,来完成伪随机操作
+        int count = 0;
+        boolean[] flag = new boolean[ballPool.length];//布尔类型的数组申请空间的时候默认值是false
+
+        while (true){//永真循环 - 可以进行手动退出 拿好了6个红球之后退出
+            int index = r.nextInt(ballPool.length);//bound : 33 ,从 0 ~ 32 直接随机拿到一个数字
+            if(flag[index]){
+                continue;//跳过本次循环,不执行下面的操作
+            }
+            redBalls[count++] = ballPool[index];
+            flag[index] = true;
+            //去重 - 把重复随机出来的红球去掉
+            if(count == 6)
+                break;
+        }
+
+        return redBalls;
+    }
+
+    /**
+     * 获取hong球的数组/集合
+     * @return
+     */
+    public static String[] getBallPool(){
+        String[] ballPool = new String[33];//初始化一个数组的变量出来
+        //分支与循环
+        for(int i = 1 ; i <= ballPool.length ; i++){
+            //分支判断 - 1 ~ 9 的数字单独处理
+            if(i < 10)
+                ballPool[i - 1] = "0" + i;
+            else ballPool[i - 1] = i + ""; //将整数类型转换为字符串类型,最快速的方式就是拼接空""
+        }
+        return ballPool;
+    }
+
+}

+ 160 - 0
src/main/java/com/sf/preheat/day02/Test.java

@@ -0,0 +1,160 @@
+package com.sf.preheat.day02;
+
+import javax.xml.transform.Source;
+import java.io.PipedOutputStream;
+import java.util.Scanner;
+
+public class Test {
+    public static void main(String[] args) {
+//        byte b1 = 10;
+//        byte b2 = 20;
+//        byte b3 = (byte) (b1+b2);
+//        System.out.println(b3);
+//        /**
+//         * (3)先声明1个char类型的变量c1赋值为'a',再声明一个int类型的变量num赋值为5,
+//         *     求c1和num变量的和,并将结果将结果保存在char类型的变量letter中,
+//         *     最后输出letter变量的值。
+//         */
+//        char c1 = 'a';  //97
+//        int num = 5;
+//        char letter = (char) (c1+num);
+//        System.out.println(letter);
+
+//        /**
+//         * 4)先声明两个int类型的变量i1,i2,并分别赋值5和2,求i1和i2的商,
+//         * 并将结果保存在double类型的变量result中,最后输出result变量的值。如何得到结果2.5呢?
+//         */
+//        int i1 = 5;
+//        int i2 = 2;
+//        double result = i1*1.0/i2;
+//        System.out.println(i1*1.0/i2);
+//        System.out.println(result);
+
+        /**
+         * 键盘录入学生成绩,  0 ~ 100分,  根据成绩所在的区间,  打印出不同的奖励机制
+         */
+        Scanner scan = new Scanner(System.in);
+        double nextDouble = scan.nextDouble();
+        if(nextDouble < 60 && nextDouble >=0){
+            System.out.println("不合格");
+        }else if (nextDouble < 90 && nextDouble >=60){
+            System.out.println("合格");
+        }else {
+            System.out.println("优秀");
+        }
+
+    }
+
+    @org.junit.jupiter.api.Test
+    /**
+     * 今天是周2,100天以后是周几?
+     */
+    public void t1(){
+        int week = 2;
+        week += 100;
+        week %= 7;
+        System.out.println(week);
+        /**
+         * 判断今年是否是闰年
+         */
+        int year = 2023;
+        boolean result = year % 4 ==0 && year % 100 !=0 || year % 400 == 0;
+        System.out.println(result);
+    }
+
+    @org.junit.jupiter.api.Test
+    public void t2(){
+        double hs  = 80;
+        double she = (hs - 32)/1.8;
+        System.out.println(she);
+    }
+
+    @org.junit.jupiter.api.Test
+    public void t3(){
+        int i = 1;   // i = 1
+        i *= 0.2;   // i = 0.2;
+        i++;   //  i = 1.2    -- int  1
+        System.out.println("i=" + i);
+    }
+
+    @org.junit.jupiter.api.Test
+    public void t4(){
+        int i = 2;
+        // i *= 2;      i *= ++i;   // i *= 3;
+        i *= i++;  // i *= i;
+
+        int j = 2;
+        j *= j+1;
+
+        int k = 2;
+        k *= ++k;
+
+        System.out.println("i=" + i);
+        System.out.println("j=" + j);
+        System.out.println("k=" + k);
+    }
+
+    @org.junit.jupiter.api.Test
+    public void t5(){
+        /**
+         * int a = 8, b = 3;
+         * System.out.println(a>>b);  //  1
+         * System.out.println(a>>b | 2);
+         *  >>    >>>
+         * a : 0000 1000  = 8  >> 3  0000  0001    = 1       8/2^3
+         *  0000 0001
+         *  0000 0010
+         *  0000 0011   //3
+         *
+         *  如何用最有效的的方法计算2乘以8
+         *  2*8   ==>  2<<3    / 8<1
+         *  0000 0010     << 3   0001 0000    16
+         *  0000 1000     <<1    0001 0000    16
+         */
+        int a = 8, b = 3;
+        System.out.println(a>>>b);
+        System.out.println(a>>>b | 2);
+    }
+
+    @org.junit.jupiter.api.Test
+    public void t6(){
+        String season = "summer";
+        switch (season){
+            case "spring":
+                System.out.println("春天");
+//                break;
+            case "summer":
+                System.out.println("夏天");
+//                break;
+            case "autumn":
+                System.out.println("秋天");
+//                break;
+            case "winter":
+                System.out.println("冬天");
+//                break;
+            default:
+                System.out.println("其他");
+        }
+    }
+
+    @org.junit.jupiter.api.Test
+    public void t7(){
+        /**
+         * 键盘录入学生成绩,  0 ~ 100分,  根据成绩所在的区间,  打印出不同的奖励机制
+         */
+        Scanner scan = new Scanner(System.in);
+        double nextDouble = scan.nextDouble();
+        if(nextDouble < 60 && nextDouble >=0){
+            System.out.println("不合格");
+        }else if (nextDouble < 90 && nextDouble >=60){
+            System.out.println("合格");
+        }else {
+            System.out.println("优秀");
+        }
+    }
+
+    @org.junit.jupiter.api.Test
+    public void t8(){
+
+    }
+}

BIN
target/classes/com/sf/day01/T.class


BIN
target/classes/com/sf/preheat/day01/T.class


BIN
target/classes/com/sf/preheat/day02/BallDemo.class


BIN
target/classes/com/sf/preheat/day02/Test.class