java简单练习小游戏

JAVA小练习

练习一:飞机票

需求:

机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。

按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。

代码示例:

public class Test01 {
public static double ticket(double price,int month,String type){
        //1:根据month判断是淡季还是旺季
        if(month>=5 && month<=10){
            //旺季
            // 再根据舱位  进行打折
            switch (type){//type 舱位的值
                case "头等舱":
                    price = price*0.9;
                    break;
                case "经济舱":
                    price = price*0.85;
                    break;
            }
        }else { //淡季
            // 再根据舱位  进行打折
            switch (type){//type 舱位的值
                case "头等舱":
                    price = price*0.7;
                    break;
                case "经济舱":
                    price = price*0.65;
                    break;
            }
        }
        return price;
    }
​
    public static void main(String[] args) {
        //调用机票打折
​
        double ticket = ticket(1200, 1, "头等舱");
        System.out.println("去长沙的票价是:"+ticket);
    }
}

练习二:打印素数

需求:

判断101~200之间有多少个素数,并输出所有素数。

代码示例:

 public static int getSuShu(int n,int m){
        //n是找素数起始范围  m找素数的结束范围
        // 1:定义一个统计素数的变量
        int count = 0;
        //2:遍历 n~m 取出每个数进行判断
        for (int num = n; num <= m; num++) {
            //  num 的取值从n开始到m;
            //  num就是取出的每个数
            //3:对num判断是不是一个素数
            boolean flag = true;//假设是一个素数
            // 遍历 推翻
            for (int i = 2; i < num ; i++) {//判断num 能不能被除去1和本身 整除
                if(num%i==0){//被其他数整除了 就不是素数了
                    flag = false;
                    break;
                }
            }
            //上面循环 结束就能知道 该数是不是素数了
            if(flag){
                System.out.println(num+"是素数.");
                count++;
            }
        }
        // 上面的循环是对每个数 都进行了判断 每个数判断完就知道最终结果了
        return count;
    }
​
​
    public static void main(String[] args) {
        //求 101 到 200之间素数
        int count = getSuShu(101, 200);
        System.out.println("101到200之间的素数个数是:"+count);
​
    }
​
}
​

练习三:验证码

需求:

定义方法实现随机产生一个验证码

验证码格式:

长度为4或者6 (方法可以指定位数)。

每个验证码 由 字母和数字 字符组成。

代码示例:

