一定要学会的Python项目:酒店管理系统,一文带你从底层了解该项目

在这里插入图片描述

项目描述

在这个项目中,我们将开发一个酒店管理系统。这个系统将允许用户查看当前酒店的客房状态(空闲、已预订、已入住),并可以进行客房预订操作。通过这个项目,我们将学习如何使用Python来管理简单的数据结构和实现基本的用户交互。
让我们先看看效果如何吧
在这里插入图片描述
在这里插入图片描述

项目使用到的技术栈

  • Python 3.x:我们使用的是Python的最新版本,它提供了丰富的内置函数和库,使得编程更加高效。
  • 命令行界面(CLI):我们将使用Python的内置input()和print()函数来实现一个简单的命令行界面,用于与用户进行交互。
  • 数据结构:我们将使用Python的列表(list)和字典(dict)来存储和管理客房信息。

项目拆解

定义客房状态常量

# hotel_management.py  
  
# 定义客房状态常量  
ROOM_STATUS_FREE = "空闲"  
ROOM_STATUS_BOOKED = "已预订"  
ROOM_STATUS_OCCUPIED = "已入住"

描述

  • 定义三个字符串常量来表示客房的不同状态。

初始化客房数据

# 接着上面的代码  
  
# 初始化客房列表,每个客房用一个字典表示,包含房间号和状态  
rooms = [  
    {
    
    "number": 101, "status": ROOM_STATUS_FREE},  
    {
    
    "number": 102, "status": ROOM_STATUS_FREE},  
    # 可以继续添加更多客房  
]

描述

  • 创建一个列表rooms,其中每个元素都是一个字典,代表一个客房。
  • 每个字典包含两个键:number(房间号)和status(房间状态)。

编写显示客房状态的函数

# 接着上面的代码  
  
def display_rooms():  
    """显示当前所有客房的状态"""  
    print("当前客房状态:")  
    for room in rooms:  
        # 使用格式化字符串来打印每个客房的信息  
        print(f"房间号: {
      
      room['number']}, 状态: {
      
      room['status']}")

描述

定义了一个函数display_rooms,它遍历rooms列表并打印每个客房的房间号和状态。

编写预订房间的函数

# 接着上面的代码  
  
def book_room(room_number):  
    """根据房间号预订房间,如果房间是空闲的则预订成功,否则显示错误信息"""  
    for room in rooms:  
        if room['number'] == room_number:  # 找到对应的房间  
            if room['status'] == ROOM_STATUS_FREE:  # 检查房间状态是否为空闲  
                room['status'] = ROOM_STATUS_BOOKED  # 预订房间,更新状态为已预订  
                print(f"房间 {
      
      room_number} 预订成功!")  
                return True  # 预订成功,返回True  
    print(f"房间 {
      
      room_number} 不可用或已被预订。")  # 房间号不匹配或房间已被预订  
    return False  # 预订失败,返回False

描述

  • 定义了一个函数book_room,它接受一个房间号作为参数。
  • 函数遍历rooms列表,查找对应的房间。
  • 如果找到了房间且房间状态为空闲,则更新房间状态为已预订,并打印预订成功的信息,返回True。
  • 如果房间号不匹配或房间已被预订,则打印相应的错误信息,并返回False。

编写主程序逻辑

# 接着上面的代码  
  
if __name__ == "__main__":  
    while True:  
        # 显示用户可以选择的操作  
        print("\n--- 酒店管理系统 ---")  
        print("1. 显示客房状态")  
        print("2. 预订房间(输入房间号)")  
        print("3. 退出系统")  
        # 获取用户输入的选择  
        choice = input("请选择操作: ")  
  
        # 根据用户的选择执行相应的操作  
        if choice == "1":  
            display_rooms()  # 显示客房状态  
        elif choice == "2":  
            room_number = input("请输入要预订的房间号: ")  # 获取用户输入的房间号  
            # 尝试将房间号转换为整数,并调用预订函数  
            if room_number.isdigit():  
                room_number = int(room_number)  
                book_room(room_number)  # 预订房间  
            else:  
                print("请输入有效的房间号(数字)。")  # 处理用户输入非数字的情况  
        elif choice == "3":  
            print("退出系统。")  # 打印退出信息  
            break  # 退出循环,结束程序  
        else:  
            print("无效选择,请重新输入。")  # 处理用户输入无效选择的情况

描述

  • if name == “main”: 确保了这段代码只在直接运行脚本时执行,而不是在作为模块导入时执行。
  • 使用了一个无限循环来不断显示用户可以选择的操作,并获取用户的输入。
  • 根据用户输入的选择,调用相应的函数来执行操作。
  • 如果用户选择预订房间,则先检查输入的房间号是否为数字,然后调用book_room函数。
  • 如果用户选择退出系统,则打印退出信息并退出循环,结束程序。
  • 如果用户输入了无效的选择,则打印相应的错误信息,并提示用户重新输入。

项目到这里就结束了,需要源码的同学,关注回复【007】领取源码
在这里插入图片描述