Java创建简单订房管理程序(附详细代码)

这篇博客介绍了如何使用Java编程创建一个简单的订房管理程序。程序包括订房、退房、查询和退出四大功能,模拟了三层不同类型的房间,每层10间。通过初始化房间状态和数量,然后利用循环和条件判断实现各功能操作,如订房成功减少剩余房间,退房则增加。此外,还提供了查询空房状态的功能。整个程序提供了一个基础的酒店房间管理逻辑,适合初学者实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何用java创建一个简单的订房管理程序呢

首先,我们需要明确功能,该订房管理程序有4个基本功能:
1. 订房 2. 退房 3. 查询 4. 退出
我们假设某酒店有3层客房,一层为单人间,二层为标准间,三层为豪华间,每层相应的房间数量都为10个,用户输入所对应的数字进行相应操作,如果不退出的话会一直循环,直到输入4才能退出。订房时不考虑每次订房数量问题。

其次,我们需要分析各层功能该如何编写。
程序首先要进行初始化,定义数组,记录房型,房间号,和房间状态
对三种房型分别进行定义初始化。
由于不退出的话会一直循环,所以要定义一个外层循环判断
订房功能:
若有空余房间,则可以根据选择预订需要的房间,每次成功订完后,相应剩余空闲房间数-1,直到房间订完提示没有空房
退房功能:
如果没有订房就退房,肯定不行,会提示尚未预订,若订过房后退房,则剩余空闲房间数+1,只考虑客户退房房型输入正确的情况
查询功能:
客户订房退房后,酒店可以查询空房状态,显示各房型有哪些空余闲房间
退出功能:
客户输入4后跳出循环,退出程序

最后,编写运行。

