# 学生信息管理系统 **Repository Path**: development_repo/student-information-hub ## Basic Information - **Project Name**: 学生信息管理系统 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-28 - **Last Updated**: 2025-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生信息管理系统 (Student Management System) 一个基于Java开发的完整学生信息管理系统,采用面向对象设计和多种设计模式,提供完整的CRUD功能和数据持久化支持。 ![Java](https://img.shields.io/badge/Java-17%2B-blue) ![Design Patterns](https://img.shields.io/badge/Design%20Patterns-3-brightgreen) ![License](https://img.shields.io/badge/License-MIT-lightgrey) ## 📋 项目简介 这是一个功能完整的学生信息管理系统,实现了学生信息的增删改查、文件存储、操作历史记录等功能。项目采用模块化设计,应用了三种经典设计模式,代码结构清晰,易于维护和扩展。 ## ✨ 功能特性 ### 核心功能 - ✅ **学生信息管理** - 完整的CRUD操作(增删改查) - ✅ **数据持久化** - 支持文本文件和二进制文件存储 - ✅ **操作历史** - 记录最近操作,支持撤销功能 - ✅ **多条件查询** - 按学号精确查询学生信息 - ✅ **批量操作** - 查看所有学生信息 ### 数据模型 - 🎯 **学生信息**:学号、姓名、专业 - 🏠 **家庭地址**:省、市、街道(独立地址类) - 💾 **文件支持**:文本格式初始化,二进制格式持久化 ## 🏗️ 系统架构 ### 设计模式应用 | 模式 | 应用场景 | 实现类 | |------|----------|--------| | **单例模式** | 学生管理器全局唯一实例 | `StudentManager` | | **策略模式** | 多种文件持久化方式 | `PersistenceStrategy` | | **命令模式** | 操作历史记录和撤销 | `Command` 接口 | ### 项目结构 ``` StudentManagementSystem/ ├── src/ │ ├── model/ # 数据模型 │ │ ├── Student.java # 学生类 │ │ └── Address.java # 地址类 │ ├── strategy/ # 策略模式 │ │ ├── PersistenceStrategy.java │ │ ├── TextFileStrategy.java │ │ └── BinaryFileStrategy.java │ ├── command/ # 命令模式 │ │ ├── Command.java │ │ ├── AddStudentCommand.java │ │ ├── DeleteStudentCommand.java │ │ └── UpdateStudentCommand.java │ ├── manager/ # 单例模式 │ │ └── StudentManager.java │ └── StudentManagementSystem.java # 主程序 ├── students.txt # 示例数据文件 ├── students.dat # 二进制数据文件 └── README.md ``` ## 🚀 快速开始 ### 环境要求 - **JDK**: 8 或更高版本 - **操作系统**: Windows / Linux / macOS ### 运行方式 #### 方法一:使用批处理文件(Windows) ```bash 双击运行 run.bat ``` #### 方法二:命令行运行 ```bash java -jar StudentManagementSystem.jar ``` #### 方法三:在IDE中运行 1. 导入项目到IntelliJ IDEA 2. 运行 `StudentManagementSystem.java` ### 首次使用 1. 系统会自动创建示例数据文件 `students.txt` 2. 选择菜单选项开始使用系统功能 ## 📖 使用指南 ### 主菜单功能 ``` === 学生信息管理系统 === 1. 从 students.txt 初始化数据 2. 添加学生 3. 删除学生(按学号) 4. 修改学生(按学号) 5. 查询学生(按学号) 6. 查看所有学生 7. 查看最近操作(栈顶10条) 8. 保存数据到 students.dat 9. 从 students.dat 加载数据 0. 退出 ``` ### 操作示例 1. **添加学生**:输入学号、姓名、专业和详细地址信息 2. **查询学生**:通过学号快速定位学生信息 3. **批量管理**:查看格式化的所有学生信息表格 4. **数据持久化**:定期保存数据到二进制文件 ## 🔧 技术细节 ### 数据持久化策略 #### 文本文件格式 (`students.txt`) ``` 学号,姓名,专业,省份,城市,街道 001,张三,计算机科学,北京市,海淀区,中关村大街 ``` #### 二进制格式 (`students.dat`) - 使用Java序列化机制 - 更高的存储效率和安全性 - 自动处理对象关系 ### 地址信息设计 ```java public class Address { private String province; // 省份 private String city; // 城市 private String street; // 街道 } ``` ## 📊 示例数据 系统预置的示例数据: | 学号 | 姓名 | 专业 | 地址 | |------|------|------|------| | 001 | 张三 | 计算机科学 | 北京市 海淀区 中关村大街 | | 002 | 李四 | 软件工程 | 上海市 浦东新区 张江高科 | | 003 | 王五 | 人工智能 | 广东省 深圳市 南山区 | | 004 | 赵六 | 数据科学 | 浙江省 杭州市 西湖区 | | 005 | 钱七 | 网络安全 | 江苏省 南京市 鼓楼区 | ## 🛠️ 开发指南 ### 扩展新功能 1. **添加新命令**:实现 `Command` 接口 2. **新增存储策略**:实现 `PersistenceStrategy` 接口 3. **扩展学生信息**:修改 `Student` 和 `Address` 类 ### 编译和打包 ```bash # 使用Maven构建 mvn clean package # 或使用IDEA构建Artifacts Build → Build Artifacts → Rebuild ``` ## 📝 版本历史 ### v1.0.0 - ✅ 基础CRUD功能实现 - ✅ 三种设计模式应用 - ✅ 双格式文件持久化 - ✅ 操作历史记录 ## 🤝 贡献指南 欢迎提交Issue和Pull Request来改进这个项目! 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 👥 作者 **ZeroOEnd** - 项目仓库: [https://gitee.com/development_repo/student-information-hub](https://gitee.com/development_repo/student-information-hub) ## 🙏 致谢 感谢以下资源提供的灵感和支持: - Java官方文档 - 设计模式经典著作 - 开源社区最佳实践 --- **提示**: 定期使用选项8保存数据,避免信息丢失!