java专题训练

买飞机票:
package specialExercise;

import java.util.Scanner;

public class buyPlanTicket {
    /*
    * 专题练习一:
    * 机票价格按照淡季旺季,头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
    * 按照如下规则计算机票价格:
    * 旺季(5-10月)      头等舱9折,经济舱8.5折,
    * 淡季(11月到来年4月)头等舱7折,经济舱6.5折
    *
    * 分析:
    * 1. 键盘录入机票原价、月份、舱选择
    * 2. 先判断月份是淡季还是旺季
    * 3. 继续判断是头等舱还是经济舱
    * */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入机票的原价");
       int ticket =  sc.nextInt();
       System.out.println("请输入当前的月份");
       int month = sc.nextInt();
       System.out.println("请输入当前购买的舱位 0 头等舱 1 经济舱");
       int seat = sc.nextInt();
       if(month >=5 && month <=10) {
           // 旺季
           ticket =  calcTicketPrice(seat,0.9,0.85,ticket);
       } else if((month >=1 && month<=4) || (month >= 11 && month <= 12)) {
           //淡季
           ticket =  calcTicketPrice(seat,0.7,0.65,ticket);
       } else {
           System.out.println("键盘录入的月份不合法");
       }
        System.out.println("价格" + ticket);
    }

    public static int calcTicketPrice(int seat, double v0, double v1, int price) {
        if(seat == 0) {
            // 头等舱
            price = (int)(price * v0);

        } else if(seat ==1) {
            // 经济舱
            price = (int)(price *v1);
        } else {
            System.out.println("没有这个舱位");
        }
        return  price;
    }
}

idea:快捷键 - ctrl + alt + m 自动抽取方法

验证码:
package specialExercise;

import java.util.Random;

public class validateCode {
    public static void main(String[] args) {
        /*
        * 开发验证码
        * 验证码格式:
        * 长度为5
        * 前四位是大写字母或者小写字母
        * 最后一位是数字
        * */
        // 1. 大写字母和小写字母都放在数组当中
        char[] chs = new char [52];
        for (int i = 0; i < chs.length; i++) {
            if(i <=25) {
                chs[i] = (char) (97 +i);
            } else {
                // 添加大写字母
                chs[i] = (char) (65 + i - 26);
            }
        }
        //定义一个字符串类型的变量,用来记录最终的结果
        String result = "";
        // 2. 随机四次
        Random r = new Random();
        for (int i = 0; i < 4; i++) {
            int randomIndex = r.nextInt(chs.length);
            result = result + chs[randomIndex];
        }
        //3. 随机抽取一个数字0-9
        int number = r.nextInt(10);
        result = result +number;
        System.out.print(result);
    }
}
数组的赋值:
package specialExercise;

public class copyArray {
    //把一个数组复制到另一个数组中去;
    public static void main(String[] args) {
        int[] oldArray = {1,2,3,4,5};
        int[] newArr = new int [oldArray.length];
        for (int i = 0; i < oldArray.length; i++) {
          newArr[i] =  oldArray[i];
        }
        for (int i = 0; i < newArr.length; i++) {
            System.out.println(newArr[i]);
        }
    }
}
打分:
package specialExercise;

import java.util.Scanner;

public class doGrade {
    public static void main(String[] args) {
        //定义一个数组,用来存储6名评委的打分
        int[] scoreArr = getGrade();
        int max = getMax(scoreArr);
        int min = getMin(scoreArr);
        int sum = getSum(scoreArr);
        int result = (sum - max - min)/(scoreArr.length - 2);
        System.out.println("最终分数" + result);
    }
    //求和
    public static int getSum(int[] scoreArr) {
        int sum = 0;
        for (int i = 0; i < scoreArr.length; i++) {
            sum = sum + scoreArr[i];
        }
        return sum;
    }
    // 求最大值
    public static int getMax(int[] scoreArr) {
          int max = scoreArr[0];
        for (int i = 0; i < scoreArr.length; i++) {
            if(scoreArr[i] > max) {
                max = scoreArr[i];
            }
        }
        return max;
    }
    // 求最小值
    public static int getMin(int[] scoreArr) {
        int min = scoreArr[0];
        for (int i = 0; i < scoreArr.length; i++) {
            if(scoreArr[i] < min) {
                min = scoreArr[i];
            }
        }
        return min;
    }
    public static int[] getGrade() {
        int[] scores = new int[6];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length;) {
            System.out.println("请输入分数");
            int score = sc.nextInt();
            if(score >=0 && score <=100) {
                scores[i] = score;
                i++;
            } else {
                System.out.println("成绩超出了范围,继续录入");
            }

        }
        return  scores;
    }
}

shift + f6 一键替换

双色球.

package specialExercise;

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

