有没有谁能帮我看看,私发或者回复到帖子下面都可以,动用python中的封装数据存储等以及发挥想象机房管理系统设计与实现还有什么可以增加的,都可以填入代码中使用


有没有谁能帮我看看,私发或者回复到帖子下面都可以,动用python中的封装数据存储等以及发挥想象机房管理系统设计与实现还有什么可以增加的,都可以填入代码中使用


下午好🌅🌅🌅
本答案参考通义千问
当然可以!下面我将为你设计一个机房管理系统的完整Python程序,它使用了封装数据存储、面向对象编程(OOP)等高级特性,并且会加入一些可扩展功能,如设备状态监控、用户权限管理、日志记录等。这个系统不会与网上常见的代码重复,而是基于你的需求进行定制化开发。
我们将使用 类 来封装数据结构,并通过 文件(如 .json 文件)来持久化存储数据。
Computer: 设备类User: 用户类Room: 机房类LogManager: 日志管理类System: 系统主类import json
import time
from datetime import datetime
# 定义设备类
class Computer:
def __init__(self, computer_id, status="空闲", last_used_time=None):
self.computer_id = computer_id
self.status = status # 状态: 空闲/使用中/故障
self.last_used_time = last_used_time or datetime.now().strftime("%Y-%m-%d %H:%M:%S")
def to_dict(self):
return {
"computer_id": self.computer_id,
"status": self.status,
"last_used_time": self.last_used_time
}
# 定义用户类
class User:
def __init__(self, user_id, name, role="普通用户"):
self.user_id = user_id
self.name = name
self.role = role # 角色: 普通用户 / 管理员
def to_dict(self):
return {
"user_id": self.user_id,
"name": self.name,
"role": self.role
}
# 定义机房类
class Room:
def __init__(self, room_id, computers=None):
self.room_id = room_id
self.computers = computers or []
def add_computer(self, computer):
self.computers.append(computer)
def get_computer_by_id(self, computer_id):
for comp in self.computers:
if comp.computer_id == computer_id:
return comp
return None
def to_dict(self):
return {
"room_id": self.room_id,
"computers": [comp.to_dict() for comp in self.computers]
}
# 定义日志管理类
class LogManager:
def __init__(self, log_file="system_log.json"):
self.log_file = log_file
self.logs = []
def add_log(self, message, level="INFO"):
log_entry = {
"timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"level": level,
"message": message
}
self.logs.append(log_entry)
self.save_logs()
def save_logs(self):
with open(self.log_file, "w") as f:
json.dump(self.logs, f, indent=4)
def load_logs(self):
try:
with open(self.log_file, "r") as f:
self.logs = json.load(f)
except FileNotFoundError:
self.logs = []
# 系统主类
class System:
def __init__(self):
self.rooms = []
self.users = []
self.log_manager = LogManager()
self.load_data()
def load_data(self):
# 从文件加载数据(假设我们有一个 data.json 文件)
try:
with open("data.json", "r") as f:
data = json.load(f)
self.rooms = [Room(room["room_id"], [Computer(**c) for c in room["computers"]]) for room in data.get("rooms", [])]
self.users = [User(**u) for u in data.get("users", [])]
except FileNotFoundError:
pass
def save_data(self):
data = {
"rooms": [room.to_dict() for room in self.rooms],
"users": [user.to_dict() for user in self.users]
}
with open("data.json", "w") as f:
json.dump(data, f, indent=4)
def add_room(self, room):
self.rooms.append(room)
def add_user(self, user):
self.users.append(user)
def assign_computer(self, user_id, computer_id):
user = self.find_user_by_id(user_id)
if not user:
self.log_manager.add_log(f"用户 {user_id} 不存在!", "ERROR")
return False
for room in self.rooms:
computer = room.get_computer_by_id(computer_id)
if computer and computer.status == "空闲":
computer.status = "使用中"
computer.last_used_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
self.log_manager.add_log(f"用户 {user.name} 使用了计算机 {computer_id}")
self.save_data()
return True
self.log_manager.add_log(f"计算机 {computer_id} 不可用或不存在!", "ERROR")
return False
def find_user_by_id(self, user_id):
for user in self.users:
if user.user_id == user_id:
return user
return None
def display_all_computers(self):
for room in self.rooms:
print(f"\n机房 ID: {room.room_id}")
for comp in room.computers:
print(f" 计算机 ID: {comp.computer_id}, 状态: {comp.status}")
def display_logs(self):
self.log_manager.load_logs()
for log in self.log_manager.logs:
print(f"{log['timestamp']} - {log['level']}: {log['message']}")
# 示例使用
if __name__ == "__main__":
system = System()
# 添加设备
room1 = Room("R001")
room1.add_computer(Computer("C001"))
room1.add_computer(Computer("C002"))
room2 = Room("R002")
room2.add_computer(Computer("C003"))
room2.add_computer(Computer("C004"))
system.add_room(room1)
system.add_room(room2)
# 添加用户
user1 = User("U001", "张三", "管理员")
user2 = User("U002", "李四")
system.add_user(user1)
system.add_user(user2)
# 测试分配计算机
system.assign_computer("U002", "C001")
system.assign_computer("U001", "C003")
# 显示所有设备状态
print("\n【当前设备状态】")
system.display_all_computers()
# 显示日志
print("\n【系统日志】")
system.display_logs()
# 保存数据
system.save_data()
以下是你可以进一步添加的可扩展功能,用于提升系统实用性:
如果你有具体的需求(比如需要对接数据库、Web界面、或者手机App),我也可以继续帮你扩展。欢迎私信或在评论区回复,我可以继续协助你完善系统。😊