public class Test03 {
​
    public static void main(String[] args) {
        String code = createCode(4);
        System.out.println(code);
    }
      public static String createCode(int n){
                // 返回的 一个验证码字符串   传入参数  是指定位数
​
​
//        1: 定义验证码数组  --- 验证码字符来源于此
        char[] codes = {'1','2','3','4','5','6','7','8','9','0',
                'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
                'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
//        定义空字符串    --- 用来完成验证码的拼接
        String code = "";
//        2: 随机n次 --产生 n个字符
        for (int i = 0; i < n; i++) {
//        3: 每次循环产生一个随机字符,把随机字符拼接到空字符串中
//        3.1 产生一个随机的索引
            Random rd = new Random();
            int index = rd.nextInt(codes.length);//codes.length 指的是 数组的长度 索引恰巧 0~数组长度-1
            //index 随机的索引
//        3.2 根据随机索引找到随机的字符
            char c = codes[index];//数组名[索引]
//        3.3 拼接到空字符串中
//            code = code + c;
            code += c ;//字符串和字符拼接 形成新的字符串
        }
​
//        4:循环做完 验证码就拼接完成 返回。
      return code;
    }
}

练习四:复制数组

需求:

把一个数组中的元素复制到另一个新数组中去。

代码示例:

public class Test04 {
​
    public static void main(String[] args) {
      /*
       需求:
         把一个数组中的元素复制到另一个新数组中去。
       */
        int[] arr1 = {3,4,5,5,6};
//        int[] arr2 = arr1;//这不是另一个因为 arr1的指向和arr2的指向是同一个
        // 新建一个新的数组arr2 空间长度和arr1一致
        int[] arr2 = new int[arr1.length];
        // 要把 arr1每个元素 存储到arr2对应的位置
        //  arr2[0] = arr1[0]  arr2[1]=arr1[1]....
        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
        System.out.println("第一个数组中的内容:"+Arrays.toString(arr1));
        System.out.println("第二个数组中的内容:"+Arrays.toString(arr2));
​
    }
​
}
练习五:评委打分

需求 :

在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。

代码示例:

public class Test0500 {
​
    /*
      需求:
        歌唱比赛: 6名评委打分,根据打分求选手最终得分。
         最终得分规则:
            打分范围 0-100
            评委人数  6
            评委打分  键盘录入
            求的分数
               去掉最高分 去掉最低分 平均分。
     */
    public static void main(String[] args) {
        // 1:模拟 评委给选手打分,打出来的分数--存储起来
        //1.1 创建一个数组 用于存储评委的打分分数
        int[] scores = new int[6];//6个评委 长度是6
        // 模拟评委打分 键盘录入 录入六次
        // 1.2 先创建一个键盘录入对象
        Scanner sc = new Scanner(System.in);
        // 1.3 循环录入
        for (int i = 0; i < 6; i++) {
            // 键盘录入 评委成绩
            System.out.println("请录入第"+(i+1)+"位评委的打分:");
            int score = sc.nextInt();//score 录入的分数
            //存到数组中
            scores[i] = score;
        }
        // scores这个数组存储的是 评委录入的选手的分数
        //2:根据数组的里面的分数 求出 选手的最终得分
        //  (总分-最高分-最低分)/4 = 最终得分
        // 求总分
        int sum = 0;
        int max = scores[0];// 求最高分
        int min = scores[0]; // 求最低分
        for (int i = 0; i < scores.length; i++) {
            //求和
            sum += scores[i];
           // 求最大值
            if(scores[i]>max){
                max = scores[i];
            }
            // 求最小值
            if(scores[i]<min){
                min = scores[i];
            }
​
        }
​
        // 循环做完 最低分
        // 求最终得分
        int avg = (sum-max-min)/4;
​
        System.out.println("劳大在虎扑评分:"+avg);
    }
}
​
练习六:抽奖

需求:

一个大V直播抽奖,奖品是现金红包,分别有{2, 588 , 888, 1000, 10000}五个奖金。请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。打印效果如下:(随机顺序,不一定是下面的顺序)

888元的奖金被抽出
588元的奖金被抽出
10000元的奖金被抽出
1000元的奖金被抽出
2元的奖金被抽出
public class Test06 {
 public static void main(String[] args) {
        //1:准备五个红包--存到红包数组中
        int[] redPackage = {2,588,888,1000,10000};
        //2:循环五次 ---
        //模拟五个粉丝来抽奖
        for (int i = 0; i < 5; i++) {//循环五次的
            // 2.1 键盘录入粉丝名字
            System.out.println("请输入您的大名:");
            Scanner sc = new Scanner(System.in);
            String name = sc.next();
            // 2.2 开始抽奖  while(true) 粉丝不知道抽几次可以抽到
            while(true){
                //  while true 里面 模拟每一次抽
                //2.3 随机红包的索引 ---random
                Random rd = new Random();
                int index = rd.nextInt(redPackage.length);
                //2.4 找到对应的红包 --- 数组[索引]
                int money = redPackage[index];
                //  2.5 抽到的空包继续抽 不是空包---
                // 把数组指定位置元素值取出来...变成空包(赋值0)  代表抽到  break结束循环
                if(money!=0){//不是空包
                    //把钱取出来
                    System.out.println("恭喜"+name+"这位粉丝,您抽到了:"+money);
                    //当前位置的要变成空包
                    redPackage[index] = 0;//空包
                    break;
                }
            }
​
        }
​
    }
}
​

         卷不动了兄弟们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值