public static void main(String[] args) {
        // 功能:
        // 1、订房 2、退房 3、查询 4、退出
        System.out.println("================");
        System.out.println("=== 1、订房");
        System.out.println("=== 2、退房");
        System.out.println("=== 3、查询");
        System.out.println("=== 4、退出");
        System.out.println("================");

        // 初始化房间容量
        int sig = 10;
        int dou = 10;
        int nic = 10;

        // 初始剩余房间量
        int sigRemain = 10;
        int douRemain = 10;
        int nicRemain = 10;

        // 初始化单人间状态
        String[][] sigRoom = new String[10][3];
        for (int i = 0; i < sigRoom.length; i++) {
            for (int j = 0; j < sigRoom[i].length; j++) {
                sigRoom[i][0] = "单人间 ";
                sigRoom[i][1] = (i + 101) + " ";
                sigRoom[i][2] = "空闲";
            }
        }

        // 初始化标准间状态
        String[][] douRoom = new String[10][3];
        for (int i = 0; i < douRoom.length; i++) {
            for (int j = 0; j < douRoom[i].length; j++) {
                douRoom[i][0] = "标准间 ";
                douRoom[i][1] = (i + 201) + " ";
                douRoom[i][2] = "空闲";
            }
        }

        // 初始化豪华间状态
        String[][] nicRoom = new String[10][3];
        for (int i = 0; i < nicRoom.length; i++) {
            for (int j = 0; j < nicRoom[i].length; j++) {
                nicRoom[i][0] = "豪华间 ";
                nicRoom[i][1] = (i + 301) + " ";
                nicRoom[i][2] = "空闲";
            }
        }

        // 不考虑每次订房数量且不同房型和退房房型输入不正确的情况,且仅考虑输入情况为数字

        // 定义初始订房历史记录数为0,防止一直退房成功
        int sigHistory = 0;
        int douHistory = 0;
        int nicHistory = 0;
        while (true) {
            System.out.println("请选择你要进行的功能:");
            int num = new Scanner(System.in).nextInt();
            switch (num) {
                // 1、订房
                // 订房时从每层第一间开始订
                case 1:
                    System.out.println("======================");
                    System.out.println("请选择你要预定的房间类型:");
                    System.out.println("=== 1、单人间");
                    System.out.println("=== 2、标准间");
                    System.out.println("=== 3、豪华间");
                    System.out.println("======================");
                    // 定义输入判断1,若输入错误则需一直输入直到正确
                    boolean flag1 = true;
                    while (flag1) {
                        int select = new Scanner(System.in).nextInt();
                        if (select > 0 && select < 4) {
                            // 预订单人间
                            if (select == 1 && sigRemain > 0) {
                                // 预订一次剩余房间数-1
                                sigRemain--;
                                // 订过房则有订房记录,可以退房
                                sigHistory++;
                                System.out.println("恭喜您单人间预定成功!");
                            // 预订标准间
                            } else if (select == 2 && douRemain > 0) {
                                // 预订一次剩余房间数-1
                                douRemain--;
                                // 订过房则有订房记录,可以退房
                                douHistory++;
                                System.out.println("恭喜您标准间预定成功!");
                            // 预订豪华间
                            } else if (select == 3 && nicRemain > 0) {
                                // 预订一次剩余房间数-1
                                nicRemain--;
                                // 订过房则有订房记录,可以退房
                                nicHistory++;
                                System.out.println("恭喜您豪华间预定成功!");
                            // 如果没房则无法订房
                            } else {
                                System.out.println("不好意思,房间已经全部订完!");
                                break;
                            }
                            // 预定成功跳出循环
                            flag1 = false;
                        } else {
                            System.out.println("选择房间类型错误,请重新输入!");
                        }
                    }
                    break;

                // 2、退房
                case 2:

                    System.out.println("请选择你要退订的房间类型:");
                    // 定义输入判断2,若输入房间类型错误则需一直输入直到正确
                    boolean flag2 = true;
                    while (flag2) {
                        // 接收要退订的房间类型
                        int select2 = new Scanner(System.in).nextInt();
                        if (select2 > 0 && select2 < 4) {
                            switch (select2) {
                                case 1:
                                    // 若未订过单人间,报错退出
                                    if (sigHistory - 1 < 0) {
                                        System.out.println("您尚未预订单人间!请重新选择功能!");
                                        break;
                                    }
                                    sigRemain++;
                                    sigHistory--;
                                    System.out.println("恭喜您单人间退房成功!");
                                    break;
                                case 2:
                                    // 若未订过标准间,报错退出
                                    if (douHistory - 1 < 0) {
                                        System.out.println("您尚未预订标准间!请重新选择功能!");
                                        break;
                                    }
                                    douRemain++;
                                    douHistory--;
                                    System.out.println("恭喜您标准间退房成功!");
                                    break;
                                case 3:
                                    // 若未订过豪华间,报错退出
                                    if (nicHistory - 1 < 0) {
                                        System.out.println("您尚未预订豪华间!请重新选择功能!");
                                        break;
                                    }
                                    nicRemain++;
                                    nicHistory--;
                                    System.out.println("恭喜您豪华间退房成功!");
                                    break;
                            }
                            // 退订成功跳出循环
                            flag2 = false;
                        } else {
                            System.out.println("输入房间型错误,请重新输入");
                        }
                    }
                    break;

                // 3、查询
                case 3:
                    System.out.println("*************************");
                    System.out.println("空房状态:");
                    System.out.println("*************************");
                    // 输出空闲的单人间
                    for (int i = sig - sigRemain; i < sig; i++) {
                        for (int j = 0; j < sigRoom[i].length; j++) {
                            System.out.print(sigRoom[i][j] + " ");
                        }
                        System.out.println();
                    }
                    System.out.println("*************************");
                    // 输出空闲的标准间
                    for (int i = dou - douRemain; i < dou; i++) {
                        for (int j = 0; j < douRoom[i].length; j++) {
                            System.out.print(douRoom[i][j] + " ");
                        }
                        System.out.println();
                    }
                    System.out.println("*************************");
                    // 输出空闲的豪华间
                    for (int i = nic - nicRemain; i < nic; i++) {
                        for (int j = 0; j < nicRoom[i].length; j++) {
                            System.out.print(nicRoom[i][j] + " ");
                        }
                        System.out.println();
                    }
                    break;

                // 4、退出系统
                case 4:
                    System.exit(0);
                default:
                    System.out.println("输入错误,请重新输入!");
            }
        }
    }

有兴趣的小伙伴们可以尝试自己动手编写运行一下哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值