java 方法案例

java 方法案例

案例一:

  • 案例:买飞机票
  • 需求:机票价格按照淡季旺季,头等舱和经济舱收费,输入机票原价,月份和头等仓或经济仓
  • 按照如下规则计算机票价格:旺季(5—10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6。5折
import java.util.Scanner;

public class BuyAirTicket {
    public static void main(String[] args) {
        //定义变量,分别存月份,舱位等级,机票原价,现价
        double currntPrice = 0; //机票现价

        //创建键盘扫描器对象
        Scanner sc = new Scanner(System.in);
        //系统提示信息,并获取键盘输入
        System.out.println("请输入你选择的舱位等级:");
        String  classLevel = sc.nextLine();   //舱位等级
        System.out.println("请输入你选择的月份:");
        int month = sc.nextInt();    //月份
        System.out.println("请输入你的机票原价:");
        double originalPrice = sc.nextDouble();   //机票现价

        //调用函数,计算机票价格
        currntPrice = calculateMoney(month, originalPrice, classLevel);


    /*    //利用switch语句判断收费规则
        switch(month){
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            case 10:
                if(classLevel.equals("经济舱")){
                    currntPrice = originalPrice*0.85;
                    break;
                }else{
                    currntPrice = originalPrice*0.9;
                    break;
                }
            case 11:
            case 12:
            case 1:
            case 2:
            case 3:
            case 4:
                if(classLevel.equals("经济舱")){
                    currntPrice = originalPrice*0.65;
                    break;
                }else{
                    currntPrice = originalPrice*0.7;
                    System.out.println(classLevel);
                    break;
                }
            default:
                System.out.println("你输入的信息有误!");
        }*/
        //输出机票现价
        System.out.println("你的机票现价为:" + currntPrice);
    }

    //定义方法计算现在的机票价格
    public static double calculateMoney(int month, double originalPrice, String classLevel){
        double currntPrice = 0;
        switch(month){
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            case 10:
                if(classLevel.equals("经济舱")){
                    currntPrice = originalPrice*0.85;
                    break;
                }else if(classLevel.equals("头等舱")){
                    currntPrice = originalPrice*0.9;
                    break;
                }else{
                    System.out.println("你输入信息有误");
                    return -1;
                }
            case 11:
            case 12:
            case 1:
            case 2:
            case 3:
            case 4:
                if(classLevel.equals("经济舱")){
                    currntPrice = originalPrice*0.65;
                    break;
                }else if(classLevel.equals("头等舱")){
                    currntPrice = originalPrice*0.7;
                    System.out.println(classLevel);
                    break;
                }else{
                    System.out.println("你输入信息有误");
                    return -1;
                }
            default:
                System.out.println("你输入的信息有误!");
        }
        return currntPrice;
    }
}

案例二

  • 寻找1-100之间的素数,并且,统计素数的总数
public class IsPrime {
    public static void main(String[] args) {
        //调用方法判断素数
        int count = isPrime();
        //输出素数的个数
        System.out.println("素数的个数为:" + count);

    }

    //定义方法,查找1-100之间素数,并统计
    public static int isPrime(){
        //定义变量存储素数的个数
        int count = 0;
        boolean flag = true;
        for(int i=1; i<=100; i++){
            for(int j=2; j<=i/2; j++){
                if(i%j == 0){
                    flag = false;
                    break;
                }
                flag = true;
            }
            if(flag){
                System.out.print(i + " ");
                count++;
            }
        }
        return count;
    }

}

案例三:

  • 案例:开发验证码
  • 需求:定义方法实现随机产生一个5位的验证码,每位可能是数字,大写字母
  • 小写字母。
import java.util.Random;

/*
* 案例:开发验证码
* 需求:定义方法实现随机产生一个5位的验证码,每位可能是数字,大写字母
* 小写字母。
* */
public class Test3 {
    public static void main(String[] args) {
        //调用方法产生随机验证码
        String verification = verificationCode();
        //输出随机验证码
        System.out.println("本次的验证码为:" + verification);

    }

    //定义方法生成验证码
    public static String verificationCode(){
        //定义变量存储产生的验证码
        String verfication = "";
        //创建随机数对象
        Random r = new Random();
        //定义变量存储产生的随机数,用以选择数字,大写字母,还是小写字母
        int num;
        //利用for循环,产生5次随机数
        for(int i=0; i<5; i++){
            //产生随机数,用以选择产生的字符类型
            num = r.nextInt(3) + 1;
            switch(num){
                case 1:
                    verfication = verfication + r.nextInt(10);  //产生一个数字
                    break;
                case 2:
                    verfication = verfication + (char) (r.nextInt(26)+65); //产生一个大写字符
                    break;
                case 3:
                    verfication = verfication + (char)(r.nextInt(26)+97);   //产生一个小写字符
                    break;

            }
        }
        return verfication;
    }
}

案例四:

*案例:数组复制

public class CopyArray {
    public static void main(String[] args) {
        //定义两个同长度的数组
        int[] arr1 = new int[]{1, 23, 324, 324,};
        int[] arr2 = new int[arr1.length];

        //调用方法,将一个数组复制给另一个数组
        copy(arr1, arr2);

        //输出arr2的元素
        System.out.print("arr2:" + "[");
        for (int i = 0; i < arr2.length; i++) {
            System.out.print((i==arr2.length-1)? arr2[i] :arr2[i] + ",");
        }
        System.out.print("]");

    }

    /**
     * 将arr1的元素复制到arr2
     * */
    public static void copy(int[] arr1, int[] arr2){
        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
    }
}

案例五:

  • 案例:数字加密
  • 需求:某系统的数字密码,比如:1983,采用加密方式传输,规则如下:先得到每一位数
  • ,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新的数字
import java.util.Scanner;

/**
 * 案例:数字加密
 * 需求:某系统的数字密码,比如:1983,采用加密方式传输,规则如下:先得到每一位数
 * ,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新的数字
 * */

public class Encryption {
    public static void main(String[] args) {
        //创建键盘扫描器对象
        Scanner sc = new Scanner(System.in);
        //给出系统提示:用户输入密码长度
        System.out.println("请输入你的密码长度:");
        //定义变量存储密码长度
        int num = sc.nextInt();
        //定义数组,存储用户输入的密码
        int[] code = new int[num];
        //输入密码
        inputArray(code);
        //加密密码
        codeEncryption(code);
       //输出加密后的密码
        printArray(code);

    }


    /**
     * 该方法用以对数字加密
     * */

    public static void codeEncryption(int[] array){

        //对密码的每一位数加5,再对10求余
        for (int i = 0; i < array.length; i++) {
            array[i] += 5;
            array[i] %= 10;
        }

        //反转数组
        reverse(array);
    }

    /**
     * 该方法用以数组输入
     * */

    public static void inputArray(int[] array){
        //创建键盘扫描器对象
        Scanner sc = new Scanner(System.in);

        //利用for循环,实现数组的输入
        for (int i = 0; i < array.length; i++) {
            //输出键盘输入提示
            System.out.println("请输入密码的第" + (i+1) + "个元素");
            array[i] = sc.nextInt();
        }
    }

    /**
     * 该方法用于实现数组的反转
     * */

    public static void reverse(int[] array){
        int start = 0;
        int end = array.length-1;
        int temp;  //用以存储临时数组元素

        //数组反转函数主体
        for(;start<end; start++, end--){
            temp = array[end];
            array[end] = array[start];
            array[start] = temp;
        }

    }

    /**
     * 该函数用于实现数组的遍历输出,实现密码的输出
     * */

    public static void printArray(int[] array){
        System.out.println("加密后的密码为:");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]);
        }
    }
}

