学习面向对象前--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]+"元奖金被抽出");
        }
    }
}
相关推荐
程序猿编码17 小时前
纯C++轻量计算机视觉推理引擎:基于GGML的端侧CV模型部署技术全解析
开发语言·c++·计算机视觉·大模型·transformer
SEO_juper17 小时前
外贸多语言站最隐蔽的流量杀手:hreflang 错了,谷歌把德语页推给美国人(附审计脚本)
开发语言·前端·python·seo·独立站·谷歌优化
無a伟17 小时前
RabbitMq高级特性:TTL,死信队列,延迟队列
java·分布式·rabbitmq
geovindu17 小时前
CSharp: Strategy Pattern
开发语言·后端·c#·.net·.netcore·策略模式·行为模式
长谷深风11118 小时前
Agent 跑了 30 分钟宕机,如何从断点继续?
java·大数据·人工智能·ai·大模型·memory·aiagent
慧都小妮子18 小时前
DevExpress Java 文档处理 API 免费 CTP:PDF、PowerPoint、条码与跨平台部署
java·pdf·powerpoint·devexpress·文档处理·条码生成
泡海椒18 小时前
告别反射低效:JQuick-Java ASM动态调用链性能优化实战
java·python·性能优化
Tairitsu_H18 小时前
[C++] C++11新增构造:列表初始化和std::initializer_list
开发语言·c++·c++11·构造
土司大王18 小时前
LeetCode 17 电话号码的字母组合:Java 回溯模板、多叉决策树与复杂度分析
java·leetcode·决策树
宣宣猪的小花园.18 小时前
【嵌入式】故障与降级:看门狗、保护机制和工程可靠性的底线
开发语言·人工智能·嵌入式硬件·机器学习