You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
278 lines
11 KiB
278 lines
11 KiB
6 months ago
|
users = [
|
||
|
{'username': 'woo1', 'password': '123'},
|
||
|
{'username': 'woo2', 'password': '123'},
|
||
|
{'username': 'woo3', 'password': '123'}
|
||
|
]
|
||
|
room_data = []
|
||
|
# 登录函数
|
||
|
def login():
|
||
|
print("===== 酒店管理系统登录 =====")
|
||
|
attempts = 3
|
||
|
while attempts > 0:
|
||
|
username = input("请输入用户名: ")
|
||
|
password = input("请输入密码: ")
|
||
|
user = next((user for user in users if user['username'] == username), None)
|
||
|
if user is None:
|
||
|
print("用户名不存在,请重新输入。")
|
||
|
attempts -= 1
|
||
|
elif user['password'] != password:
|
||
|
print("密码错误,请重新输入。")
|
||
|
attempts -= 1
|
||
|
else:
|
||
|
print("登录成功!")
|
||
|
return True
|
||
|
print("登录失败!程序退出。")
|
||
|
return False
|
||
|
|
||
|
|
||
|
# 主界面函数
|
||
|
def main_menu():
|
||
|
print("-----------------------------")
|
||
|
print("| 酒店管理系统 |")
|
||
|
print("-----------------------------")
|
||
|
print("| 1. 录入房间信息 |")
|
||
|
print("| 2. 查找房间 |")
|
||
|
print("| 3. 删除房间信息 |")
|
||
|
print("| 4. 修改房间信息 |")
|
||
|
print("| 5. 房间信息排序显示 |")
|
||
|
print("| 6. 统计房间总个数 |")
|
||
|
print("| 7. 显示所有房间信息 |")
|
||
|
print("| 0. 退出系统 |")
|
||
|
print("-----------------------------")
|
||
|
choice = input("请输入选项(0-7): ")
|
||
|
return choice
|
||
|
def hotel_management_system():
|
||
|
|
||
|
if not login():
|
||
|
return
|
||
|
room_data = read_room_data();
|
||
|
while True:
|
||
|
choice = main_menu()
|
||
|
if choice == "1":
|
||
|
add_room(room_data)
|
||
|
elif choice == "2":
|
||
|
search_room(room_data)
|
||
|
elif choice == "3":
|
||
|
delete_room(room_data)
|
||
|
elif choice == "4":
|
||
|
modify_room(room_data)
|
||
|
elif choice == "5":
|
||
|
sort_room_info(room_data)
|
||
|
elif choice == "6":
|
||
|
count_rooms(room_data)
|
||
|
elif choice == "7":
|
||
|
display_all_rooms(room_data)
|
||
|
elif choice == "0":
|
||
|
exit_system(room_data)
|
||
|
else:
|
||
|
print("无效的选择。")
|
||
|
def read_room_data():
|
||
|
temp_data = []
|
||
|
try:
|
||
|
with open("room_data.txt", "r") as file:
|
||
|
for line in file:
|
||
|
room = line.strip().split(",")
|
||
|
room[0] = int(room[0])
|
||
|
temp_data.append(room)
|
||
|
print("成功读取房间信息。")
|
||
|
except FileNotFoundError:
|
||
|
print("未找到房间信息文件。")
|
||
|
return temp_data
|
||
|
def print_room_info(room):
|
||
|
print("房间号:", room[0])
|
||
|
print("房间地址:", room[1])
|
||
|
print("房间类型:", room[2])
|
||
|
print("房间价格:", room[3])
|
||
|
print("房间状态:", room[4])
|
||
|
print("--------------------------")
|
||
|
def save_room_data(room_data):
|
||
|
# try:
|
||
|
# with open("room_data.txt", "w") as file:
|
||
|
# for room in room_data:
|
||
|
# file.write(','.join(room) + "\n")
|
||
|
# print("房间信息已成功保存。")
|
||
|
# except:
|
||
|
# print("保存房间信息时发生错误。")
|
||
|
with open("room_data.txt", "w") as file:
|
||
|
for room in room_data:
|
||
|
file.write(",".join(str(item) for item in room) + "\n")
|
||
|
|
||
|
# 酒店管理系统主程序
|
||
|
|
||
|
|
||
|
def add_room(room_data):
|
||
|
room_number = int(input("请输入房间号: "))
|
||
|
room_address = input("请输入房间地址: ")
|
||
|
room_type = input("请输入房间类型: ")
|
||
|
room_price = float(input("请输入房间价格: "))
|
||
|
room_status = input("请输入房间状态: ")
|
||
|
new_room = [room_number,room_address,room_type,room_price,room_status]
|
||
|
# new_room = f"{room_number},{room_address},{room_type},{room_price},{room_status}"
|
||
|
room_data.append(new_room)
|
||
|
print("房间信息已成功录入。")
|
||
|
return_last_menu = input("是否继续录入房间信息(1/0)")
|
||
|
if return_last_menu =="1":
|
||
|
add_room(room_data);
|
||
|
return
|
||
|
|
||
|
|
||
|
def search_room(room_data):
|
||
|
search_choice = input("请选择查找方式 (1.房间号 2.房间类型 3.房间状态): ")
|
||
|
if search_choice == "1":
|
||
|
room_number = int(input("请输入房间号: "))
|
||
|
for room in room_data:
|
||
|
if room[0] == room_number:
|
||
|
print("找到匹配的房间信息:")
|
||
|
print_room_info(room)
|
||
|
return_last_menu = input("是否继续查询房间信息(1/0)")
|
||
|
if return_last_menu == "1":
|
||
|
search_room(room_data)
|
||
|
return
|
||
|
print("未找到匹配的房间信息。")
|
||
|
elif search_choice == "2":
|
||
|
room_type = input("请输入房间类型: ")
|
||
|
found_rooms = [room for room in room_data if room[2] == room_type]
|
||
|
if found_rooms:
|
||
|
print("找到匹配的房间信息:")
|
||
|
for room in found_rooms:
|
||
|
print_room_info(room)
|
||
|
return_last_menu = input("是否继续查询房间信息(1/0)")
|
||
|
if return_last_menu == "1":
|
||
|
search_room(room_data)
|
||
|
return
|
||
|
else:
|
||
|
print("未找到匹配的房间信息。")
|
||
|
elif search_choice == "3":
|
||
|
room_status = input("请输入房间状态: ")
|
||
|
found_rooms = [room for room in room_data if room[4] == room_status]
|
||
|
if found_rooms:
|
||
|
print("找到匹配的房间信息:")
|
||
|
for room in found_rooms:
|
||
|
print_room_info(room)
|
||
|
return_last_menu = input("是否继续查询房间信息(1/0)")
|
||
|
if return_last_menu == "1":
|
||
|
search_room(room_data)
|
||
|
return
|
||
|
else:
|
||
|
print("未找到匹配的房间信息。")
|
||
|
else:
|
||
|
print("无效的选择。")
|
||
|
def delete_room(room_data):
|
||
|
delete_choice = input("请选择删除方式 (1.房间号 2.房间地址): ")
|
||
|
if delete_choice == "1":
|
||
|
room_number = int(input("请输入要删除的房间号: "))
|
||
|
found_rooms = [room for room in room_data if room[0] == room_number]
|
||
|
if found_rooms:
|
||
|
confirm = input("找到匹配的房间信息,确认要删除吗?(Y/N): ")
|
||
|
if confirm.lower() == "y":
|
||
|
room_data.remove(found_rooms[0])
|
||
|
print("房间信息已成功删除。")
|
||
|
return_last_menu = input("是否继续删除房间信息(1/0)")
|
||
|
if return_last_menu == "1":
|
||
|
delete_room(room_data)
|
||
|
return
|
||
|
else:
|
||
|
print("已取消删除操作。")
|
||
|
else:
|
||
|
print("未找到要删除的房间信息。")
|
||
|
elif delete_choice == "2":
|
||
|
room_address = input("请输入要删除的房间地址: ")
|
||
|
found_rooms = [room for room in room_data if room[1] == room_address]
|
||
|
if found_rooms:
|
||
|
confirm = input("找到匹配的房间信息,确认要删除吗?(Y/N): ")
|
||
|
if confirm.lower() == "y":
|
||
|
for room in found_rooms:
|
||
|
room_data.remove(room)
|
||
|
print("房间信息已成功删除。")
|
||
|
return_last_menu = input("是否继续删除房间信息(1/0)")
|
||
|
if return_last_menu == "1":
|
||
|
delete_room(room_data)
|
||
|
return
|
||
|
else:
|
||
|
print("已取消删除操作。")
|
||
|
else:
|
||
|
print("未找到要删除的房间信息。")
|
||
|
else:
|
||
|
print("无效的选择。")
|
||
|
def modify_room(room_data):
|
||
|
room_number = int(input("请输入要修改的房间号: "))
|
||
|
found_rooms = [room for room in room_data if room[0] == room_number]
|
||
|
if found_rooms:
|
||
|
print("找到匹配的房间信息:")
|
||
|
print_room_info(found_rooms[0])
|
||
|
modify_choice = input("请选择要修改的信息 (1.房间状态 2.房间类型 3.房间价格): ")
|
||
|
if modify_choice == "1":
|
||
|
new_status = input("请输入新的房间状态: ")
|
||
|
for room in room_data:
|
||
|
if room[0] == room_number:
|
||
|
room[4] = new_status
|
||
|
print_room_info(room)
|
||
|
print("房间信息已成功修改。")
|
||
|
|
||
|
return_last_menu = input("是否继续修改房间信息(1/0)")
|
||
|
if return_last_menu == "1":
|
||
|
modify_room(room_data)
|
||
|
elif modify_choice == "2":
|
||
|
new_type = input("请输入新的房间类型: ")
|
||
|
for room in room_data:
|
||
|
if room[0] == room_number:
|
||
|
room[2] = new_type
|
||
|
print_room_info(room)
|
||
|
print("房间信息已成功修改。")
|
||
|
return_last_menu = input("是否继续修改房间信息(1/0)")
|
||
|
if return_last_menu == "1":
|
||
|
modify_room(room_data)
|
||
|
elif modify_choice == "3":
|
||
|
new_price = float(input("请输入新的房间价格: "))
|
||
|
for room in room_data:
|
||
|
if room[0] == room_number:
|
||
|
room[3] = new_price
|
||
|
print_room_info(room)
|
||
|
print("房间信息已成功修改。")
|
||
|
return_last_menu = input("是否继续修改房间信息(1/0)")
|
||
|
if return_last_menu == "1":
|
||
|
modify_room(room_data)
|
||
|
else:
|
||
|
print("无效的选择。")
|
||
|
else:
|
||
|
print("未找到要修改的房间信息。")
|
||
|
|
||
|
def sort_room_info(room_data):
|
||
|
sort_choice = input("请选择排序方式 (1.根据房间号 2.根据房间价格): ")
|
||
|
if sort_choice == "1":
|
||
|
sorted_data = sorted(room_data, key=lambda x: x[0]) # 根据房间号排序
|
||
|
elif sort_choice == "2":
|
||
|
sorted_data = sorted(room_data, key=lambda x: x[3]) # 根据房间价格排序
|
||
|
else:
|
||
|
print("无效的选择。")
|
||
|
return
|
||
|
|
||
|
order_choice = input("请选择排序顺序 (1.升序 2.降序): ")
|
||
|
if order_choice == "2":
|
||
|
sorted_data.reverse() # 降序
|
||
|
print("排序后的房间信息:")
|
||
|
for room in sorted_data:
|
||
|
print_room_info(room)
|
||
|
return_last_menu = input("是否继续排序房间信息(1/0)")
|
||
|
if return_last_menu == "1":
|
||
|
sort_room_info(room_data)
|
||
|
return
|
||
|
def count_rooms(room_data):
|
||
|
total_rooms = len(room_data)
|
||
|
print("房间总个数:", total_rooms)
|
||
|
return_last_menu = input("返回主界面(1):")
|
||
|
return
|
||
|
def display_all_rooms(room_data):
|
||
|
print("所有房间信息:")
|
||
|
for room in room_data:
|
||
|
print_room_info(room)
|
||
|
return_last_menu = input("返回主界面(1):")
|
||
|
return
|
||
|
def exit_system(room_data):
|
||
|
save_choice = input("是否保存房间信息并退出?(Y/N): ")
|
||
|
if save_choice.lower() == "y":
|
||
|
save_room_data(room_data)
|
||
|
print("感谢使用酒店管理系统,再见!")
|
||
|
exit()
|
||
|
|
||
|
hotel_management_system()
|