Java程序设计基础--------项目实战(实现淡旺季飞机票打折)

Java程序设计基础--------项目实战(实现淡旺季飞机票打折)

1.项目案例

某航空公司为吸引更多的顾客推出了优惠活动。原来的飞机票价为 60000 元,活动时,4~11 月旺季,头等舱 9 折,经济舱 8 折;1~3 月、12 月淡季,头等舱 5 折,经济舱 4 折,求机票的价格。

2.项目实现

2.1使用if-else语句实现淡旺季飞机票打折

下面使用 Java 的嵌套 if 语句根据淡旺季飞机票打折求出飞机票的价格,编写 Java 程序实现代码如下:

import java.util.Scanner;
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入出行的月份:");
        int month = sc.nextInt();
        System.out.println("选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱");
        int kind = sc.nextInt();
        double result = 60000; // 原始价格
        // 旺季的票价计算
        if (month <= 11 && month >= 4) {
            if (kind == 1) { // 旺季头等舱
                result = result * 0.9;
            } else if (kind == 2) { // 旺季经济舱
                result = result * 0.8;
            } else {
                System.out.println("选择种类有误,请重新输入!");
            }
        }
        // 淡季的票价计算
        else if ((month >= 1 && month <= 3) || month == 12) {
            if (kind == 1) { // 淡季头等舱
                result = result * 0.5;
            } else if (kind == 2) { // 淡季经济舱
                result = result * 0.4;
            } else {
                System.out.println("选择种类有误,请重新输入!");
            }
        } else {
            System.out.println("日期选择有误,请重新输入!");
        }
        System.out.println("您选择的机票价格为:" + result);
    }
}

上面代码将用户输入的月份保存到 month 变量,将机票种类保存到 kind 变量。接下来判断变量 month 和 kind 的范围。如果变量 month 在 4~11,kind 为 1 则执行 result=result*0.9,为 2 则执行 result=result*0.8;变量 month 在 1~3、12,kind 为 1 则执行 result=result*0.5,为 2 则执行 result=result*0.4。当用户输入有误时,根据错误情况给予不同的提示。

旺季经济舱出行的输出结果如下所示:

请输入出行的月份:
6
选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱
2
您选择的机票价格为:48000.0

淡季头等舱的输出结果如下所示:

请输入出行的月份:
2
选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱
1
您选择的机票价格为:30000.0

2.2使用switch语句实现淡旺季飞机票打折

上面是用嵌套 if 实现的淡旺季飞机票打折,下面我们用 switch 实现,代码如下所示:

import java.util.Scanner;
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入出行的月份:");
    int month = sc.nextInt();
    System.out.println("选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱");
    int kind = sc.nextInt();
    double result = 60000; // 原始价格
    switch (month) {
    // 旺季的票价计算
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
        switch (kind) {
        case 1: // 旺季头等舱
            result = result * 0.9;
            break;
        case 2:
            result = result * 0.8;
            break;
        default:
            System.out.println("选择种类有误,请重新输入!");
            break;
        }
        break;
    case 1:
    case 2:
    case 3:
    case 12:
        switch (kind) {
        case 1: // 旺季头等舱
            result = result * 0.5;
            break;
        case 2:
            result = result * 0.4;
            break;
        default:
            System.out.println("选择种类有误,请重新输入!");
            break;
        }
        break;
    default:
        System.out.println("日期选择有误,请重新输入!");
        break;
    }
    System.out.println("您选择的机票价格为:" + result);
}

运行结果如下所示:

请输入出行的月份:
6
选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱
2
您选择的机票价格为:48000.0

淡季头等舱的输出结果如下所示:

请输入出行的月份:
2
选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱
1
您选择的机票价格为:30000.0
设计一个飞机票管理系统,该系统尽可能模拟实际应用的票务系统,解决实际需求。至少包括如下功能: (1)航班基本信息管理包括但不限于以下信息的增填、删除、修改、查找:航班号,航空公司名称,航班起飞、降落、经停地点和时间,航班可售票数等; (2)航班动态管理:发布航班延误、取消等信息;当航班发生延误和取消等变更时,通知已经购买该航班机票的乘客,并推荐与该航班具有相同起飞降落地点且未延误的最近航班。 (3)票务管理:客户发出购票申请,如有余票则可以直接购票,如果该航班已经无票,提供预约抢票功能:一旦该航班发生退票,自动购买,如有多人预约,按照预约时间顺序按照先到先得原则分配;退票:退已购票。 (4)票务查询:查询某个两个城市间航班情况或某指定航班号的航班情况(如输入航班号,查询起、降时间,起飞、抵达城市,航班票价,所属航空公司,是否有余票等); (5)查询结果排序:票务查询到多个航班信息时,根据用户的选择,分别根据票价、飞行时间、余票数量等信息对相关航班进行排序; (6)航班推荐:输入两个城市名称,假设两城市间无直飞航班且存在多个转机航程,自行设计算法,推荐综合考虑如下因素的最优购票方案:价格、用时、余票数量。[测试数据]可以参考实际航空公司信息或者自行编制虚拟数据作为测试数据。要求城市数目不小于20,航线数目不小于300。 (7)每个组员选择功能(1)、(2)、(3)中的一个,独立设计完成,不同组员要求选择不同功能;若2人一组,可选其中一个功能合作完成。 (8)小组合作完成功能(4)、(5)、(6)中的至少1项。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值