# your code goes here
class BikeManagementSystem:
def __init__(self):
self.bikes = {} # 单车数据 {编号: [状态, 位置, 故障描述]}
self.next_id = 1
def add_bike(self, location="未知位置"):
"""添加新单车"""
bike_id = self.next_id
self.bikes[bike_id] = ["可用", location, "无故障"]
self.next_id += 1
print(f"✅ 成功添加单车 #{bike_id} 在 {location}")
def report_fault(self, bike_id, fault_description):
"""报告单车故障"""
if bike_id in self.bikes:
self.bikes[bike_id][0] = "故障"
self.bikes[bike_id][2] = fault_description
print(f"⚠️ 单车 #{bike_id} 已标记为故障: {fault_description}")
else:
print(f"❌ 单车 #{bike_id} 不存在")
def repair_bike(self, bike_id):
"""修复单车"""
if bike_id in self.bikes and self.bikes[bike_id][0] == "故障":
self.bikes[bike_id][0] = "可用"
self.bikes[bike_id][2] = "无故障"
print(f"🔧 单车 #{bike_id} 已修复完成")
else:
print(f"❌ 单车 #{bike_id} 无需修复或不存在")
def show_bikes(self):
"""显示所有单车状态"""
if not self.bikes:
print("暂无单车数据")
return
print("\n🚲 单车状态列表:")
print("-" * 50)
for bike_id, (status, location, fault) in self.bikes.items():
status_icon = "✅" if status == "可用" else "❌"
print(f"{status_icon} 单车 #{bike_id} | 状态: {status} | 位置: {location}")
if fault != "无故障":
print(f" 故障描述: {fault}")
def show_stats(self):
"""显示统计信息"""
total = len(self.bikes)
available = sum(1 for bike in self.bikes.values() if bike[0] == "可用")
faulty = total - available
print(f"\n📊 统计信息:")
print(f"总单车数: {total}")
print(f"可用单车: {available}")
print(f"故障单车: {faulty}")
if total > 0:
print(f"可用率: {(available/total)*100:.1f}%")
def main():
system = BikeManagementSystem()
# 初始化一些示例数据
system.add_bike("地铁站A出口")
system.add_bike("商业街B区")
system.add_bike("公园南门")
while True:
print("\n===== 共享单车运维管理系统 =====")
print("1. 查看所有单车")
print("2. 添加新单车")
print("3. 报告故障")
print("4. 修复单车")
print("5. 查看统计")
print("6. 退出系统")
choice = input("请选择操作 (1-6): ").strip()
if choice == "1":
system.show_bikes()
elif choice == "2":
location = input("请输入单车位置: ").strip()
system.add_bike(location)
elif choice == "3":
try:
bike_id = int(input("请输入故障单车编号: "))
fault = input("请输入故障描述: ")
system.report_fault(bike_id, fault)
except ValueError:
print("❌ 请输入有效的单车编号")
elif choice == "4":
try:
bike_id = int(input("请输入要修复的单车编号: "))
system.repair_bike(bike_id)
except ValueError:
print("❌ 请输入有效的单车编号")
elif choice == "5":
system.show_stats()
elif choice == "6":
print("感谢使用共享单车运维管理系统!")
break
else:
print("❌ 无效选择,请重新输入")
if __name__ == "__main__":
main