学习面向对象前--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]+"元奖金被抽出");
        }
    }
}
相关推荐
古希腊掌管学习的神12 分钟前
[LeetCode-Python版]相向双指针——611. 有效三角形的个数
开发语言·python·leetcode
赵钰老师13 分钟前
【R语言遥感技术】“R+遥感”的水环境综合评价方法
开发语言·数据分析·r语言
V+zmm1013419 分钟前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
就爱学编程21 分钟前
重生之我在异世界学编程之C语言小项目:通讯录
c语言·开发语言·数据结构·算法
Oneforlove_twoforjob44 分钟前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
emoji1111111 小时前
前端对页面数据进行缓存
开发语言·前端·javascript
xmh-sxh-13141 小时前
常用的缓存技术都有哪些
java
每天都要学信号1 小时前
Python(第一天)
开发语言·python
TENET信条1 小时前
day53 第十一章:图论part04
开发语言·c#·图论
生信圆桌1 小时前
【生信圆桌x教程系列】如何安装 seurat V5版本R包,最详细安装手册
开发语言·r语言