学习面向对象前--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]+"元奖金被抽出");
        }
    }
}
相关推荐
励志要当大牛的小白菜23 分钟前
ART配对软件使用
开发语言·c++·qt·算法
武子康1 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
爱装代码的小瓶子3 小时前
数据结构之队列(C语言)
c语言·开发语言·数据结构
YuTaoShao4 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
源码_V_saaskw4 小时前
JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
java·微信小程序·小程序·uni-app·音视频·交友
Maybe_ch4 小时前
.NET-键控服务依赖注入
开发语言·c#·.net
超浪的晨4 小时前
Java UDP 通信详解:从基础到实战,彻底掌握无连接网络编程
java·开发语言·后端·学习·个人开发
终焉暴龙王4 小时前
CTFHub web进阶 php Bypass disable_function通关攻略
开发语言·安全·web安全·php
双力臂4045 小时前
Spring Boot 单元测试进阶:JUnit5 + Mock测试与切片测试实战及覆盖率报告生成
java·spring boot·后端·单元测试
Edingbrugh.南空5 小时前
Aerospike与Redis深度对比:从架构到性能的全方位解析
java·开发语言·spring