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

导读:本篇文章讲解 Java创建简单订房管理程序(附详细代码),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

如何用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("输入错误,请重新输入!");
            }
        }
    }

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83634.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!