Java实现简单酒店管理系统
概述
在本教程中,我们将使用Java语言实现一个简单的酒店管理系统,包括以下功能:
- 添加/查询客房信息
- 预订客房
- 退房
我们将使用OOP开发方法,并实现以下几个类:
- Room:客房类,包括房间号、是否入住、房间类型等属性
- Hotel:酒店类,包括所有客房列表等属性和行为
- Receptionist:前台类,负责处理客户请求
细节
Room类
每个Room对象包括以下属性:
- roomNum:房间号,String类型
- type:房间类型,String类型
- occupied:是否入住,boolean类型
我们将为每个属性提供getter/setter方法。以roomNum为例,getter方法如下:
public String getRoomNum() {
return roomNum;
}
Hotel类
Hotel类包括以下属性和方法:
- numOfRooms:客房数量,int类型
- rooms:客房列表,Room类型数组
在构造函数中,我们将设置numOfRooms和rooms,并为每个元素分配空间。我们还将实现以下方法:
addRoom
添加一个客房。参数为Room对象。如果新增成功,返回true。
public boolean addRoom(Room room) {
if(numOfRooms >= MAX_NUM_OF_ROOMS) {
return false;
}
rooms[numOfRooms] = room;
numOfRooms++;
return true;
}
findRoomsByType
查找指定类型的空闲客房。参数为房间类型,返回一个Room类型数组。
public Room[] findRoomsByType(String type) {
Room[] result = new Room[MAX_NUM_OF_ROOMS];
int count = 0;
for(int i = 0; i < numOfRooms; i++) {
if(!rooms[i].isOccupied() && type.equals(rooms[i].getType())) {
result[count++] = rooms[i];
}
}
return Arrays.copyOf(result, count);
}
Receptionist类
Receptionist类包括以下方法:
checkIn
入住操作。参数为房间号,如果房间为空闲状态,则将其标记为入住,并返回true;否则返回false。
public boolean checkIn(String roomNum) {
for(Room room : hotel.getRooms()) {
if(roomNum.equals(room.getRoomNum())) {
if(!room.isOccupied()) {
room.setOccupied(true);
return true;
} else {
return false;
}
}
}
return false;
}
checkOut
退房操作。参数为房间号,如果房间已入住,则将其标记为空闲,并返回true;否则返回false。
public boolean checkOut(String roomNum) {
for(Room room : hotel.getRooms()) {
if(roomNum.equals(room.getRoomNum())) {
if(room.isOccupied()) {
room.setOccupied(false);
return true;
} else {
return false;
}
}
}
return false;
}
示例
我们实例化一个酒店对象,并添加三个客房。
Hotel hotel = new Hotel();
hotel.addRoom(new Room("101", "single", false));
hotel.addRoom(new Room("102", "single", false));
hotel.addRoom(new Room("201", "double", false));
我们的前台小姐姐收到一个客户要求预订一个单人间的请求,她可以使用以下代码查询是否有空房,并选择其中一个房间进行预订。
Room[] rooms = hotel.findRoomsByType("single");
if(rooms.length > 0) {
Receptionist receptionist = new Receptionist(hotel);
receptionist.checkIn(rooms[0].getRoomNum());
}
当客人退房时,前台小姐姐可以使用以下代码将该房间标记为空闲。
Receptionist receptionist = new Receptionist(hotel);
receptionist.checkOut("101");
总结
本教程介绍了如何使用Java语言实现一个简单的酒店管理系统。通过面向对象的设计,我们实现了一个易于扩展和维护的程序。其中,Hotel类负责管理客房,Receptionist类负责处理客户的请求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现简单酒店管理系统 - Python技术站