• 二维数组模拟实现酒店管理系统-java


    业务分析

    1、需要一个房间类,包含房间的属性,比如房间编号、房间类型、是否占用。

    2、需要一个旅馆类,旅馆有房间,提供的方法需要有 预订房间、打印房间信息、初始化房间、退房。

    3、测试类,测试预订房间。

    package javasimple;
    
    import java.util.Scanner;
    
    public class HotelTest {
        public static void main(String[] args) {
            Hotel h = new Hotel();
            h.print();
            while(true) {
                System.out.println("请输入房间编号:");
                Scanner s = new Scanner(System.in);
                String no = s.next();
                h.order(no);
                h.print();
            }
        }
    }
    /**
     * 旅馆类
     * @author haokui
     *
     */
    class Hotel {
        private Room [][]rooms;//旅馆有房间
        public Hotel(){
            rooms = new Room[5][10];
            //初始化旅馆时,展示房间
            for (int i = 0; i < rooms.length; i++) {
                for (int j = 0; j < rooms[i].length; j++) {
                    if (i == 0 || i== 1) {
                        //1、2层为单人间
                        rooms[i][j] = new Room((i+1)*100 + j + 1 + "","单人间",false);
                    }
                    if (i == 2 || i== 3) {
                        //3、4层为双人间
                        rooms[i][j] = new Room((i+1)*100 + j + 1 + "","双人间",false);
                    }
                    if (i == 4) {
                        //5层为豪华间
                        rooms[i][j] = new Room((i+1)*100 + j + 1 + "","豪华间",false);
                    }
                }
            }
        }
        /**
         * 打印房间信息
         */
        public void print(){
            for (int i = 0; i < rooms.length; i++) {
                for (int j = 0; j < rooms[i].length; j++) {
                    System.out.print(rooms[i][j].toString());
                }
                System.out.println();
            }
        }
        /**
         * 预订房间
         * @param no - 房间号
         */
        public void order(String no){
            for (int i = 0; i < rooms.length; i++) {
                for (int j = 0; j < rooms[i].length; j++) {
                    if (rooms[i][j].getNo().equals(no)) {
                        //找到了要订的房间,把空闲改为占用
                        rooms[i][j].setIsuse(true);
                    }
                }
            }
        }
        /**
         * 退房
         * @param no - 房间号
         */
        public void cancelorder(String no){
            for (int i = 0; i < rooms.length; i++) {
                for (int j = 0; j < rooms[i].length; j++) {
                    if (rooms[i][j].getNo().equals(no)) {
                        //找到了要退的房间,把占用改为空闲
                        rooms[i][j].setIsuse(false);
                    }
                }
            }
        }
    }
    /**
     * 房间类
     * @author haokui
     *
     */
    class Room {
        //
        private String no;//房间编号
        private String type;//房间类型 
        private boolean isuse;//是否占用
        public Room (String no, String type, boolean isuse) {
            this.no = no;
            this.type = type;
            this.isuse = isuse;
        }
        public String getNo() {
            return no;
        }
        public void setNo(String no) {
            this.no = no;
        }
        public String getType() {
            return type;
        }
        public void setType(String type) {
            this.type = type;
        }
        public boolean isIsuse() {
            return isuse;
        }
        public void setIsuse(boolean isuse) {
            this.isuse = isuse;
        }
        public String toString(){
            return "["+no+","+type+","+(isuse ? "占用":"空闲")+"]";
        }
        
    }

    运行如下:

    输入要预订的房间号,比如201,,回车,结果

    会发现201已经被占用了,退房也是一样的原理。

  • 相关阅读:
    大话设计模式笔记 观察者模式
    nginx限速
    枚举实现的单例模式
    Nginx负载均衡
    插件lombok的介绍安装
    ThreadLocal类
    CopyOnWriteArrayList并发容器
    ConcurrentHashMap实现原理
    elasticsearch配置文件
    sql优化
  • 原文地址:https://www.cnblogs.com/hkdpp/p/8350128.html
Copyright © 2020-2023  润新知