java案例

发布时间 2024-01-10 01:00:37作者: xmz-x

一、买飞机票

public class Main {
    public static void main(String[] args) {
        double price = calculate(1000,11,"经济舱");
        System.out.println("优惠价是:"+price);
    }

    public static double calculate(double price, int month , String type) {
        // TODO Auto-generated method stub
        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;
    }
}

 

二、开发验证码

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        System.out.print(creatCode(5));
    }
    public static String creatCode(int n) {
        Random r = new Random() ;
        String code = "";
        for (int i = 1; i <= n; i++) {
            //思路:随机一个0 1 2之间的数字出来,0代表随机一个数字字符,1代表随机一个大写字母,2代表随机一个小写字母
            int type = r.nextInt(3);// 0 1 2
            switch (type) {
            case 0:
                //随机一个数字字符
                code += r.nextInt(10);// 0 - 9
                break;
            case 1:
                //随机一个大写字母 A:65  Z:65+25  (0-25)+65
                char ch1 = (char)(r.nextInt(26)+65);
                code += ch1;
                break;
            case 2:
                //随机一个小写字母 a:97  z:97+25  (0-25)+97
                char ch2 = (char)(r.nextInt(26)+97);
                code += ch2;
                break;
            }
        }
        return code;
    }
}

 

三、评委打分

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.println("当前选手的得分是:"+getAverage(6));
    }
    public static double getAverage(int number) {
        int[] scores = new int[number];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            System.out.println("请输入第"+(i+1)+"个评委的分数:");
            int score = sc.nextInt();
            scores[i] = score;
        }
        int sum = 0; //总分
        int max = scores[0]; //最高分
        int min = scores[0]; //最低分
        for (int i = 0; i < scores.length; i++) {
            int score = scores[i];
            sum += score;
            //求最大值
            if(score > max){
                max = score;
            }
            //求最小值
            if (score < min) {
                min = score;
            }
        }
        return 1.0 * (sum - max - min) / (number - 2);
        
    }
}

 

 

四、数字加密

public class Main {
    public static void main(String[] args) {
        System.out.println("加密后的结果是:"+encrypt(1983));
    }
    public static String encrypt(int number) {
        // number = 1983
        // 1.把这个密码拆分成一个一个的数字,才可以对其进行加密
        int[] numbers = split(number);
        // 2.遍历这个数组中的每个数字,对其进行加密处理
        for (int i = 0; i < numbers.length; i++) {
            numbers[i] = (numbers[i] + 5) % 10;
        }
        // 3.对数组进行反转,把数组进行反转的操作交给一个方法的方法来完成
        reverse(numbers);
        // 4.把这些密码的数组拼接起来作为加密后的结果返回即可
        String data = "";
        for (int i = 0; i < numbers.length; i++) {
            data += numbers[i];
        }
        return data;
    }
    public static void reverse(int[] numbers) {
        for (int i = 0, j = numbers.length - 1; i < j; i++,j--) {
            int t = numbers[i];
            numbers[i] = numbers[j];
            numbers[j] = t;
        }
    }
    public static int[] split(int number) {
        int[] numbers = new int[4];
        numbers[0] = number/1000;
        numbers[1] = (number / 100) % 10;
        numbers[2] = (number / 10) % 10;
        numbers[3] = number % 10;
        return numbers;
    }
}

 

 

五、数组拷贝

 

public class Main {
    public static void main(String[] args) {
        int[] arr = {11, 22, 38};
        int[] arr1 = copy(arr);
        printArray(arr1);
        
    }

    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i == arr.length - 1 ? arr[i] : arr[i]+",");
        }
        System.out.print("]");
    }

    public static int[] copy(int[] arr) {
        int[] arr2 = new int[arr.length];
        for (int i = 0; i < arr2.length; i++) {
            arr2[i] = arr[i];
        }
        return arr2;
    }
}

 

 

六、抢红包

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

public class Main {
    public static void main(String[] args) {
        int moneys[] = {9,666,188,520,88};
        start(moneys);
    }
    private static void start(int[] moneys) {
        Scanner sc = new Scanner(System.in);
        Random r = new Random();
        //输入任意人员进行抽奖,人员人数等于红包个数
        for (int i = 0; i < moneys.length; i++) {
            System.out.println("请您输入任意人员进行抽奖:");
            sc.next();
            //为当前人员找一个随机红包出来
            while (true) {
                int index = r.nextInt(moneys.length);
                int money = moneys[index];
                //判断这个红包是否为0
                if(money != 0){
                    System.out.println("恭喜你,你抽中了红包。"+money);
                    moneys[index] = 0;
                    break;
                }
            }
        }
        System.out.println("本次活动已结束!");
    }
}

 

 

