java数组练习题2:模拟酒店预订系统(部分功能实现)

题目

创建一个酒店管理系统,模拟退房,订房,打印所有房间信息

要求

1.系统用户:酒店前台
2.酒店使用一个二维数组来模拟
3.酒店中的每一个房间作为一个java对象
4.每一个房间应该有:房间号、房间类型、是否空闲
5.系统对外提供的功能:订房间、退房间、查看所有房间状态

代码实例

创建Room类

public class Room {
    /*
    101 102 103 ...
    201 202 203 ...
    ...
    */
    private int num;//房间号
    private String size;//房间款式
    private boolean use;//是否有空房

    public Room() {
    }

    public Room(int num, String size, boolean use) {
        this.num = num;
        this.size = size;
        this.use = use;
    }

    public int getNum() {
        return num;
    }

//setter and getter
    public void setNum(int num) {
        this.num = num;
    }

    public String getSize() {
        return size;
    }

    public void setSize(String size) {
        this.size = size;
    }

    public boolean getUse() {
        return use;
    }

    public void setUse(boolean use) {
        this.use = use;
    }

//重写equals()、toString()方法
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Room room = (Room) o;
        return num == room.num;
    }

    @Override
    public String toString() {
        return "房间号:" + num+
                ",类型:" + size+
                (use?",占用":",空闲");
    }
}

创建Hotel类
其中有:订房、退房、打印所有房间状态 三个方法

public class Hotel {
    //模拟酒店是个二维数组表示各个房间
    //开辟一个二维数组
    private Room[][] rooms;

    public Hotel() {
        //三层 每层10个房间
        //设定二维数组的容量
        rooms=new Room[3][10];
        //创建3*10个房间
        //为每个元素new一个room对象
        for (int i = 0; i < rooms.length; i++) {//i是下标(i+1是楼层)
            for (int j = 0; j < rooms[i].length; j++) {//j是下标 (j+1是每层房间号)
                if(i==0)
                    rooms[i][j]=new Room((i+1)*100+(j+1),"单人间",false);
                else if(i==1)
                    rooms[i][j]=new Room((i+1)*100+(j+1),"标准间",false);
                else if(i==2)
                    rooms[i][j]=new Room((i+1)*100+(j+1),"豪华间",false);
            }
        }
    }

    public Room[][] getRooms() {
        return rooms;
    }

    public void setRooms(Room[][] rooms) {
        this.rooms = rooms;
    }

    //提供一个 打印房间列表的方法
    public void print(){
        for (int i = 0; i < rooms.length; i++) {//i是下标(i+1是楼层)
            for (int j = 0; j < rooms[i].length; j++) {
                Room room=rooms[i][j];
                System.out.println(room.toString());
            }
            System.out.println();//每打印完一行后换行
        }
    }
    //提供一个 订房方法
    //主要是将房间的对象的use改为true(已入住)
    public void order(int roomNum){
        //假设房间为207---->下表为room[1][6]
        Room room=rooms[roomNum/100-1][roomNum%100-1];
        room.setUse(true);//改为true显示占用
    }
    //提供一个 退房方法
    public void exit(int roomNum){
        //假设房间为207---->下表为room[1][6]
        Room room=rooms[roomNum/100-1][roomNum%100-1];
        room.setUse(false);//改为false显示空闲
    }
}

测试类

