``` txt his-project/ ├── CMakeLists.txt # 根构建配置 ├── data/ # 原始数据目录(评测时展示的文件) │ ├── patients.txt # 【存储JSON数组的文本文件】至少30条记录 │ ├── doctors.txt │ ├── wards.txt # 病房信息 │ └── medicines.txt # 药品库 ├── include/ # 头文件目录 (.h / .hpp) │ ├── models/ # 1. 纯数据实体层 (Entity) │ │ ├── patient.h │ │ ├── doctor.h │ │ └── medicine.h │ ├── utils/ # 2. 底层工具与驱动层 │ │ ├── linked_list.hpp # 【核心】全手写的泛型链表 template │ │ ├── file_manager.h # 文件读写封装 │ │ └── e2hang_json.h # 你的 C++20 JSON 解析库头文件 │ ├── core/ # 3. 核心业务层 (his-core) │ │ ├── his_context.h # 全局上下文(持有所有内存链表的实例) │ │ ├── patient_service.h # 处理挂号、看诊等纯逻辑 │ │ └── report_service.h # 报表统计算法 │ └── cli/ # 4. 交互表现层 (his-cli) │ ├── repl_shell.h # 交互式命令行主循环 │ └── format_printer.h # 负责把链表数据打印成漂亮的 ASCII 表格 ├── src/ # 源文件目录 (.cpp) => 源文件目录 (实现) │ ├── main.cpp # 程序唯一入口:负责初始化、启动 REPL 和退出保存 │ ├── models/ # 实体类方法实现 │ │ ├── patient.cpp # 患者属性操作及 JSON 序列化实现 │ │ ├── doctor.cpp # 医生属性操作 │ │ ├── ward.cpp # 病房/床位逻辑实现 │ │ └── medicine.cpp # 药品多名称匹配逻辑实现 │ ├── core/ # his-core:核心业务实现 (无输入输出) │ │ ├── his_context.cpp # 全局单例:管理所有内存链表的加载与保存 │ │ ├── patient_service.cpp # 实现挂号、诊疗记录、病历生成逻辑 [cite: 38] │ │ ├── inpatient_service.cpp # 实现住院分配、床位流转逻辑 [cite: 38] │ │ ├── pharmacy_service.cpp # 实现处方发药、库存增减、入库逻辑 [cite: 38] │ │ └── report_service.cpp # 实现多维度报表统计与数据分析算法 │ ├── utils/ # 基础设施实现 │ │ ├── file_manager.cpp # 处理 .txt 文件的物理读写 │ │ ├── input_sanitizer.cpp # 【鲁棒性核心】针对“测试工程师”的输入清洗 │ │ └── e2hang_json.cpp # 你的 C++20 JSON 解析库实现 │ └── cli/ # his-cli:命令行交互实现 │ ├── repl_shell.cpp # 交互式 Shell 主循环 (Read-Eval-Print Loop) │ ├── command_parser.cpp # 指令分发器:将输入映射到对应的 Service 函数 │ └── table_printer.cpp # 美化工具:将结果格式化为 ASCII 表格输出 └── tests/ # 测试用例目录(专门对付“测试工程师”) ├── test_linked_list.cpp # 必须先确保链表绝对可靠 └── test_core_logic.cpp # 灌入异常数据测试业务层鲁棒性 ```