七、找素数

public class Main {
    public static void main(String[] args) {
        System.out.println("当前素数的个数是:"+search(101, 200));
    }
    public static int search(int start, int end) {
        int count = 0;
        //start: 101   end: 200
        //1.定义一个for循环遍历101-200之间的每个数据
        for (int i = start; i <= end; i++) {
            boolean flag = true;
            //2.判断当前i是否为素数
            for(int j = 2; j <= i/2; j++){
                if(i % j == 0){
                    flag = false;
                    break;
                }
            }
            if(flag){
                System.out.println(i);
                count++;
            }
        }
        return count;
    }
}
public class Main {
    public static void main(String[] args) {
        int count = 0;
        OUT: //外部循环指定标签
        for (int i = 101; i <= 200; i++) {
            for (int j = 2; j < i/2; j++) {
                if(i % j == 0){
                    continue OUT;//结束外部循环的当次执行
                }
            }
            count++;
            System.out.println(i);
        }
        System.out.println("素数的个数是:"+count);
    }
}
public class Main {
    public static void main(String[] args) {
        for (int i = 101; i <= 200; i++) {
            if(check(i)){
                System.out.println(i);
            }
        }
        
    }
    public static boolean check(int data){
        int count = 0;
        for (int i = 2; i < data/2; i++) {
            if(data % i == 0){
                return false;//不是素数
            }
        }
        return true;//是素数
    }
}

 

八、打印乘法表

public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j+"x"+i+"="+(j*i)+"\t");
            }
            System.out.println();
        }
    }
}

 

九、打印三角形

/*
    * 
   *** 
  *****
 *******
 
 本质,先找规律再写程序
 行(i)          先打印空格(n-i)      再打印*      换行
  1                3                 1
  2                2                 3
  3                1                 5
  4                0                 7
 */
public class Main {
    public static void main(String[] args) {
        //1.先定义一个循环控制打印多少行
        int n = 10;
        for (int i = 1; i <= n; i++) {
            //2.控制打印多少个空格
            for (int j = 1; j <= (n-i); j++) {
                System.out.print(" ");
            }
            //3.控制打印多少个星星
            for (int j = 1; j <= (2*i - 1); j++) {
                System.out.print(j % 2 == 0 ? " " : "*");
            }
            //换行
            System.out.println();
        }
    }
}

 

十、模拟双色球

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int[] userNumbers = userSelectNumbers();
        printArray(userNumbers);
    }
    //打印数组
    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i == arr.length-1 ? arr[i] : arr[i]+",");
        }
        System.out.print("]");
    }
    //1.设计一个方法,,用于让用户投注一组号码并返回(前6个号码为红球号码,最后1个为篮球号码)
    public static int[] userSelectNumbers() {
        //2.创建一个整型数组,用于存储用户投注的7个还没(前6个号码为红球号码,最后1个为篮球号码)
        int[] numbers = new int[7];
        Scanner sc = new Scanner(System.in);
        //3.遍历前6个位置,让用户依次投注6个红球号码,存入
        for (int i = 0; i < numbers.length-1; i++) {
            while (true) {
                //4.开始让用户为当前位置投注一个红球号码(1-33之间,不能重复)
                System.out.println("请您输入第"+(i+1)+"个红球号码(1-33之间,不能重复):");
                int number = sc.nextInt();
                //5.判断用户输入的红球号码是否再1-33之间
                if(number < 1 || number > 33){
                    System.out.println("对不起,您输入的红球号码不在1-33之间,请确认!");
                }else {
                    //号码是在1-33之间,接着还要判断号码是否重复,不重复才可以
                    if(exist(numbers,number)){
                        //number 当前这个红球号码是重复了
                        System.out.println("对不起,您输入的红球号码前面已经选过,已重复,请确认!");
                    }else {
                        //number 这个号码没有重复,可以使用
                        numbers[i] = number;
                        break;
                    }
                }
            }
        }
        while (true) {
            System.out.println("请您输入最后1个蓝球号码(1-16):");
            int number = sc.nextInt();
            if(number < 1 || number > 16){
                System.out.println("对不起,您输入的蓝球号码范围不对!");
            }else {
                numbers[6] = number;
                break;
            }
        }
        return numbers;
    }
    public static boolean exist(int[] numbers, int number) {
        for (int i = 0; i < numbers.length; i++) {
            if(numbers[i] == 0){
                break;
            }
            if(numbers[i] == number){
                return true;
            }
        }
        return false;
    }
}