Java开发小项目--计算飞机票价

今天给大家分享一个Java小项目--计算飞机票价。

题目要求:票价计算分为商务舱和经济舱,月份分两个阶段,一个为5-10月;一个为1-4,11-12月,商务舱在5-10月折扣为9折,经济舱为85折;商务舱在另外一个月份折扣为7折,经济舱为65折,请根据不同的情况,计算出票价。

import java.util.Scanner;

public class Demo33 {
    public static void main(String[] args) {
        //键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入机票原价");
        int price = sc.nextInt();
        System.out.println("请输入当前月份");
        int month = sc.nextInt();
        System.out.println("请输入你的舱位 0 为经济舱 1 为商务舱");
        int seat = sc.nextInt();

首先,进行键盘录入,将题目所需的要求通过这个方式输入进去。

//通过多种if-elif语句体来进行判断和价格计算
        if(month >= 5 && month<= 10){
            if (seat == 0){
                price = (int)(price * 0.9);
            }else if(seat == 1){
                //由于打了折扣之后数据类型会发生改变,但最终的结果是要整数类型
                //这是需要运用强转
                price = (int)(price * 0.85);
            }else {
                System.out.println("没有这个舱位");
            }
        }else if ((month >=1 && month <=4) || (month >= 11 && month <= 12)){
            if (seat == 0){
                price = (int)(price * 0.7);
            }else if(seat == 1){
                price = (int)(price * 0.65);
            }else {
                System.out.println("没有这个舱位");
            }
        }else{
            System.out.println("没有这个月份");
        }
        System.out.println(price);
    }

之后,便用if-elif语句体进行嵌套,根据不同的条件去进行计算,最后打印结果。

但运用if-elif语句体会使代码过于复杂,且代码过多,不利于后期维护,我们可以运用第二个方法,就是定义一个方法,并通过调用去实现。

import java.util.Scanner;
/*
需求:按照不同的月份,舱位,以及折扣进行计算
舱位有商务舱和经济舱,月份分为两个阶段:1-4或11-12和5-10
 */

public class Demo3 {
    //按照提目要求去定义形参,注意一点,要始终牢记形参要与实参一一对应
    //所以定义形参时要注意先后顺序
    public static int getCount(int price ,int seat, double v0, double v1){
        //这里的结果需要返回去运用,所以默认的void要改为int
        //定义方法,定义四个所需的形参
        //运用if-elif语句来判断舱位
        if (seat == 0){
            //由于打了折扣之后数据类型会发生改变,但最终的结果是要整数类型
            //这是需要运用强转
            price = (int)(price * v0);
        }else if(seat == 1){
            price = (int)(price * v1);
        }else {
            System.out.println("没有这个舱位");
        }
        //return关键字是返回结果
        return price;
    }

如图所示,定义方法,定义形参,但要注意的是你所定义形参的位置,后面你输入实参时,位置要一一对应。得到的结果是整数类型,所以要用到强转。

 //同样运用if-elif语句体对月份进行判断
        if(month >= 5 && month<= 10){
            //这里计算价钱直接调用方法就好了,但要注意的是形参要与实参一一对应
           price = getCount(price,seat,0.9,0.85);
        }else if ((month >=1 && month <=4) || (month >= 11 && month <= 12)){
            price = getCount(price,seat,0.7,0.65);
        }else{
            System.out.println("没有这个月份");
        }
        System.out.println(price);

    }

之后,调用方法,按照题目所需带入折扣,并把结果赋值给price,打印既得答案。

第二种方法运用定义方法,调用方法的方式来实现,一方面降低了代码的冗余,另一方面也利于后期维护。如果有更好地方法,请各位小伙伴指教,仅供参考。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值