学习面向对象前--Java基础练习题2

买飞机票

需求

机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。

按照如下规则计算机票价格:旺季(5-18月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。

逻辑

首先输入票价,舱位等级,月份,然后同时判断淡旺季和舱位级别,然后进行价格的计算,原价*折扣。

代码实现

复制代码
public class MaiFeiJiPiao {
    static Scanner sc=new Scanner(System.in);
    public static void main(String[] args) {
        double price = 0;
        System.out.println("请输入月份:");
        int a=sc.nextInt();
        System.out.println("请输入是经济舱还是头等舱:");
        String b=sc.next();
        System.out.println("请输入机票原价:");
        double c=sc.nextDouble();
        price = getPrice(price, a, b, c);
        System.out.println(a+"月份"+b+"机票价格为"+price+"元");
    }

    private static double getPrice(double price, int a, String b, double c) {
        if(a>=5&&a<=10&&b.equals("头等舱")){
            price=c*0.9;
        }else if (a>=5&&a<=10&&b.equals("经济舱")){
            price=c*0.85;
        }else if((a==11||a==12||(a>=1&&a<=4))&&b.equals("头等舱")){
            price=c*0.7;
        }else if((a==11||a==12||(a>=1&&a<=4))&&b.equals("经济舱")){
            price=c*0.65;
        }else{
            System.out.println("输入错误!!!");
        }
        return price;
    }
}

抽奖

需求

一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1088,10880}五个奖金

请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。

打印效果如下:(随机顺序,不一定是下面的顺序)

888元的奖金被抽出

588元的奖金被抽出

10000元的奖金被抽出

1000元的奖金被抽出

2元的奖金被抽出

逻辑

先设置一个数组,将所有奖品加入其中,然后再设置一个数组存放每次随机抽取的奖品,抽取奖品使用random方法随机0~第一个数组长度(左闭右开区间)之间的一个数,然后判断相应位置的奖品是否已经存入第二个数组,若已经存入则重新抽取,若没有存入则抽取后存入到第二个数组中,直到奖品全部抽完。

代码实现

复制代码
public class Choujiang {
    public static void main(String[] args) {
        int[] arr={2,588,888,1088,10880};
        int[] ints = new int[arr.length];
        for (int i=0;i<5;i++){
            boolean a=true;
            int num=(int)(Math.random()*5);
            while (a){
                for (int j=0;j<5;j++){
                    if (ints[j]==arr[num]){
                        num=(int)(Math.random()*5);
                        a=true;
                        break;
                    }else{
                        a=false;
                    }
                }
                if (a==false){
                    ints[i]=arr[num];
                }

            }
            System.out.println(ints[i]+"元奖金被抽出");
        }
    }
}
相关推荐
小七rrrrr5 分钟前
动态规划法 - 53. 最大子数组和
java·算法·动态规划
自由的疯13 分钟前
在 Java IDEA 中使用 DeepSeek 详解
java·后端·架构
自由的疯19 分钟前
Java 通过接口方式使用 DeepSeek 详解
java·后端·trae
敲代码中27 分钟前
Maven入门到精通
java·maven
常利兵28 分钟前
Kotlin作用域函数全解:run/with/apply/let/also与this/it的魔法对决
android·开发语言·kotlin
幼稚园的山代王41 分钟前
Kotlin-基础语法练习一
android·开发语言·kotlin
拂晓银砾1 小时前
Java数据结构-队列
java·数据结构
重生成为编程大王1 小时前
Java ConcurrentHashMap 深度解析
java·开发语言
阿华的代码王国1 小时前
【Android】适配器与外部事件的交互
android·xml·java·前端·后端·交互