/**
 * @file 学生成绩管理系统
 * @brief C语言学生成绩管理系统
 * @details 支持学生信息管理、成绩统计分析、用户权限控制的完整教务管理系统
 * @author 刘航宇
 * @date 2025-10-7
 * @version 4.2.0
 * @note
 * 1. v4.2.0新增功能（最新版本）：
 *    - 📦 安装包管理功能，支持Inno Setup和NSIS双重安装方案
 *    - 🎯 安装包自动化生成，一键创建Windows安装程序
 *    - 📁 安装包输出管理，统一输出到installer/dist目录
 *    - 🔧 安装脚本优化，支持自定义安装路径和组件选择
 * 2. v4.1.0功能特性：
 *    - 🏗️ 目录结构标准化，创建include/和src/目录分离头文件和源文件
 *    - ⚙️ 编译系统优化，更新Makefile支持新目录结构
 *    - 📝 文档同步更新，反映新的项目组织方式
 *    - 🎯 项目标准化提升，遵循业界标准的C项目目录布局
 * 3. v4.0.0功能特性：
 *    - 🔒 密码安全增强，实现SHA-256哈希算法替代明文存储
 *    - 🛡️ 缓冲区保护，修复所有溢出风险，替换不安全函数
 *    - ✅ 输入验证强化，加强所有用户输入的验证和边界检查
 *    - 🧹 内存安全管理，添加安全内存清除功能防止数据残留
 *    - 🔐 新增安全模块security_utils.c/h，提供完整安全工具库
 *    - 🎯 增强验证函数，支持课程名称、用户名、密码强度检查
 *    - 🏗️ 统一类型管理系统，创建types.h集中管理所有数据结构
 *    - 🔧 全局变量优化，将排序参数和统计缓存移至全局作用域
 *    - 📦 结构体定义重构，消除重复定义，提升代码一致性
 * 4. v2.2功能（前版本）：
 *    - 🧩 auxiliary.c完全模块化拆分，提升代码可维护性
 *    - ⚡ Makefile优化，支持直接编译模式，无需生成.o文件
 *    - 🔧 六大工具模块：io_utils、validation、string_utils、file_utils、math_utils、system_utils
 *    - 📦 模块化头文件管理，精确依赖控制
 *    - 🚀 编译效率优化，简化构建流程
 *    - 🏗️ 代码架构进一步优化，模块职责更加清晰
 * 5. v2.0-v2.1功能：
 *    - 📊 CSV格式数据存储，支持Excel直接编辑和查看
 *    - 🔗 模块化架构重构，核心功能独立封装
 *    - 🛡️ 完善的输入验证和数据校验机制
 *    - 📡 跨平台支持（Windows/Linux/macOS）
 *    - 🔧 全局变量统一管理，优化代码结构
 *    - 📋 宏定义统一管理，消除重复定义
 * 6. 核心管理功能：
 *    - 增加了对学生信息的完整CRUD操作支持
 *    - 新增了多维度成绩统计分析功能
 *    - 添加了用户权限管理，支持管理员和普通用户
 *    - 实现了数据持久化，支持CSV格式导入导出
 *    - 支持多门课程成绩管理和自动计算总分平均分
 * 3. 性能优化：
 *    - 🚀 优化了数据查询算法，提高大数据量处理效率
 *    - 🎨 改进了界面渲染，增加彩色输出和美观显示
 *    - 💾 增加了内存管理优化，避免内存泄漏问题
 *    - ⚡ 文件I/O优化，支持大容量数据快速读写
 *    - 🔍 智能搜索算法，支持模糊查询和多条件筛选
 * 4. 用户界面改进：
 *    - 🎮 美化了管理界面，增加了更多的视觉效果
 *    - ⌨️ 改进了用户交互体验，增加了输入提示和验证
 *    - 🔊 添加了操作反馈，提升用户操作体验
 *    - 💬 友好的错误提示和帮助信息
 *    - 📊 清晰的数据展示和统计图表
 * 5. 代码结构优化（v2.2重大更新）：
 *    - 🏗️ 重构了代码架构，采用分层设计模式
 *    - 📝 增加了详细的注释和文档，便于理解和修改
 *    - 🧩 采用了完全模块化设计，各功能模块完全独立
 *    - 🌍 新增核心处理器模块，统一业务逻辑管理
 *    - 🔧 全局状态统一管理，消除代码重复
 *    - 📋 配置文件标准化，支持灵活配置
 *    - ⚡ auxiliary.c拆分为6个专业模块，职责单一
 *    - 🎯 精确依赖管理，每个文件只包含必需的头文件
 *    - 🚀 编译系统优化，支持直接编译和增量编译两种模式
 * 6. 数据管理功能：
 *    - 📁 CSV格式数据存储，便于数据交换和备份
 *    - 🔍 支持按学号、姓名、成绩等多维度查询
 *    - 📊 丰富的统计分析功能，包括课程分析、成绩分布等
 *    - 🔄 数据排序功能，支持多种排序方式
 *    - 💾 自动数据备份和恢复机制
 * 7. 安全性增强：
 *    - 🛡️ 用户登录验证，支持多用户权限管理
 *    - 🔐 密码安全存储，防止明文泄露
 *    - 🚫 输入数据验证，防止非法数据录入
 *    - 🔒 文件访问权限控制，保护数据安全
 *    - 📋 操作日志记录，追踪用户行为
 * 8. 统计分析功能：
 *    - 📈 课程成绩统计，包括最高分、最低分、平均分
 *    - 📊 成绩分布分析，按分数段统计学生人数
 *    - 🏆 学生排名功能，支持总分和单科排名
 *    - 📉 成绩趋势分析，跟踪学生成绩变化
 *    - 🎯 综合评价体系，多维度评估学生表现
 * 9. 异常处理：
 *    - 🛡️ 增加了输入错误的异常处理机制，确保系统稳定性
 *    - 💡 优化了错误提示信息，帮助用户快速定位问题
 *    - 🔄 增加了程序崩溃恢复功能，提高系统可靠性
 *    - 📁 文件操作异常处理，防止数据丢失
 *    - 🔧 内存分配异常处理，确保程序稳定运行
 * 10. 文档更新：
 *    - 📚 更新了README文件，提供详细的安装和使用说明
 *    - 💬 增加了代码注释，提高代码的可读性
 *    - 👨‍💻 添加了开发者文档，便于后续的功能扩展
 *    - 📋 新增CSV格式使用指南和配置说明
 *    - 🔧 API文档完善，支持二次开发
 * 11. 版本控制：
 *    - 📦 使用Git进行版本控制，便于代码管理和协作开发
 *    - 🚀 建立了清晰的版本发布流程，确保代码质量
 *    - 🏷️ v2.0重大版本更新，CSV存储和模块化里程碑
 *    - 📋 完整的变更日志，追踪功能演进
 * 12. 测试：
 *    - ✅ 进行了全面的功能测试，确保各项功能正常运行
 *    - 🧪 增加了单元测试，提高代码的可靠性
 *    - ⚡ 进行了性能测试，优化了程序的运行效率
 *    - 📊 数据处理压力测试，确保大数据量处理稳定性
 *    - 🔒 安全性测试，验证用户权限和数据保护
 * 13. 跨平台支持：
 *    - 🖥️ Windows平台完全支持，包括PowerShell和CMD
 *    - 🐧 Linux平台兼容，支持各主流发行版
 *    - 🍎 macOS平台支持，确保跨平台一致性
 *    - 🔧 编译器兼容性，支持GCC、Clang等主流编译器
 *    - 📁 文件系统兼容，自动适配不同平台路径格式
 * 14. 数据格式支持：
 *    - 📊 CSV格式主存储，便于Excel等工具编辑
 *    - 📄 TXT格式用户数据，简单高效
 *    - 💾 二进制格式备份，确保数据完整性
 *    - 🔄 格式转换工具，支持多种数据格式互转
 *    - 📋 数据导入导出功能，便于数据迁移
 * 15. 开源协议：
 *    - 📄 选择了MIT开源协议，允许用户自由使用、修改和分发代码
 *    - 🤝 欢迎社区贡献，共同完善项目
 *    - 🌟 开源社区友好，支持二次开发和定制
 * 16. 系统架构：
 *    - 🏗️ 分层架构设计：UI层、业务逻辑层、数据访问层、安装包管理层、配置层
 *    - 🧩 模块化组件：学生管理、统计分析、用户管理、文件操作
 *    - 🔧 核心处理器：统一的业务逻辑处理中心
 *    - 📋 配置管理：集中的参数配置和宏定义管理
 *    - 🌍 全局状态：统一的全局变量和状态管理
 *    - 📦 安装包管理：Inno Setup和NSIS双重安装方案
 *    - 🏗️ 安装包管理层详解（v4.1.0新增）：
 *      • 安装脚本管理：统一的安装包生成脚本
 *      • Inno Setup方案：功能全面的现代化安装包
 *      • NSIS方案：轻量级高压缩率安装包
 *      • 路径管理：相对路径设计，支持目录重组
 *      • 输出管理：统一的安装包输出目录
 *      • 版本控制：安装包版本信息管理
 *      • 多语言支持：简体中文安装界面
 *      • 组件选择：可选择性安装不同组件
 *    - 🔧 配置层详解：
 *      • 头文件管理：统一的头文件目录结构
 *      • 类型定义：集中的数据类型定义 (types.h)
 *      • 系统配置：全局配置参数管理 (config.h)
 *      • 全局变量：统一的全局状态管理 (globals.h)
 *      • 宏定义：系统级宏定义和常量
 * 17. 功能模块详解（v2.2模块化架构）：
 *    - 👥 学生管理模块：增删改查、信息验证、数据校验
 *    - 📊 统计分析模块：多维度统计、图表展示、趋势分析
 *    - 🔐 用户管理模块：登录验证、权限控制、密码管理
 *    - 📁 文件操作模块：CSV读写、数据备份、格式转换
 *    - 🎨 界面显示模块：彩色输出、表格显示、交互优化
 *    - 🔧 工具模块详解：
 *      • io_utils: 输入输出、界面显示、用户交互
 *      • validation: 数据验证、输入校验、安全检查
 *      • string_utils: 字符串处理、文本操作、格式化
 *      • file_utils: 文件操作、目录管理、存在性检查
 *      • math_utils: 数学计算、统计函数、数值处理
 *      • system_utils: 系统初始化、资源管理、清理操作
 * 18. 贡献者：
 *    - 👨‍💻 感谢所有为项目做出贡献的开发者和用户
 *    - 🌟 特别感谢CSV格式开发和模块化重构的贡献者
 *    - 🧪 感谢测试团队的全面测试和反馈
 *    - 📝 感谢文档编写和维护的贡献者
 * 19. 技术栈：
 *    - 💻 编程语言：C语言（C11标准）
 *    - 🔧 编译器：GCC 4.8+、Clang、MSVC
 *    - 📁 数据存储：CSV文件、TXT文件
 *    - 🎨 界面技术：控制台彩色输出、ANSI转义序列
 *    - 🔧 构建工具：Makefile、GCC直接编译
 * 20. 未来规划：
 *    - 🌐 Web界面支持，提供浏览器访问方式
 *    - 📱 移动端适配，支持手机和平板设备
 *    - 🗄️ 数据库支持，集成MySQL、SQLite等数据库
 *    - 📊 高级统计功能，增加更多数据分析工具
 *    - 🔗 API接口开发，支持第三方系统集成
 * 21. 联系信息：
 *    - 📧 如有问题或建议，请联系开发团队
 *    - 🐛 Bug报告和功能建议欢迎通过GitHub Issues反馈
 *    - 💡 功能改进建议请详细描述使用场景和需求
 *    - 🤝 欢迎加入开发团队，共同完善项目
 *    - 📚 技术交流和学习资源分享
 *
 * 22. 贡献者：
 *    - 👨‍💻 感谢所有为项目做出贡献的开发者和用户
 *    - 🌟 特别感谢测试的贡献者
 * 23. 联系信息：
 *    - 📧 如有问题或建议，请联系开发者：
 *      - 3364451258@qq.com
 *      - 15236416560@163.com  
 *      - lhy3364451258@outlook.com
 *    - 🐛 Bug报告和功能建议欢迎通过邮件反馈
 *    - 💡 网络对战相关问题请详细描述网络环境
 * 
 * @copyright Copyright (c) 2025 学生成绩管理系统开发团队
 * @license MIT License
 * 
 * 编译命令（v4.2.0目录结构标准化版本）：
 * 方式1（推荐）：使用Makefile
 * make clean && make
 * 
 * 方式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
 * 
 * 安装包管理（v4.2.0新增）：
 * 方式1：Inno Setup安装包（推荐用于正式发布）
 * - 文件名：StudentGradeSystem_Inno_Setup.exe
 * - 特点：功能全面，现代化界面，支持组件选择
 * - 大小：约1.8MB
 * - 优势：安装体验好，支持多语言，卸载彻底
 * - 适用场景：正式软件发布，企业内部部署
 * - 生成命令：& "D:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer\installer.iss
 * 
 * 方式2：NSIS安装包（推荐用于快速分发）
 * - 文件名：StudentGradeSystem_NSIS_Setup.exe
 * - 特点：体积小巧，启动快速，压缩率高达39%
 * - 大小：约177KB
 * - 优势：下载快，占用空间小，适合网络分发
 * - 适用场景：在线下载，移动设备，网络受限环境
 * - 生成命令：& "D:\Program Files (x86)\NSIS\makensis.exe" installer\installer.nsi
 * 
 * 安装包特性：
 * - 许可证展示：安装过程显示MIT许可证
 * - 组件选择：可选择安装主程序、示例数据、帮助文档
 * - 快捷方式：自动创建桌面和开始菜单快捷方式
 * - 卸载程序：完整的卸载功能，清理注册表项
 * - 路径检测：自动检测和创建必要的目录结构
 * - 文件关联：可选择关联.csv文件类型（Inno Setup版本）
 * - 多语言支持：简体中文界面
 * - 数字签名：支持代码签名验证（Inno Setup版本）
 * - 极致压缩：39%的高压缩率（NSIS版本）
 * - 兼容性测试：支持Windows 7+所有版本
 * - 输出目录：installer/dist/
 * - 安装包测试：建议在发布前进行安装、功能、卸载、兼容性、权限测试
 * 
 * 运行命令：
 * ./student_system.exe (Windows)
 * ./student_system (Linux/macOS)
 * 
 * 默认登录信息：
 * 管理员 - 用户名：admin，密码：123456
 * 教师   - 用户名：teacher，密码：password
 * 
 * 项目目录结构（v4.2.0标准化）：
 * - 源文件：src/目录（所有.c文件）
 * - 头文件：include/目录（所有.h文件）
 * - 学生数据：data/students.csv
 * - 用户数据：data/users.txt
 * - 备份目录：backup/
 * - 文档目录：TXT/、MD/
 * 
 * 系统要求：
 * - 操作系统：Windows 7+、Linux、macOS
 * - 编译器：GCC 7.0+、Clang 5.0+、MSVC 2017+（支持C17标准）
 * - 内存：最少64MB可用内存
 * - 存储：最少10MB可用磁盘空间
 * - 终端：支持ANSI颜色代码的终端（推荐）
 * - 支持-Iinclude编译选项
 */