import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        Hotel hotel=new Hotel();
        System.out.println("欢迎使用酒店管理系统");
        System.out.println("[1]表示查看房间列表。");
        System.out.println("[2]表示订房。");
        System.out.println("[3]表示退房");
        System.out.println("[0]表示退出系统");
        Scanner s=new Scanner(System.in);

        while (true) {
            System.out.println("请输入对应功能编号:");
            int i = s.nextInt();
            if (i == 1) {
                //查看房间列表
                hotel.print();
                System.out.println("请选择需要的服务:");
                System.out.println("[2]表示订房。");
                System.out.println("[3]表示退房");
                System.out.println("[0]表示退出系统");
            } else if (i == 2) {
                //订房
                System.out.println("请输入订房编号:");
                int roomNum = s.nextInt();
                hotel.order(roomNum);
                System.out.println("已订房:" + roomNum);

            } else if (i == 3) {
                //退房
                System.out.println("请输入订房编号:");
                int roomNum = s.nextInt();
                hotel.exit(roomNum);
                System.out.println("已退房:" + roomNum);

            } else if (i == 0) {
                System.out.println("谢谢使用");
                return;
            } else {
                System.out.println("输入有误,请重新输入");
            }
        }
    }
}

测试结果

欢迎使用酒店管理系统
[1]表示查看房间列表。
[2]表示订房。
[3]表示退房
[0]表示退出系统
请输入对应功能编号:
1
房间号:101,类型:单人间,空闲
房间号:102,类型:单人间,空闲
房间号:103,类型:单人间,空闲
房间号:104,类型:单人间,空闲
房间号:105,类型:单人间,空闲
房间号:106,类型:单人间,空闲
房间号:107,类型:单人间,空闲
房间号:108,类型:单人间,空闲
房间号:109,类型:单人间,空闲
房间号:110,类型:单人间,空闲

房间号:201,类型:标准间,空闲
房间号:202,类型:标准间,空闲
房间号:203,类型:标准间,空闲
房间号:204,类型:标准间,空闲
房间号:205,类型:标准间,空闲
房间号:206,类型:标准间,空闲
房间号:207,类型:标准间,空闲
房间号:208,类型:标准间,空闲
房间号:209,类型:标准间,空闲
房间号:210,类型:标准间,空闲

房间号:301,类型:豪华间,空闲
房间号:302,类型:豪华间,空闲
房间号:303,类型:豪华间,空闲
房间号:304,类型:豪华间,空闲
房间号:305,类型:豪华间,空闲
房间号:306,类型:豪华间,空闲
房间号:307,类型:豪华间,空闲
房间号:308,类型:豪华间,空闲
房间号:309,类型:豪华间,空闲
房间号:310,类型:豪华间,空闲

请选择需要的服务:
[2]表示订房。
[3]表示退房
[0]表示退出系统
请输入对应功能编号:
2
请输入订房编号:
101
已订房:101
请输入对应功能编号:
1
房间号:101,类型:单人间,占用
房间号:102,类型:单人间,空闲
房间号:103,类型:单人间,空闲
房间号:104,类型:单人间,空闲
房间号:105,类型:单人间,空闲
房间号:106,类型:单人间,空闲
房间号:107,类型:单人间,空闲
房间号:108,类型:单人间,空闲
房间号:109,类型:单人间,空闲
房间号:110,类型:单人间,空闲

房间号:201,类型:标准间,空闲
房间号:202,类型:标准间,空闲
房间号:203,类型:标准间,空闲
房间号:204,类型:标准间,空闲
房间号:205,类型:标准间,空闲
房间号:206,类型:标准间,空闲
房间号:207,类型:标准间,空闲
房间号:208,类型:标准间,空闲
房间号:209,类型:标准间,空闲
房间号:210,类型:标准间,空闲

房间号:301,类型:豪华间,空闲
房间号:302,类型:豪华间,空闲
房间号:303,类型:豪华间,空闲
房间号:304,类型:豪华间,空闲
房间号:305,类型:豪华间,空闲
房间号:306,类型:豪华间,空闲
房间号:307,类型:豪华间,空闲
房间号:308,类型:豪华间,空闲
房间号:309,类型:豪华间,空闲
房间号:310,类型:豪华间,空闲

请选择需要的服务:
[2]表示订房。
[3]表示退房
[0]表示退出系统
请输入对应功能编号:
0
谢谢使用

你可能感兴趣的:(java数组练习题2:模拟酒店预订系统(部分功能实现))