文章目录
- 1.系统概述
- 2.技术栈
- 3.系统功能
- 4.核心代码分析
- 5. 代码实现
- 6.实现细节
- 6.未来改进方向
在当今数字化时代,自动化和数字化管理工具对于提高效率至关重要。在这篇博客中,我们将一起探索如何使用Python编程语言来创建一个简单的二手房屋出租管理系统。这个系统将帮助房产所有者、中介和客户高效地管理房屋信息。
1.系统概述
我们的系统旨在提供一个用户友好的界面,使用户能够执行基本的房屋管理任务,如注册、登录、添加房屋信息、删除房屋信息以及查看所有可用房屋。
2.技术栈
- Python:作为一种高级编程语言,Python以其简洁性和易读性而闻名,非常适合快速开发。
- 控制台界面:为了保持简单,我们使用Python的标准输入输出来创建控制台界面。
3.系统功能
- 用户注册与登录:用户可以根据自己的角色(房主、中介或客户)注册和登录系统。
- 房屋信息管理:
- 房主可以添加和删除房屋信息。
- 中介可以联系房主和客户。
- 客户可以查看房屋信息并预约看房。
- 房屋信息展示:系统允许所有用户查看所有可用房屋的详细信息。
4.核心代码分析
以下是系统的核心组件和它们的基本实现:
House
类:用于创建房屋对象,包含地址、房间数、卫生间数、价格和所有者用户名等属性。menu
函数:显示系统菜单,允许用户选择不同的操作。sign_in
和enroll
函数:分别处理用户的登录和注册。add_house
和delete_house
函数:允许房主添加和删除房屋信息。owner_menu
、agent_menu
和customer_menu
函数:为不同角色提供特定的菜单选项。
5. 代码实现
# 二手房屋出租管理系统 # 用户数据库模拟
users = { "owner": {}, "agent": {}, "customer": {}
} # 房屋信息数据库模拟
houses = [] class House: def __init__(self, address, rooms, bathrooms, price, owner_username): self.address = address self.rooms = rooms self.bathrooms = bathrooms self.price = price self.owner_username = owner_username # 存储房主的用户名 def display_details(self): print(f"地址: {self.address}") print(f"房间数: {self.rooms}") print(f"卫生间数: {self.bathrooms}") print(f"价格: {self.price}") print(f"所有者: {self.owner_username}") print("-------------------------------") def menu(): print('-----------------------------------') print('| 欢迎来到二手房屋出租管理系统 |') print('| |') print('| 1.登录 |') print('| 2.注册 |') print('| 3.退出 |') print('| |') print('-----------------------------------') def sign_in(): print('-----------------------------------') print('| 请选择要登录的对象 |') print('| |') print('| 1.房主 |') print('| 2.中介 |') print('| 3.客户 |') print('-----------------------------------') role_option = int(input("请选择角色:")) username = input("请输入用户名:") password = input("请输入密码:") if role_option == 1: if username in users["owner"] and users["owner"][username] == password: print(f"欢迎回来,房主 {username}!") owner_menu(username) else: print("登录失败,用户名或密码错误。") elif role_option == 2: if username in users["agent"] and users["agent"][username] == password: print(f"欢迎回来,中介 {username}!") agent_menu(username) else: print("登录失败,用户名或密码错误。") elif role_option == 3: if username in users["customer"] and users["customer"][username] == password: print(f"欢迎回来,客户 {username}!") customer_menu(username) else: print("登录失败,用户名或密码错误。") def enroll(): print('-----------------------------------') print('| 请选择要注册的对象 |') print('| |') print('| 1.房主 |') print('| 2.中介 |') print('| 3.客户 |') print('-----------------------------------') role_option = int(input("请选择角色:")) username = input("请输入用户名:") password = input("请输入密码:") global users # 声明使用全局变量users if role_option == 1: if username in users["owner"]: print("注册失败,房主用户名已存在。") else: users["owner"][username] = password print("房主注册成功!") elif role_option == 2: if username in users["agent"]: print("注册失败,中介用户名已存在。") else: users["agent"][username] = password print("中介注册成功!") elif role_option == 3: if username in users["customer"]: print("注册失败,客户用户名已存在。") else: users["customer"][username] = password print("客户注册成功!"). def add_house(owner_username): if owner_username not in users["owner"]: print("错误:房主用户不存在,请先注册。") return address = input("请输入房屋地址:") rooms = int(input("请输入房间数:")) bathrooms = int(input("请输入卫生间数:")) price = float(input("请输入价格:")) house = House(address, rooms, bathrooms, price, owner_username) houses.append(house) print("房屋信息添加成功!") def delete_house(owner_username): address = input("请输入要删除的房屋地址:") house_to_delete = None for house in houses: if house.address == address and house.owner_username == owner_username: house_to_delete = house break if house_to_delete: houses.remove(house_to_delete) print("房屋信息删除成功!") else: print("未找到该房屋信息或权限不足。") def owner_menu(username): while True: print('-----------------------------------') print(f'| 欢迎回来,房主 {username}! |') print('| |') print('| 1.添加房屋信息 |') print('| 2.删除房屋信息 |') print('| 3.退出登录 |') print('| |') print('-----------------------------------') option = int(input("请选择操作:")) if option == 1: add_house(username) elif option == 2: delete_house(username) elif option == 3: break else: print("无效选项,请重新选择。") def contact_owner(agent): print('-----------------------------------') print('| 联系房主 |') print('-----------------------------------') # 实现联系房主的逻辑 def contact_customer(agent): print('-----------------------------------') print('| 联系客户 |') print('-----------------------------------') # 实现联系客户的逻辑 def agent_menu(username): while True: print('-----------------------------------') print(f'| 欢迎回来,中介 {username}! |') print('| |') print('| 1.联系房主 |') print('| 2.联系客户 |') print('| 3.退出登录 |') print('| |') print('-----------------------------------') option = int(input("请选择操作:")) if option == 1: contact_owner(username) elif option == 2: contact_customer(username) elif option == 3: break else: print("无效选项,请重新选择。") def book_house(customer): print('-----------------------------------') print('| 预约看房 |') print('-----------------------------------') # 实现预约看房的逻辑 def customer_menu(username): while True: print('-----------------------------------') print(f'| 欢迎回来,客户 {username}!|') print('| |') print('| 1.预约看房 |') print('| 2.查看房屋信息 |') print('| 3.退出登录 |') print('| |') print('-----------------------------------') option = int(input("请选择操作:")) if option == 1: book_house(username) elif option == 2: display_houses() elif option == 3: break else: print("无效选项,请重新选择。") def display_houses(): print('-----------------------------------') print('| 所有房屋信息 |') print('-----------------------------------') for house in houses: house.display_details() def main(): while True: menu() try: option = int(input('请选择:')) except ValueError: print("请输入一个整数。") continue if option == 1: sign_in() elif option == 2: enroll() elif option == 3: print("谢谢使用,再见!") break else: print("无效选项,请重新选择。") continue_choice = input("是否继续?(y/n): ") if continue_choice.lower() != 'y': break # 确保程序的入口
if __name__ == "__main__": main()
6.实现细节
在实现过程中,我们特别注意了代码的可读性和异常处理。所有的用户输入都进行了验证,以确保它们是有效的整数。此外,我们还使用了异常处理来捕获和处理无效输入。
6.未来改进方向
尽管当前的系统已经能够满足基本需求,但还有许多潜在的改进方向,包括:
- 实现图形用户界面(GUI)以提升用户体验。
- 添加数据库支持以实现数据持久化。
- 增强安全性,例如使用密码散列。
- 实现更复杂的房屋搜索和过滤功能。