编辑代码

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  # 'Pending', 'In Progress', 'Completed'
        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()