生成一个酒店客房管理系统的程序
时间: 2024-05-04 19:21:07 浏览: 20
好的,一个简单的酒店客房管理系统大概包括以下功能:
1. 客房信息管理:记录酒店客房的基本信息,如房间号、房间类型、房间状态、房间价格等。
2. 客房预订管理:记录客人的预订信息,包括客人姓名、联系方式、入住时间、离店时间、预订房间号等。
3. 入住管理:记录客人的入住信息,包括客人姓名、联系方式、入住时间、离店时间、入住房间号等。
4. 退房管理:记录客人的退房信息,包括客人姓名、联系方式、入住时间、离店时间、入住天数、消费金额等。
5. 报表管理:生成统计报表,如客房出租率、客房收入、客房类型分布等。
下面是一个简单的客房管理系统的程序:
```python
class Room:
def __init__(self, room_no, room_type, price):
self.room_no = room_no
self.room_type = room_type
self.price = price
self.status = "空闲"
class Hotel:
def __init__(self, name):
self.name = name
self.rooms = []
self.bookings = []
self.checkins = []
self.checkouts = []
def add_room(self, room_no, room_type, price):
room = Room(room_no, room_type, price)
self.rooms.append(room)
print(f"成功添加房间:{room.room_no}")
def view_room_status(self):
print("客房号\t客房类型\t价格\t状态")
for room in self.rooms:
print(f"{room.room_no}\t{room.room_type}\t{room.price}\t{room.status}")
def search_room(self, room_no):
for room in self.rooms:
if room.room_no == room_no:
return room
return None
def book_room(self, name, phone, room_no, checkin, checkout):
room = self.search_room(room_no)
if room is None:
print(f"房间号 {room_no} 不存在")
return False
if room.status != "空闲":
print(f"房间号 {room_no} 已被预订或入住")
return False
booking = {"name": name, "phone": phone, "room_no": room_no, "checkin": checkin, "checkout": checkout}
self.bookings.append(booking)
room.status = "已预订"
print(f"{name} 已成功预订房间 {room_no}")
return True
def checkin(self, name, phone, room_no, checkin):
room = self.search_room(room_no)
if room is None:
print(f"房间号 {room_no} 不存在")
return False
if room.status != "已预订":
print(f"房间号 {room_no} 无法入住")
return False
booking = None
for b in self.bookings:
if b["room_no"] == room_no and b["name"] == name and b["phone"] == phone:
booking = b
break
if booking is None:
print(f"预订信息不匹配")
return False
self.bookings.remove(booking)
checkin_info = {"name": name, "phone": phone, "room_no": room_no, "checkin": checkin}
self.checkins.append(checkin_info)
room.status = "已入住"
print(f"{name} 已成功入住房间 {room_no}")
return True
def checkout(self, name, phone, room_no, checkout):
room = self.search_room(room_no)
if room is None:
print(f"房间号 {room_no} 不存在")
return False
if room.status != "已入住":
print(f"房间号 {room_no} 无法退房")
return False
checkin_info = None
for ci in self.checkins:
if ci["room_no"] == room_no and ci["name"] == name and ci["phone"] == phone:
checkin_info = ci
break
if checkin_info is None:
print(f"入住信息不匹配")
return False
days = (checkout - checkin_info["checkin"]).days
amount = days * room.price
checkout_info = {"name": name, "phone": phone, "room_no": room_no, "checkout": checkout, "days": days, "amount": amount}
self.checkouts.append(checkout_info)
room.status = "空闲"
print(f"{name} 已成功退房,共计 {days} 天,消费金额为 {amount}")
return True
def view_report(self):
total = len(self.rooms)
booked = len([room for room in self.rooms if room.status == "已预订"])
checked_in = len([room for room in self.rooms if room.status == "已入住"])
print(f"酒店名称:{self.name}")
print(f"客房总数:{total}")
print(f"已预订客房数:{booked}")
print(f"已入住客房数:{checked_in}")
print("=" * 30)
print("客房类型\t已预订数\t已入住数")
room_types = set([room.room_type for room in self.rooms])
for room_type in room_types:
booked_count = len([room for room in self.rooms if room.room_type == room_type and room.status == "已预订"])
checked_in_count = len([room for room in self.rooms if room.room_type == room_type and room.status == "已入住"])
print(f"{room_type}\t{booked_count}\t{checked_in_count}")
```
这个程序包括了客房信息管理、客房预订管理、入住管理、退房管理和报表管理等功能。你可以根据实际情况进行修改和扩展。