案例六:双色球系统

  • 案例:模拟双色球系统
  • 需求:随机生成一组中奖号码
  • 投注号码由6个红色球号码和一个蓝色球号码组成(不可重复),
  • 红色球号码从1-33中选择;
  • 蓝色球号码从1-16中选择
//完整代码
import java.util.Random;
import java.util.Scanner;

/**
 * 案例:模拟双色球系统
 * 需求:随机生成一组中奖号码
 * 投注号码由6个红色球号码和一个蓝色球号码组成(不可重复),
 * 红色球号码从1-33中选择;
 * 蓝色球号码从1-16中选择
 * */

public class Test4 {
    public static void main(String[] args) {
        int[] luckNumber = creatLuckNUmber();
        int[] userNumber = userInputNumber();
        judge(luckNumber, userNumber);

    }

    /**
     * 该方法用于随机生成一组中将号码并返回
     * */
    public static int[] creatLuckNUmber(){
        //创建数组存储幸运号码
        int[] luckNumber = new int[7];
        //创建随机数对象,用以产生幸运号码
        Random r = new Random();
        //创建变量,存储每次产生的随机数
        int luck;

        //利用循环,产生红球号码
        for (int i = 0; i < luckNumber.length-1; i++) {
            luck = r.nextInt(33)+1;
            //判断红球号码是否重复,前6个为红球号码
            for (int j = 0; j < luckNumber.length-1; j++) {
                if(luck==luckNumber[i]){
                    break;
                }else{
                    luckNumber[i] = luck;
                }
            }
        }

        //随机产生蓝球号码
        luckNumber[6] = r.nextInt(16)+1;


        return luckNumber;
    }


