学习面向对象前--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]+"元奖金被抽出");
        }
    }
}
相关推荐
焰火19993 分钟前
[Java]基于Redis的分布式环境下的自增编号生成器
java·后端
ZhengEnCi17 分钟前
JPA-SQL 语句使用完全指南-自动生成vs手动编写的智能选择策略
java·spring boot·sql
毕设源码-钟学长28 分钟前
【开题答辩全过程】以 菜谱分享平台为例,包含答辩的问题和答案
java·eclipse
患得患失94935 分钟前
【Turborepo】【Next】 Turborepo + Next.js 前后端精简搭建笔记(带官网)
开发语言·javascript·笔记
拓端研究室35 分钟前
视频讲解|Python遗传算法GA在车辆路径规划VRP数据优化中的应用
开发语言·人工智能·r语言
可DRAK鸦|・ω・`)37 分钟前
docker后端jar包本地构建镜像
java·docker·容器·jar
代码不停1 小时前
JavaEE初级——Thread多线程
java·jvm·java-ee
xxxxxxllllllshi1 小时前
Cookie、Session、JWT、SSO,网站与 APP 登录持久化与缓存
java·开发语言·jvm·数据结构·缓存·面试
AI+程序员在路上1 小时前
QT6中QToolBox功能与应用
开发语言·qt
郑重其事,鹏程万里1 小时前
commons-io
java