Files
ProgrammeHomework/q2/README.md

57 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 编程题 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` 中(该项作为可选项,如果完成会视测试规范度和完成度有一定的加分)
- 保持过程性提交,最终代码需能直接运行