import json
class RepairRecord:
def __init__(self, record_id, device_name, problem_description, repair_status, repair_date):
self.record_id = record_id
self.device_name = device_name
self.problem_description = problem_description
self.repair_status = repair_status
self.repair_date = repair_date
def to_dict(self):
return {
"record_id": self.record_id,
"device_name": self.device_name,
"problem_description": self.problem_description,
"repair_status": self.repair_status,
"repair_date": self.repair_date
}
class RepairRecordManager:
def __init__(self, filename="repair_records.json"):
self.filename = filename
self.records = self.load_records()
self.next_id = self.get_next_id()
def load_records(self):
try:
with open(self.filename, "r") as file:
records = json.load(file)
return [RepairRecord(**record) for record in records]
except FileNotFoundError:
return []
def save_records(self):
with open(self.filename, "w") as file:
json.dump([record.to_dict() for record in self.records], file, indent=4)
def get_next_id(self):
return len(self.records) + 1 if self.records else 1
def add_record(self, device_name, problem_description, repair_status="Pending"):
new_record = RepairRecord(self.next_id, device_name, problem_description, repair_status, "")
self.records.append(new_record)
self.save_records()
return new_record
def delete_record(self, record_id):
self.records = [record for record in self.records if record.record_id != record_id]
self.save_records()
def get_record(self, record_id):
for record in self.records:
if record.record_id == record_id:
return record
return None
def update_record(self, record_id, **kwargs):
record = self.get_record(record_id)
if record:
for key, value in kwargs.items():
setattr(record, key, value)
self.save_records()
def print_menu():
print("\n电子维修记录系统")
print("1. 添加维修记录")
print("2. 删除维修记录")
print("3. 查询维修记录")
print("4. 修改维修记录")
print("5. 退出")
def main():
manager = RepairRecordManager()
while True:
print_menu()
choice = input("请选择操作: ")
if choice == '1':
device_name = input("请输入设备名称: ")
problem_description = input("请输入问题描述: ")
new_record = manager.add_record(device_name, problem_description)
print(f"维修记录已添加: {new_record.record_id}, {new_record.device_name}")
elif choice == '2':
record_id = int(input("请输入要删除的维修记录ID: "))
manager.delete_record(record_id)
print("维修记录已删除(如果存在)")
elif choice == '3':
record_id = int(input("请输入要查询的维修记录ID: "))
record = manager.get_record(record_id)
if record:
print(f"维修记录详情: {record.to_dict()}")
else:
print("未找到该维修记录")
elif choice == '4':
record_id = int(input("请输入要修改的维修记录ID: "))
record = manager.get_record(record_id)
if record:
repair_status = input("请输入新的维修状态 (Pending, In Progress, Completed): ")
repair_date = input("请输入维修日期 (YYYY-MM-DD): ")
manager.update_record(record_id, repair_status=repair_status, repair_date=repair_date)
print("维修记录已修改")
else:
print("未找到该维修记录")
elif choice == '5':
print("退出系统")
break
else:
print("无效的选择,请重试")
if __name__ == "__main__":
main()