    /**
     * 该方法用于实现用户选购号码
     * */

    public static int[] userInputNumber(){
        //定义数组存储,用户输入的号码
        int[] userNumber = new int[7];
        //创建键盘扫描器对象
        Scanner sc = new Scanner(System.in);

        //用户输入选择的红球号码
        for (int i = 0; i < userNumber.length-1; i++) {
            System.out.println("请输入你要选择的第" + (i+1) + "个红球号码");
            userNumber[i] = sc.nextInt();
        }
        //用户输入选择的蓝球号码
        System.out.println("请输入你要选择的篮球号码:");
        userNumber[6] = sc.nextInt();

        //输出用户选择的号码
        System.out.println("你本次选择的号码为:");
        System.out.print("[");
        for (int i = 0; i < userNumber.length; i++) {
            System.out.print(i==userNumber.length-1?userNumber[i]:userNumber[i]+",");
        }
        System.out.println("]");


        return userNumber;
    }

    /**
     * 该方法用于判断用户中奖情况
     * */

    /*
     * 奖金规则:
     * 一等奖:6+1:1000万
     * 二等奖:6+0:500万
     * 三等奖:5+1:300元
     * 四等奖:5+0;4+1:200元
     * 五等奖:4+0;3+1;2+1:10元
     * 六等奖:1+1:5元
     * */

    public static void judge(int[] luckNumber, int[] userNumber){
        //定义变量存储红球号码相匹配的个数
        int redCount = 0;
        //定义变量存储蓝球号码相匹配的个数
        int blueCount = 0;

        //利用for循环判断红球匹配的个数
        for (int i = 0; i < luckNumber.length-1; i++) {
            if(luckNumber[i]==userNumber[i]){
                redCount++;
            }
        }
        //判断蓝球号码是否相匹配
        if(luckNumber[6]==userNumber[6]){
            blueCount++;
        }

        //输出本次产生的中将号码
        System.out.println("本次产生的中将号码为");
        System.out.print("[");
        for (int i = 0; i < luckNumber.length; i++) {
            System.out.print(i==luckNumber.length-1?luckNumber[i]:luckNumber[i]+",");
        }
        System.out.println("]");

        //判断中奖级别
        if(redCount==6&&blueCount==1){
            System.out.println("恭喜你获得一等奖,奖金1000万");
        }else if(redCount==6&&blueCount==0){
            System.out.println("恭喜你获得二等奖,奖金500万");
        }else if(redCount==5&&blueCount==1){
            System.out.println("恭喜你获得三等奖,奖金300元");
        }else if((redCount==5&&blueCount==0)||(redCount==4&&blueCount==1)){
            System.out.println("恭喜你获得四等奖,奖金200元");
        }else if((redCount==4&&blueCount==0)||(redCount==3&&blueCount==1)||(redCount==2&&blueCount==1)){
            System.out.println("恭喜你获得五等奖,奖金10元");
        }else if(redCount==1&&blueCount==1){
            System.out.println("恭喜你获得六等奖,奖金5元");
        }else{
            System.out.println("很遗憾你本次未中奖,相信下一次幸运会光临你");
        }

    }

}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值