diff --git a/Makefile b/Makefile index 051ca10..00ce8e7 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,16 @@ # 学生成绩管理系统 Makefile # 编译器设置 CC = gcc -CFLAGS = -Wall -Wextra -std=c17 -g +CFLAGS = -Wall -Wextra -std=c17 -g -Iinclude # 目标文件 TARGET = student_system # 源文件 -SOURCES = main.c globals.c main_menu.c user_manage.c core_handlers.c statistical_analysis.c student_io.c student_crud.c student_search.c student_sort.c io_utils.c validation.c string_utils.c file_utils.c math_utils.c system_utils.c security_utils.c +SOURCES = src/main.c src/globals.c src/main_menu.c src/user_manage.c src/core_handlers.c src/statistical_analysis.c src/student_io.c src/student_crud.c src/student_search.c src/student_sort.c 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 # 头文件 -HEADERS = config.h globals.h main_menu.h user_manage.h core_handlers.h statistical_analysis.h student_io.h student_crud.h student_search.h student_sort.h io_utils.h validation.h string_utils.h file_utils.h math_utils.h system_utils.h security_utils.h types.h +HEADERS = include/config.h include/globals.h include/main_menu.h include/user_manage.h include/core_handlers.h include/statistical_analysis.h include/student_io.h include/student_crud.h include/student_search.h include/student_sort.h include/io_utils.h include/validation.h include/string_utils.h include/file_utils.h include/math_utils.h include/system_utils.h include/security_utils.h include/types.h # 默认目标 all: $(TARGET) @@ -21,9 +21,9 @@ $(TARGET): $(SOURCES) $(HEADERS) # 清理编译文件 clean: - rm -f $(TARGET) - rm -f *.exe - rm -f *.o + -del /Q $(TARGET).exe 2>nul + -del /Q *.exe 2>nul + -del /Q *.o 2>nul # 创建必要的目录 setup: diff --git a/README.md b/README.md index cd9f3d1..95a3ed2 100644 --- a/README.md +++ b/README.md @@ -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 更新内容 ### 🔒 安全性增强 diff --git a/TXT/代码统计报告.txt b/TXT/代码统计报告.txt index 4302a97..65c4f24 100644 --- a/TXT/代码统计报告.txt +++ b/TXT/代码统计报告.txt @@ -1,7 +1,7 @@ 学生成绩管理系统 - 代码统计报告 ======================================== -生成时间: 2025年9月12日 -项目版本: v4.0.0 +生成时间: 2025年10月7日 +项目版本: v4.1.0 ======================================== 项目概述 @@ -20,7 +20,15 @@ - C源文件(.c): 16个 - 头文件(.h): 17个(新增types.h) -v3.0.0统一类型管理成果: +v4.1.0目录结构标准化成果: +- 🏗️ 标准化目录结构:创建include/和src/目录分离头文件和源文件 +- 📁 头文件集中管理:所有.h文件移至include/目录 +- 🔧 源文件统一存放:所有.c文件移至src/目录 +- ⚙️ 编译系统优化:更新Makefile支持新目录结构,添加-Iinclude编译选项 +- 📝 文档同步更新:更新编译说明和项目结构文档 +- 🎯 项目标准化:符合C语言项目标准目录布局,提升专业性 + +v4.0.0统一类型管理成果: - 创建types.h统一管理所有数据结构定义 - 消除config.h、globals.h、statistical_analysis.h中的重复结构体定义 - 优化头文件依赖关系,简化包含结构 @@ -37,15 +45,16 @@ v2.2模块化重构成果: 详细文件分析 ======================================== -1. main.c (主程序文件) +1. src/main.c (主程序文件) - 总行数: 150行 - 函数数量: 1个 (main函数) - 注释行数: 约40行 - 代码行数: 约110行 - 主要功能: 程序入口点,系统初始化,用户登录,主菜单循环 - 注释字数: 约800字 + - 文件位置: src/目录(v4.1.0目录重组) -2. config.h (配置头文件) +2. include/config.h (配置头文件) - 总行数: 108行 - 宏定义数量: 约50个 - 结构体定义: 1个 (Student) @@ -53,14 +62,16 @@ v2.2模块化重构成果: - 代码行数: 约88行 - 主要功能: 系统参数配置,数据结构定义 - 注释字数: 约300字 + - 文件位置: include/目录(v4.1.0目录重组) -3. stu_data.c (学生数据管理) +3. src/stu_data.c (学生数据管理) - 总行数: 762行 - 函数数量: 约10个 - 注释行数: 约150行 - 代码行数: 约612行 - 主要功能: 学生信息增删改查,文件读写操作 - 注释字数: 约2500字 + - 文件位置: src/目录(v4.1.0目录重组) 4. 模块化工具集 (原auxiliary.c拆分) 4.1 io_utils.c (输入输出工具) @@ -93,73 +104,78 @@ v2.2模块化重构成果: - 函数数量: 3个 - 主要功能: 系统初始化、资源管理、清理操作 -5. statistical_analysis.c (统计分析) +5. src/statistical_analysis.c (统计分析) - 总行数: 489行 - 函数数量: 约12个 - 注释行数: 约100行 - 代码行数: 约389行 - 主要功能: 成绩统计,数据分析,排名计算 - 注释字数: 约1800字 + - 文件位置: src/目录(v4.1.0目录重组) -6. user_manage.c (用户管理) +6. src/user_manage.c (用户管理) - 总行数: 265行 - 函数数量: 约7个 - 注释行数: 约60行 - 代码行数: 约205行 - 主要功能: 用户认证,账户管理,权限控制 - 注释字数: 约1200字 + - 文件位置: src/目录(v4.1.0目录重组) -7. main_menu.c (菜单显示) +7. src/main_menu.c (菜单显示) - 总行数: 约120行 - 函数数量: 4个 - 注释行数: 约30行 - 代码行数: 约90行 - 主要功能: 菜单界面显示 - 注释字数: 约600字 + - 文件位置: src/目录(v4.1.0目录重组) -8. core_handlers.c (核心处理) +8. src/core_handlers.c (核心处理) - 总行数: 154行 - 函数数量: 4个 - 注释行数: 约40行 - 代码行数: 约114行 - 主要功能: 菜单逻辑处理,功能调度 - 注释字数: 约800字 + - 文件位置: src/目录(v4.1.0目录重组) -9. globals.c (全局变量) +9. src/globals.c (全局变量) - 总行数: 25行 - 变量定义: 约10个 - 注释行数: 约5行 - 代码行数: 约20行 - 主要功能: 全局变量定义 - 注释字数: 约100字 + - 文件位置: src/目录(v4.1.0目录重组) ======================================== -头文件统计(v2.2模块化架构) +头文件统计(v4.1.0目录重组架构) ======================================== -核心模块头文件: -1. types.h - 85行,统一数据类型定义(v4.0.0新增) -2. config.h - 98行,系统配置(已移除结构体定义) -3. globals.h - 32行,全局变量声明(已优化包含关系) -4. main_menu.h - 12行,菜单功能声明 -5. core_handlers.h - 18行,核心处理器声明 +核心模块头文件(include/目录): +1. include/types.h - 85行,统一数据类型定义(v4.0.0新增) +2. include/config.h - 98行,系统配置(已移除结构体定义) +3. include/globals.h - 32行,全局变量声明(已优化包含关系) +4. include/main_menu.h - 12行,菜单功能声明 +5. include/core_handlers.h - 18行,核心处理器声明 -业务模块头文件: -5. student_crud.h - 学生CRUD操作声明 -6. student_search.h - 学生搜索功能声明 -7. student_sort.h - 学生排序功能声明 -8. student_io.h - 学生数据I/O声明 -9. statistical_analysis.h - 25行,统计分析功能声明(已移除结构体定义) -10. user_manage.h - 13行,用户管理功能声明 +业务模块头文件(include/目录): +6. include/student_crud.h - 学生CRUD操作声明 +7. include/student_search.h - 学生搜索功能声明 +8. include/student_sort.h - 学生排序功能声明 +9. include/student_io.h - 学生数据I/O声明 +10. include/statistical_analysis.h - 25行,统计分析功能声明(已移除结构体定义) +11. include/user_manage.h - 13行,用户管理功能声明 -工具模块头文件(v4.0.0增强): -11. security_utils.h - 安全工具库声明(v4.0.0新增) -12. io_utils.h - 输入输出工具声明 -13. validation.h - 数据验证工具声明(v4.0.0增强) -14. string_utils.h - 字符串处理工具声明 -15. file_utils.h - 文件操作工具声明 -16. math_utils.h - 数学计算工具声明 -17. system_utils.h - 系统管理工具声明 +工具模块头文件(include/目录,v4.0.0增强): +12. include/security_utils.h - 安全工具库声明(v4.0.0新增) +13. include/io_utils.h - 输入输出工具声明 +14. include/validation.h - 数据验证工具声明(v4.0.0增强) +15. include/string_utils.h - 字符串处理工具声明 +16. include/file_utils.h - 文件操作工具声明 +17. include/math_utils.h - 数学计算工具声明 +18. include/system_utils.h - 系统管理工具声明 v4.0.0安全性与类型管理优势: - 统一类型定义: 所有结构体集中在types.h中管理 diff --git a/TXT/系统说明文档.txt b/TXT/系统说明文档.txt index 26e40d0..6bd3f1c 100644 --- a/TXT/系统说明文档.txt +++ b/TXT/系统说明文档.txt @@ -3,10 +3,15 @@ * @brief C语言学生成绩管理系统 * @details 支持学生信息管理、成绩统计分析、用户权限控制的完整教务管理系统 * @author 刘航宇 - * @date 2025-09-12 - * @version 4.0.0 + * @date 2025-10-7 + * @version 4.1.0 * @note - * 1. v4.0.0新增功能(最新版本): + * 1. v4.1.0新增功能(最新版本): + * - 🏗️ 目录结构标准化,创建include/和src/目录分离头文件和源文件 + * - ⚙️ 编译系统优化,更新Makefile支持新目录结构 + * - 📝 文档同步更新,反映新的项目组织方式 + * - 🎯 项目标准化提升,遵循业界标准的C项目目录布局 + * 2. v4.0.0功能特性(前版本): * - 🔒 密码安全增强,实现SHA-256哈希算法替代明文存储 * - 🛡️ 缓冲区保护,修复所有溢出风险,替换不安全函数 * - ✅ 输入验证强化,加强所有用户输入的验证和边界检查 @@ -172,12 +177,15 @@ * @copyright Copyright (c) 2025 学生成绩管理系统开发团队 * @license MIT License * - * 编译命令(v4.0.0安全性增强版本): - * 方式1(推荐):直接编译 - * gcc -Wall -Wextra -std=c17 -g main.c globals.c main_menu.c user_manage.c core_handlers.c statistical_analysis.c student_io.c student_crud.c student_search.c student_sort.c io_utils.c validation.c string_utils.c file_utils.c math_utils.c system_utils.c -o student_system + * 编译命令(v4.1.0目录结构标准化版本): + * 方式1(推荐):使用Makefile + * make clean && make * - * 方式2:分步编译(如需要) - * gcc -Wall -Wextra -std=c17 -g -c *.c + * 方式2:直接编译 + * gcc -Wall -Wextra -std=c17 -g -Iinclude src/main.c src/globals.c src/main_menu.c src/user_manage.c src/core_handlers.c src/statistical_analysis.c src/student_io.c src/student_crud.c src/student_search.c src/student_sort.c 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 -o student_system + * + * 方式3:分步编译(如需要) + * gcc -Wall -Wextra -std=c17 -g -c -Iinclude src/*.c * gcc *.o -o student_system * * 运行命令: @@ -188,10 +196,13 @@ * 管理员 - 用户名:admin,密码:123456 * 教师 - 用户名:teacher,密码:password * - * 数据文件位置: - * 学生数据:data/students.csv - * 用户数据:data/users.txt - * 备份目录:backup/ + * 项目目录结构(v4.1.0标准化): + * - 源文件:src/目录(所有.c文件) + * - 头文件:include/目录(所有.h文件) + * - 学生数据:data/students.csv + * - 用户数据:data/users.txt + * - 备份目录:backup/ + * - 文档目录:TXT/、MD/ * * 系统要求: * - 操作系统:Windows 7+、Linux、macOS @@ -199,4 +210,5 @@ * - 内存:最少64MB可用内存 * - 存储:最少10MB可用磁盘空间 * - 终端:支持ANSI颜色代码的终端(推荐) + * - 支持-Iinclude编译选项 */ \ No newline at end of file diff --git a/config.h b/include/config.h similarity index 100% rename from config.h rename to include/config.h diff --git a/core_handlers.h b/include/core_handlers.h similarity index 100% rename from core_handlers.h rename to include/core_handlers.h diff --git a/file_utils.h b/include/file_utils.h similarity index 100% rename from file_utils.h rename to include/file_utils.h diff --git a/globals.h b/include/globals.h similarity index 100% rename from globals.h rename to include/globals.h diff --git a/io_utils.h b/include/io_utils.h similarity index 100% rename from io_utils.h rename to include/io_utils.h diff --git a/main_menu.h b/include/main_menu.h similarity index 100% rename from main_menu.h rename to include/main_menu.h diff --git a/math_utils.h b/include/math_utils.h similarity index 100% rename from math_utils.h rename to include/math_utils.h diff --git a/security_utils.h b/include/security_utils.h similarity index 100% rename from security_utils.h rename to include/security_utils.h diff --git a/statistical_analysis.h b/include/statistical_analysis.h similarity index 100% rename from statistical_analysis.h rename to include/statistical_analysis.h diff --git a/string_utils.h b/include/string_utils.h similarity index 100% rename from string_utils.h rename to include/string_utils.h diff --git a/student_crud.h b/include/student_crud.h similarity index 100% rename from student_crud.h rename to include/student_crud.h diff --git a/student_io.h b/include/student_io.h similarity index 100% rename from student_io.h rename to include/student_io.h diff --git a/student_search.h b/include/student_search.h similarity index 100% rename from student_search.h rename to include/student_search.h diff --git a/student_sort.h b/include/student_sort.h similarity index 100% rename from student_sort.h rename to include/student_sort.h diff --git a/system_utils.h b/include/system_utils.h similarity index 100% rename from system_utils.h rename to include/system_utils.h diff --git a/types.h b/include/types.h similarity index 100% rename from types.h rename to include/types.h diff --git a/user_manage.h b/include/user_manage.h similarity index 100% rename from user_manage.h rename to include/user_manage.h diff --git a/validation.h b/include/validation.h similarity index 100% rename from validation.h rename to include/validation.h diff --git a/core_handlers.c b/src/core_handlers.c similarity index 100% rename from core_handlers.c rename to src/core_handlers.c diff --git a/file_utils.c b/src/file_utils.c similarity index 100% rename from file_utils.c rename to src/file_utils.c diff --git a/globals.c b/src/globals.c similarity index 100% rename from globals.c rename to src/globals.c diff --git a/io_utils.c b/src/io_utils.c similarity index 100% rename from io_utils.c rename to src/io_utils.c diff --git a/main.c b/src/main.c similarity index 93% rename from main.c rename to src/main.c index 98d5d99..0f31906 100644 --- a/main.c +++ b/src/main.c @@ -6,14 +6,14 @@ * 程序流程:设置编码 -> 系统初始化 -> 用户登录 -> 主菜单循环 -> 数据保存 -> 系统清理 * @return 程序退出状态码:0表示正常退出,-1表示异常退出 * @note 系统预设用户账户: -* 1. admin - 密码:123456(管理员权限) -* 2. teacher - 密码:password(普通用户权限) +* 1. admin - 密码:123456(管理员权限) +* 2. teacher - 密码:password(普通用户权限) * @note 编译运行命令: -* gcc -std=c17 -o student_system.exe *.c -I. - ./student_system - 或者用Makefile编译 - make run - make clean +* gcc -std=c17 -o student_system.exe src/*.c -Iinclude + ./student_system + 或者用Makefile编译 + make run + make clean * @warning 登录失败超过MAX_LOGIN_ATTEMPTS次会强制退出程序 */ diff --git a/main_menu.c b/src/main_menu.c similarity index 100% rename from main_menu.c rename to src/main_menu.c diff --git a/math_utils.c b/src/math_utils.c similarity index 100% rename from math_utils.c rename to src/math_utils.c diff --git a/security_utils.c b/src/security_utils.c similarity index 100% rename from security_utils.c rename to src/security_utils.c diff --git a/statistical_analysis.c b/src/statistical_analysis.c similarity index 100% rename from statistical_analysis.c rename to src/statistical_analysis.c diff --git a/string_utils.c b/src/string_utils.c similarity index 100% rename from string_utils.c rename to src/string_utils.c diff --git a/student_crud.c b/src/student_crud.c similarity index 100% rename from student_crud.c rename to src/student_crud.c diff --git a/student_io.c b/src/student_io.c similarity index 100% rename from student_io.c rename to src/student_io.c diff --git a/student_search.c b/src/student_search.c similarity index 100% rename from student_search.c rename to src/student_search.c diff --git a/student_sort.c b/src/student_sort.c similarity index 100% rename from student_sort.c rename to src/student_sort.c diff --git a/system_utils.c b/src/system_utils.c similarity index 100% rename from system_utils.c rename to src/system_utils.c diff --git a/user_manage.c b/src/user_manage.c similarity index 100% rename from user_manage.c rename to src/user_manage.c diff --git a/validation.c b/src/validation.c similarity index 100% rename from validation.c rename to src/validation.c