java基础案例:买飞机票、验证码

记录学习!!!

1.买飞机票

package com.itheima;

public class Test1 {
    public static void main(String[] args) {
    double  price = calculate(7, "经济舱", 1000.0);
        System.out.println(price);
    }

    public static double calculate(int month, String type, double price) {
        if (month >= 5 && month <= 10) {
            switch (type) {
                case "头等舱":
                    price *= 0.9;
                    break;
                case "经济舱":
                    price *= 0.85;
                    break;
            }
        } else {
            switch (type) {
                case "头等舱":
                    price *= 0.7;
                    break;
                case "经济舱":
                    price *= 0.65;
                    break;
            }

        }
        return price;
    }
}

  2.验证码

package com.itheima;

import java.util.Random;

public class Test2 {
    public static void main(String[] args) {
        System.out.println(CreatCode(5));
        System.out.println(CreatCode(7));
        System.out.println(CreatCode(6));
        System.out.println(CreatCode(4));
    }
    //验证码
    public static String CreatCode(int n){
        Random r = new Random();
        String code = "";
        for (int i = 0; i < n; i++) {
            //n代表验证码位数
            //随机数1代表数字,0代表大写字母,2代表小写字母
            int type = r.nextInt(3);
            switch(type){
                case 1:
                    code += r.nextInt(10);
                    break;
                case 0://A:65
                    char  ch1 =  (char)(r.nextInt(26)+65);
                    code += ch1;
                    break;
                case 2://a:97
                    char  ch2 =  (char)(r.nextInt(26)+65);
                    code += ch2;
                    break;
            }
        }
        return code;
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
处理滑块验证码Java代码通常需要使用图像处理库,例如OpenCV或者JavaCV等库。 以下是使用JavaCV处理滑块验证码的示例代码: ```java import org.bytedeco.javacpp.opencv_core; import org.bytedeco.javacpp.opencv_imgproc; import org.bytedeco.javacv.*; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class SliderCaptchaSolver { public static void main(String[] args) throws Exception { // 加载验证码图片 BufferedImage bgImage = ImageIO.read(new File("slider_captcha.jpg")); // 将验证码图片转换为Mat格式 opencv_core.Mat bgMat = Java2DFrameUtils.toMat(bgImage); // 获取滑块位置 int sliderPosition = getSliderPosition(bgMat); // 模拟拖动滑块 simulateSliderDrag(sliderPosition); } private static int getSliderPosition(opencv_core.Mat bgMat) { // 调整图片大小 opencv_core.Mat resizedMat = new opencv_core.Mat(); opencv_imgproc.resize(bgMat, resizedMat, new opencv_core.Size(320, 180)); // 转换为灰度图像 opencv_core.Mat grayMat = new opencv_core.Mat(); opencv_imgproc.cvtColor(resizedMat, grayMat, opencv_imgproc.COLOR_BGR2GRAY); // 二值化图像 opencv_core.Mat binaryMat = new opencv_core.Mat(); opencv_imgproc.threshold(grayMat, binaryMat, 180, 255, opencv_imgproc.THRESH_BINARY); // 查找轮廓 opencv_core.MatVector contours = new opencv_core.MatVector(); opencv_core.Mat hierarchy = new opencv_core.Mat(); opencv_imgproc.findContours(binaryMat, contours, hierarchy, opencv_imgproc.RETR_EXTERNAL, opencv_imgproc.CHAIN_APPROX_SIMPLE); // 获取滑块位置 int sliderPosition = 0; for (int i = 0; i < contours.size(); i++) { opencv_core.Mat contour = contours.get(i); double area = opencv_imgproc.contourArea(contour); if (area < 100) { // 滑块通常比较小,面积小于100的轮廓可能是滑块 opencv_core.Rect rect = opencv_imgproc.boundingRect(contour); sliderPosition = rect.x + rect.width / 2; break; } } return sliderPosition; } private static void simulateSliderDrag(int sliderPosition) { // TODO: 模拟拖动滑块的操作 } } ``` 此代码的主要思路是: 1. 加载验证码图片并将其转换为Mat格式。 2. 对图片进行预处理,包括调整大小、转换为灰度图像、二值化和查找轮廓。 3. 在轮廓中找到滑块的位置。 4. 模拟拖动滑块的操作。 需要注意的是,最后一步模拟拖动滑块的操作需要根据具体的验证码网站进行调整,这里只是一个示例。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值