java案例

一、买飞机票

需求

机票价格根据淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
机票最终价格的计算方式如下:
旺季(5-10月)头等舱9折,经济舱8.5折;
淡季(11月到来年4月)头等舱7折,经济舱6.5折。
①在main函数中执行

import java.util.Scanner;

//买飞机票
public class Demo1 {
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入月份(1-12)");
        System.out.println("请输入价格");
        System.out.println("请输入舱位");
        int month=scan.nextInt();
        double price=scan.nextDouble();
        String cangwei=scan.next();
        if(month>=5&&month<=10){
            if(cangwei=="头等舱"){
                price*=0.9;
            }else{
                price*=0.85;
            }
        }else{
            if(cangwei=="经济舱"){
                price*=0.7;
            }else{
                price*=0.65;
            }
        }
        System.out.println("最终的价格是:"+price);

    }
}

②使用方法来编写:

import java.util.Scanner;
public class Demo2 {
    public static void main(String[] args) {
        //目标:完成飞机票的价格计算
        //1.让用户输入机票原价,月份,舱位类型
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入机票原价:");
        double money=sc.nextDouble();

        System.out.println("请输入月份(1-12):");
        int month=sc.nextInt();

        System.out.println("请输入舱位类型:");
        String type=sc.next();

        //4.调用方法,统计结果
        System.out.println("机票优惠后的价格是"+calc(money,month,type));
    }
    //2.定义方法类型,统计优惠后的价格返回
    public static double calc(double money,int month,String type){
        //3.判断用户选择的信息情况
        if(month>=5&&month<=10){
            //旺季
            switch (type){
                case "头等舱":
                    money*=0.9;
                    break;
                case "经济舱":
                    money*=0.85;
                    break;
                default:
                    System.out.println("有误");
                    return -1;
            }
        }else if((month>10&&month<=12)||(month>=1&&month<=4)){
            //淡季
            switch (type){
                case "头等舱":
                    money*=0.7;
                    break;
                case "经济舱":
                    money*=0.65;
                    break;
                default:
                    System.out.println("有误");
                    return -1;
            }
        }else{
            System.out.println("输入的有问题");
            return -1;
        }
        return money;
    }
}

二、找素数

public class Demo3 {
    public static void main(String[] args) {
        //定义一个循环,找到101-200之间的所有数
        for(int i=101;i<=200;i++){
            //信号位:标记
            boolean flag=true;//一开始认为当前数据是素数
            //2.判断当前遍历到是数据是否是素数
            for(int j=2;j<=i/2;j++){
                if(i%j==0){
                    flag=false;
                    break;
                }
            }
            //3.根据判断结果选择是否输出这个数据
            if(flag){
                System.out.println(i+"\t");
            }
        }
    }
}

三、开发验证码(随机产生字符和数字)

需求

定义一个方法实现随机产生一个五位的验证码,可能是数字,大写字母,小写字母。

分析

①定义一个方法,生成验证码返回:方法参数是位数、方法的返回值类型是String。
②在方法体内部使用for循环生成指定位数的随机字符,并连接起来。
③把连接好的随机字符作为一组验证码返回。

import java.util.Random;
public class Demo4 {
    public static void main(String[] args) {
        //调用获取验证码的方法得到一个随机的验证码
        String code=creatCode(5);
        System.out.println("随机验证码"+code);
    }
        //定义一个方法返回一个随机验证码:需要返回值申明:String,申明形参:int n
        public static String creatCode(int n){
        String code="";
            Random r = new Random();
            //定义一个for循环,循环n次,依次生成随机字符
            for(int i=0;i<n;i++){
                //生成一个随机字符,英文大小写】数字
                int type=r.nextInt(3);
                switch (type){
                    case 0:
                        //大写字符(A 65~Z 65+25) (0-25)+65
                        char ch=(char)(r.nextInt(26)+65);
                        code+=ch;
                        break;
                    case 1:
                        //小写字符
                        char ch1=(char)(r.nextInt(26)+97);
                        code+=ch1;
                        break;
                    case 2:
                        //数字
                        code+=r.nextInt(10);
                        break;
                }
            }
        return code;
    }
}

四、数组元素的复制

需求

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

分析

需要动态初始化一个数组,长度与原数组一样。
遍历原数组的每个元素,依次赋值给新数组。
输出两个数组的内容。

public class Demo5 {
    public static void main(String[] args) {
        int[] arr1={11,22,33,44};
        int[] arr2=new int[arr1.length];
        copy(arr1,arr2);
        printArray(arr1);
        printArray(arr2);

    }
    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 void copy(int[] arr1,int[] arr2){
        for (int i = 0; i < arr1.length; i++) {
            arr2[i]=arr1[i];
        }
    }
}

五、评委打分案例

需求:

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

分析:

①把6个评委的分数录入到程序中去----->使用数组

int [ ] scores=new int [6];

②遍历数组中的每个数据,进行累加求和,并找出最高分和最低分。
③按照分数的计算规则算出平均分。

import java.util.Scanner;
public class Demo8 {
    public static void main(String[] args) {
        //定义一个动态初始化数组,用于后期录入6个评委的分数
        int[] scores=new int[6];
        //录入6个评委的分数
        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 max=scores[0];
        int min=scores[0];
        int sum=0;
        for (int i = 0; i < scores.length; i++) {
            if(scores[i]>max){
                max=scores[i];
            }
            if(scores[i]<min){
                min=scores[i];
            }
            //统计总分
            sum+=scores[i];
        }
        //统计平均分
        double result=(sum-max-min)*1.0/(scores.length-2);
        System.out.println("选手最终得分为:"+result);
    }
}

六、数字加密

需求

某系统的数字密码:比如1983,采用加密的方式进行传输,规则如下:先得到每位数,然后每位数都加上5,再对5求余,最后将所有数字反转,得到一串新数。
规则图解如下:
在这里插入图片描述

import java.util.Scanner;
public class Demo9 {
    public static void main(String[] args) {
        //需求:数字加密
        //定义一个数组存入需要加密的数据
        System.out.println("请输入需要加密的数字个数:");
        Scanner sc=new Scanner(System.in);
        int length=sc.nextInt();
        int[] arr=new int[length];
        //录入需要加密的数字
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请您输入加密的第"+(i+1)+"个数字");
            int number=sc.nextInt();
            arr[i]=number;
        }
        //打印数组看一下
        printArray(arr);
        //加密
        for (int i = 0; i < arr.length; i++) {
            arr[i]=(arr[i]+5)%10;
        }
        //对加密数据进行反转
        for(int i=0,j=arr.length-1;i<j;i++,j--){
            //直接交换两者的值
            int temp=arr[j];
            arr[j]=arr[i];
            arr[i]=temp;
        }
        printArray(arr);
    }
    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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的小琰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值