基于 C++ 控制台的学生信息管理系统(学习项目)。不使用 STL 容器:char* 手动管理字符串、自定义双向链表存储学生、qsort + 函数指针实现展示排序,练习指针、动态内存与回调机制。
| 文档 | 内容 |
|---|---|
| docs/REQUIREMENTS.md | 需求规格:数据模型、功能、校验规则 |
| docs/DESIGN.md | 总体设计:模块契约、内存所有权、关键流程 |
| docs/DEVELOPMENT.md | 开发方案:M1~M9 里程碑任务清单与验证 |
WSL (Ubuntu) / Linux:
sudo apt-get install -y build-essential cmake clang clang-format valgrindcmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build
./build/app内存检测(Valgrind,直接跑 Debug 构建):
valgrind --leak-check=full --show-leak-kinds=all --error-exitcode=1 ./build/app可选:sanitizer 构建(ASan+UBSan,与 Valgrind 不能同时使用):
cmake -S . -B build-asan -DCMAKE_BUILD_TYPE=Debug -DSMS_SANITIZE=ON
cmake --build build-asan
./build-asan/appclang-format -i src/*.cpp src/*.h
clang-format --dry-run --Werror src/*.cpp src/*.h规范见根目录 .clang-format(Google 基线),命名等编码约定见 docs/DEVELOPMENT.md 〇、通用约定。