二维数组模拟酒店

需求:使用二维数组 构造一个酒店 功能如下:

键盘输入1,2,3,0

1.查房 print()

2.订房 getRoom()

3.退房 exit()

0.退出系统

要求这个酒店 三层楼 每层有十个房间 每个房间都有房间号,类型,状态(空闲/预定)

代码如下:

酒店类:

public class Hotel {
    //1.定义二维数组 三层楼  每楼十间房  每个房间有房间号  类型  状态
    // 2.查房  订房 退房
    Object[][] obj;
    public Hotel() {
         this.obj =new Object[3][10];
        for (int i=0;i<obj.length;i++){
            for (int j =0;j<obj[i].length;j++){
                //第一层
                if (i==0){
                    Room room =new Room((i+1)*100+j+1,"标准间",true);
                    obj[i][j]=room;
                }
                    if (i==1){
                    Room room =new Room((i+1)*100+j+1,"双人间",true);
                    obj[i][j]=room;
                }
                if (i==2){
                    Room room =new Room((i+1)*100+j+1,"豪华间",true);
                    obj[i][j]=room;
                }
            }
        }

    }

    //查房
    public void print(){
        for (int i =0;i<obj.length;i++){
             for (int j=0;j<obj[i].length;j++){
                 System.out.print(obj[i][j]);
             }
            System.out.println();
        }

    }

    public void getRoom(int number){  //在java中  除法取整  百分号取余
        Object o = obj[number / 100 - 1][number % 100 - 1];
        if (o instanceof Room){
            Room room = (Room) o;
            if (room.getStatus()==false){
                System.out.println("预定失败!房间有人");
                return;
            }
            room.setStatus(false);
            System.out.println("预定成功!!");
            System.out.println(room);
        }
    }
    public void exit(int number){
        Object o = obj[number / 100 - 1][number % 100 - 1];
        if (o instanceof Room){
            Room room = (Room) o;
            if (room.getStatus()==true){
                System.out.println("退房失败!房间没有住人");
                return;
            }
            room.setStatus(true);
            System.out.println("退房成功!!!");
        }
    }
}

房间类:

public class Room {
    private int no;
    private String type;
    private boolean status;

    public Room(int no, String type, boolean status) {
        this.no = no;
        this.type = type;
        this.status = status;
    }

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public boolean getStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Room room = (Room) o;
        return no == room.no &&
                status == room.status &&
                Objects.equals(type, room.type);
    }

    @Override
    public int hashCode() {

        return Objects.hash(no, type, status);
    }

    @Override
    public String toString() {
        return "Room{" +
                "no=" + no +
                ", type='" + type + '\'' +
                ", status=" + (status?"空闲":"预定") +
                '}';
    }
}

测试类:

public class Test {
    public static void main(String[] args) {
        Hotel hotel =new Hotel();
        Scanner s =new Scanner(System.in);
        System.out.println("欢迎来到酒店管理系统!!!");
        while (true){
            System.out.println("请输入序号:1.查房  2.订房  3.退房  0.退出系统");
            int i = s.nextInt();
            if (i==1){
                hotel.print();
            }
            if (i==2){
                System.out.println("请输入您要预定的房间号:");
                int num =s.nextInt();
                hotel.getRoom(num);
            }
            if (i==3){
                System.out.println("请输入您要退的房间号:");
                int num =s.nextInt();
                hotel.exit(num);
            }

            if (i==0){
                System.out.println("系统已退出 欢迎下次使用!!");
                System.exit(0);
            }

        }


    }
}

测试结果如下:

欢迎来到酒店管理系统!!!
请输入序号:1.查房  2.订房  3.退房  0.退出系统
1
Room{no=101, type='标准间', status=空闲}Room{no=102, type='标准间', status=空闲}Room{no=103, type='标准间', status=空闲}Room{no=104, type='标准间', status=空闲}Room{no=105, type='标准间', status=空闲}Room{no=106, type='标准间', status=空闲}Room{no=107, type='标准间', status=空闲}Room{no=108, type='标准间', status=空闲}Room{no=109, type='标准间', status=空闲}Room{no=110, type='标准间', status=空闲}
Room{no=201, type='双人间', status=空闲}Room{no=202, type='双人间', status=空闲}Room{no=203, type='双人间', status=空闲}Room{no=204, type='双人间', status=空闲}Room{no=205, type='双人间', status=空闲}Room{no=206, type='双人间', status=空闲}Room{no=207, type='双人间', status=空闲}Room{no=208, type='双人间', status=空闲}Room{no=209, type='双人间', status=空闲}Room{no=210, type='双人间', status=空闲}
Room{no=301, type='豪华间', status=空闲}Room{no=302, type='豪华间', status=空闲}Room{no=303, type='豪华间', status=空闲}Room{no=304, type='豪华间', status=空闲}Room{no=305, type='豪华间', status=空闲}Room{no=306, type='豪华间', status=空闲}Room{no=307, type='豪华间', status=空闲}Room{no=308, type='豪华间', status=空闲}Room{no=309, type='豪华间', status=空闲}Room{no=310, type='豪华间', status=空闲}
请输入序号:1.查房  2.订房  3.退房  0.退出系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值