Files
ProgrammeHomework/q2

编程题 2:用户管理器

硬性要求:本题必须完成。 未完成的编程题不进入部门筛选流程。

题目描述

实现一个用户管理类,管理用户数据的增删查改,并支持 JSON 文件持久化。

每个用户是一个字典,形如 {"id": 1, "name": "张三", "age": 18}。id 由管理器自动分配,从 1 开始递增。

功能要求

该类需支持以下功能(方法命名、参数设计由你决定,需符合 Python 命名规范):

  • 添加用户(传入姓名和年龄),自动分配 id,返回该用户字典
  • 按 id 查询用户,不存在返回 None
  • 修改指定用户的年龄,成功返回 True,用户不存在返回 False
  • 删除指定用户,成功返回 True,用户不存在返回 False
  • 列出所有用户(按添加顺序)
  • 将所有用户保存为 JSON 文件
  • 从 JSON 文件加载用户,覆盖当前数据

行为示例

um = UserManager()
um.add_user("张三", 18)    →  {"id": 1, "name": "张三", "age": 18}
um.add_user("李四", 20)    →  {"id": 2, "name": "李四", "age": 20}
um.get_user(1)            →  {"id": 1, "name": "张三", "age": 18}
um.get_user(99)           →  None
um.update_age(1, 19)      →  True
um.remove_user(2)         →  True
um.remove_user(2)         →  False
um.list_users()           →  [{"id": 1, "name": "张三", "age": 19}]
um.save_to_json("users.json")
um2 = UserManager()
um2.load_from_json("users.json")
um2.list_users()          →  [{"id": 1, "name": "张三", "age": 19}]

约束与要求

  • 语言:Python 3
  • 实现文件:main.py(本目录下)
  • 保存/加载必须使用 json.dump / json.load
  • 文件操作必须指定 encoding="utf-8",ensure_ascii=False
  • 从文件加载后,后续添加用户的 id 应接续已加载的最大 id
  • 不得引入第三方库(标准库 json、os 可用)
  • 如有测试脚本,放在 test.py 中(该项作为可选项,如果完成会视测试规范度和完成度有一定的加分)

提交要求

  • 将代码放在本目录 q2/ 下
  • 必须包含 main.py,可执行或可被 import 后调用
  • 如有测试脚本,放在 test.py 中(该项作为可选项,如果完成会视测试规范度和完成度有一定的加分)
  • 保持过程性提交,最终代码需能直接运行