v4.1.0: 目录结构标准化 - 创建include/src目录分离头文件和源文件

This commit is contained in:
2025-10-07 23:27:53 +08:00
parent 53964df405
commit 0894171ae0
39 changed files with 176 additions and 107 deletions
+90 -49
View File
@@ -23,6 +23,7 @@
- **用户管理**:多用户登录、权限控制
### 🔧 技术特性
- **标准化目录结构**:v4.1.0版本采用业界标准的include/src目录布局
- **统一类型管理**v4.0.0版本创建types.h统一管理所有数据结构
- **全局变量优化**:排序参数和统计缓存移至全局作用域,提升性能
- **高度模块化**:v2.2版本完成深度模块化重构,功能模块职责清晰
@@ -36,31 +37,33 @@
## 🏗️ 系统架构
```
学生成绩管理系统 (v4.0.0 统一类型管理架构)
学生成绩管理系统 (v4.1.0 标准化目录架构)
├── 用户界面层 (UI Layer)
│ ├── 主菜单 (main_menu.c)
│ └── 学生IO操作 (student_io.c)
│ ├── 主菜单 (src/main_menu.c)
│ └── 学生IO操作 (src/student_io.c)
├── 业务逻辑层 (Business Layer)
│ ├── 核心处理器 (core_handlers.c)
│ ├── 学生数据管理 (stu_data.c)
│ ├── 学生CRUD操作 (student_crud.c)
│ ├── 学生搜索 (student_search.c)
│ ├── 统计分析 (statistical_analysis.c)
│ └── 用户管理 (user_manage.c)
│ ├── 核心处理器 (src/core_handlers.c)
│ ├── 学生CRUD操作 (src/student_crud.c)
│ ├── 学生搜索 (src/student_search.c)
│ ├── 学生排序 (src/student_sort.c)
│ ├── 统计分析 (src/statistical_analysis.c)
│ └── 用户管理 (src/user_manage.c)
├── 工具库层 (Utility Layer)
│ ├── IO工具 (io_utils.c)
│ ├── 验证工具 (validation.c)
│ ├── 字符串工具 (string_utils.c)
│ ├── 文件工具 (file_utils.c)
│ ├── 数学工具 (math_utils.c)
── 系统工具 (system_utils.c)
│ ├── IO工具 (src/io_utils.c)
│ ├── 验证工具 (src/validation.c)
│ ├── 字符串工具 (src/string_utils.c)
│ ├── 文件工具 (src/file_utils.c)
│ ├── 数学工具 (src/math_utils.c)
── 系统工具 (src/system_utils.c)
│ └── 安全工具 (src/security_utils.c)
├── 数据访问层 (Data Layer)
│ ├── CSV文件操作
│ └── 数据验证
└── 配置层 (Config Layer)
├── 统一类型定义 (types.h) - v4.0.0新增
├── 系统配置 (config.h)
── 全局变量 (globals.c/h)
├── 头文件目录 (include/) - v4.1.0标准化
├── 统一类型定义 (include/types.h)
── 系统配置 (include/config.h)
└── 全局变量 (include/globals.h)
```
## 🚀 安装与编译
@@ -80,7 +83,7 @@ cd Stu_scores_system
2. **使用GCC编译**
```bash
gcc -o student_system.exe main.c student_crud.c student_search.c student_sort.c user_manage.c main_menu.c student_io.c core_handlers.c statistical_analysis.c io_utils.c validation.c string_utils.c file_utils.c math_utils.c system_utils.c globals.c
gcc -Wall -Wextra -std=c17 -g -Iinclude -o student_system src/main.c src/core_handlers.c src/file_utils.c src/globals.c src/io_utils.c src/main_menu.c src/math_utils.c src/security_utils.c src/statistical_analysis.c src/string_utils.c src/student_crud.c src/student_io.c src/student_search.c src/student_sort.c src/system_utils.c src/user_manage.c src/validation.c
```
3. **使用Makefile编译(v4.0.0优化版)**
@@ -147,40 +150,57 @@ teacher:password:0
## 📁 项目结构
```
Stu_scores_system/ (v4.0.0 统一类型管理结构)
├── 📁 .idea/ # IntelliJ IDEA配置目录
├── 📁 .vscode/ # VS Code配置目录
Stu_scores_system/ (v4.1.0 标准化目录结构)
├── 📁 data/ # 数据文件目录
│ ├── students.csv # 学生数据(CSV格式)
│ └── users.txt # 用户数据
├── 📁 backup/ # 备份目录
├── 📁 build/ # 编译输出目录
├── 📁 include/ # 头文件目录
│ ├── config.h # 系统配置
│ ├── core_handlers.h # 核心处理器
│ ├── file_utils.h # 文件操作工具库
│ ├── globals.h # 全局变量管理
│ ├── io_utils.h # IO工具库
│ ├── main_menu.h # 菜单系统
│ ├── math_utils.h # 数学计算工具库
│ ├── security_utils.h # 安全工具库
│ ├── statistical_analysis.h # 统计分析功能
│ ├── string_utils.h # 字符串工具库
│ ├── student_crud.h # 学生CRUD操作
│ ├── student_io.h # 学生IO操作
│ ├── student_search.h # 学生搜索功能
│ ├── student_sort.h # 学生排序功能
│ ├── system_utils.h # 系统工具库
│ ├── types.h # 统一数据类型定义
│ ├── user_manage.h # 用户管理
│ └── validation.h # 数据验证工具库
├── 📁 src/ # 源文件目录
│ ├── core_handlers.c # 核心处理器
│ ├── file_utils.c # 文件操作工具库
│ ├── globals.c # 全局变量管理
│ ├── io_utils.c # IO工具库
│ ├── main.c # 主程序入口
│ ├── main_menu.c # 菜单系统
│ ├── math_utils.c # 数学计算工具库
│ ├── security_utils.c # 安全工具库
│ ├── statistical_analysis.c # 统计分析功能
│ ├── string_utils.c # 字符串工具库
│ ├── student_crud.c # 学生CRUD操作
│ ├── student_io.c # 学生IO操作
│ ├── student_search.c # 学生搜索功能
│ ├── student_sort.c # 学生排序功能
│ ├── system_utils.c # 系统工具库
│ ├── user_manage.c # 用户管理
│ └── validation.c # 数据验证工具库
├── 📁 MD/ # 文档目录
│ ├── README.md # 项目说明
│ └── CSV_FORMAT.md # CSV格式说明
├── 📁 TXT/ # 文本文档目录
│ ├── 系统说明文档.txt # 系统详细说明
│ ├── 代码统计报告.txt # 代码统计分析
│ └── 要求.txt # 需求文档
├── 📄 main.c # 主程序入口
├── 📄 types.h # 统一数据类型定义(v4.0.0新增)
├── 📄 config.h # 系统配置
├── 📄 globals.c/h # 全局变量管理
├── 📄 student_crud.c/h # 学生CRUD操作
├── 📄 student_search.c/h # 学生搜索功能
├── 📄 student_sort.c/h # 学生排序功能
├── 📄 student_io.c/h # 学生IO操作
├── 📄 statistical_analysis.c/h # 统计分析功能
├── 📄 user_manage.c/h # 用户管理
├── 📄 main_menu.c/h # 菜单系统
├── 📄 core_handlers.c/h # 核心处理器
├── 📄 io_utils.c/h # IO工具库
├── 📄 validation.c/h # 数据验证工具库
├── 📄 string_utils.c/h # 字符串工具库
├── 📄 file_utils.c/h # 文件操作工具库
├── 📄 math_utils.c/h # 数学计算工具库
├── 📄 system_utils.c/h # 系统工具库
├── 📄 Makefile # 编译配置(v4.0.0优化版)
├── 📄 .gitignore # Git忽略文件配置
├── 📄 LICENSE # 许可证文件
├── 📄 Makefile # 编译配置(v4.1.0优化版)
├── 📄 README.md # 项目说明文档
└── 📄 student_system.exe # 编译生成的可执行文件
```
@@ -194,11 +214,19 @@ Stu_scores_system/ (v4.0.0 统一类型管理结构)
- 模块化设计,职责分离
### 添加新功能
1. 在相应模块文件中添加函数实现
2. 在对应头文件中添加函数声明
1. `src/` 目录的相应模块文件中添加函数实现
2. `include/` 目录的对应头文件中添加函数声明
3. 在菜单系统中添加选项
4. 更新配置文件(如需要)
5. 编写测试用例
5. 使用 `make clean && make` 重新编译
6. 编写测试用例
### 目录结构说明
- **src/**:存放所有 `.c` 源文件,包含函数的具体实现
- **include/**:存放所有 `.h` 头文件,包含函数声明和数据结构定义
- **data/**:存放程序运行时的数据文件(CSV、TXT等)
- **MD/**:存放Markdown格式的文档文件
- **TXT/**:存放文本格式的说明文档
### 核心数据结构
@@ -290,7 +318,7 @@ typedef struct {
## 🐛 常见问题
### Q: 编译时出现错误怎么办?
A: 确保所有源文件都在同一目录下,并检查GCC版本是否支持C99标准
A: 确保源文件`src/` 目录下,头文件在 `include/` 目录下,并检查GCC版本是否支持C17标准。使用 `make clean && make` 重新编译
### Q: 数据文件损坏怎么办?
A: 可以从backup目录恢复备份文件,或者手动编辑CSV文件修复数据。
@@ -326,10 +354,23 @@ A: 按照CSV格式要求编辑 `data/students.csv` 文件,程序会自动读
---
**版本**: v4.0.0
**版本**: v4.1.0
**最后更新**: 2025年
**状态**: 稳定版本
## 🆕 v4.1.0 更新内容
### 📁 标准化目录结构
- **目录重组**:将源文件和头文件分别组织到 `src/``include/` 目录
- **编译优化**:更新 Makefile 以支持新的目录结构,添加 `-Iinclude` 编译选项
- **项目标准化**:采用业界标准的C项目目录布局,提升项目专业性
- **维护性提升**:清晰的文件组织结构,便于代码管理和团队协作
### 🔧 编译系统改进
- **GCC命令更新**:编译命令适配新的目录结构,包含完整的编译选项
- **Makefile增强**:支持跨平台编译,Windows兼容性改进
- **文档同步**:README.md项目结构图完全更新,反映最新的目录组织
## 🆕 v4.0.0 更新内容
### 🔒 安全性增强