public class doubleColorBall {
    public static void main(String[] args) {
        // 1. 生成中奖号码
        int[] arr = createNumber();
        int[] userInputArr = userInput();
        // 判断用户中奖情况
        int redCount = 0;
        int blurCount = 0;
//        判断红球
        for (int i = 0; i < userInputArr.length -1; i++) {
           int redNmuber = userInputArr[i];
            for (int j = 0; j < arr.length -1 ; j++) {
                if(redNmuber == arr[j]) {
                    redCount ++;
                    break;
                }
            }
        }
    // 判断蓝球
        int blueNumber = userInputArr[userInputArr.length -1];
        if(blueNumber == arr[arr.length - 1]) {
            blurCount++;
        }
        //根据红球的个数以及蓝球的个数来判断中奖情况
        if(redCount == 6 && blueNumber ==1) {
            System.out.println("中奖10000万");
        } else if(redCount == 6 && blueNumber ==0) {
            System.out.println("中奖500万");
        }else if(redCount == 5 && blueNumber ==1) {
            System.out.println("中奖3000");
        }else if((redCount == 5 && blueNumber ==0) || (redCount == 4 && blueNumber ==1) ) {
            System.out.println("中奖200");
        }else if((redCount == 4 && blueNumber ==0) || (redCount == 3 && blueNumber ==1) ) {
            System.out.println("中奖10");
        }else if((redCount == 2 && blueNumber ==1) || (redCount == 1 && blueNumber ==1) || (redCount == 0 && blueNumber ==1) ) {
            System.out.println("中奖5");
        } else {
            System.out.println("谢谢参与");
        }
    }
    public static int[] userInput() {
        // 1. 创建数组用于添加用户购买的彩票号码
        // 6个红球 1个蓝球 数组长度7
        int[] arr =  new int[7];
        // 2. 键盘录入
        Scanner sc = new Scanner(System.in);
        // 3. 让用户输入红球号码
        for (int i = 0; i < 6;) {
            System.out.println("请输入第" + (i + 1) + "个红球号码");
            int redNumebr = sc.nextInt();
            // redNumber在1-33  唯一不重复
            if(redNumebr >=1 && redNumebr <=33) {
                if(!contain(arr,redNumebr)) {
                    arr[i] = redNumebr;
                    i++;
                } else {
                    System.out.println("当前号码已经存在,请重新输入");
                }
            } else {
                System.out.println("红球号码超出范围");
            }
        }
        // 4. 让用户输入蓝球号码
        System.out.println("请输入蓝球号码");
        while (true) { // ctrl + alt + t 快速生成判断语句
            int blueNumber = sc.nextInt();
            if(blueNumber >=1 && blueNumber <=16) {
                arr[arr.length -1] = blueNumber;
                break;
            } else {
                System.out.println("当前蓝球号码超出范围");
            }
        }
        return arr;
    }
    public static int[] createNumber() {
        //1. 创建数组用于添加中奖号码
        // 6个红球 1个蓝球 数组长度为7
        int[] arr = new int[7];
        
        // 2. 随机生成号码并添加到数组当中
        //红球:不能重复的
        //蓝球:可以和红球号码重复

        // 生成红球号码并添加到数组当中
        Random r= new Random();
        for (int i = 0; i < 6;) {
         int redNumber = r.nextInt(33) + 1; // 这里+1是为了防止出现 0
         boolean flag = contain(arr,redNumber);
         if(!flag) {
             arr[i] = redNumber;
             i++;
         }
        }
       int blueNumber = r.nextInt(16) + 1;
        arr[arr.length - 1] = blueNumber; // 把蓝球的值赋值到最后一个是因为蓝球是最后一位
        return  arr;
    }
    // 用于判断数字在数组中是否重复
    public static boolean contain(int[] arr,int number) {
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == number) {
                return true;
            }
        }
        return  false;
    }
}
验证码:
package specialExercise;

import java.util.Random;

public class validateCode {
    public static void main(String[] args) {
        /*
        * 开发验证码
        * 验证码格式:
        * 长度为5
        * 前四位是大写字母或者小写字母
        * 最后一位是数字
        * */
        // 1. 大写字母和小写字母都放在数组当中
        char[] chs = new char [52];
        for (int i = 0; i < chs.length; i++) {
            if(i <=25) {
                chs[i] = (char) (97 +i);
            } else {
                // 添加大写字母
                chs[i] = (char) (65 + i - 26);
            }
        }
        //定义一个字符串类型的变量,用来记录最终的结果
        String result = "";
        // 2. 随机四次
        Random r = new Random();
        for (int i = 0; i < 4; i++) {
            int randomIndex = r.nextInt(chs.length);
            result = result + chs[randomIndex];
        }
        //3. 随机抽取一个数字0-9
        int number = r.nextInt(10);
        result = result +number;
        System.out.print(result);
    }
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值