# student **Repository Path**: light-touch-technology/student ## Basic Information - **Project Name**: student - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-21 - **Last Updated**: 2025-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生信息管理系统 ## 项目概述 一个基于Java的学生信息管理系统,实现了完整的CRUD功能和三种设计模式。 ## 功能需求 ### 核心功能 - ✅ 使用文件保存和读取学生数据 - ✅ 学生信息包括:学号、姓名、专业和家庭地址信息 - ✅ 家庭地址信息使用独立的类保存,包括省、市、街道 - ✅ 完整的CRUD(增、删、改、查)功能 ### 系统菜单 ``` === 学生信息管理系统 === 1. 从 students.txt 初始化数据(仅首次使用) 2. 添加学生 3. 删除学生(按学号) 4. 修改学生(按学号) 5. 查询学生(按学号) 6. 查看所有学生 7. 查看最近操作(栈顶10条) 8. 保存数据到 students.dat 9. 从 students.dat 加载数据 0. 退出 ``` ## 设计模式实现 ### 1. 单例模式 (Singleton Pattern) - `StudentManager` 类确保系统中只有一个学生管理器实例 - 全局访问点:`StudentManager.getInstance()` ### 2. 策略模式 (Strategy Pattern) - `StorageStrategy` 接口定义存储策略 - `TextFileStrategy` 实现文本文件存储 - 支持扩展其他存储方式(如数据库、JSON等) ### 3. 命令模式 (Command Pattern) - `Command` 接口定义命令操作 - 具体命令:`AddStudentCommand`, `DeleteStudentCommand`, `UpdateStudentCommand` - 支持操作历史记录和撤销功能 ## 类结构设计 ### 核心类 - `Address` - 地址类(省、市、街道) - `Student` - 学生类(学号、姓名、专业、地址) - `StudentManager` - 学生管理器(单例) - `Main` - 主程序界面 ### 设计模式相关类 - `StorageStrategy` - 存储策略接口 - `TextFileStrategy` - 文本文件存储实现 - `Command` - 命令接口 - `*Command` - 具体命令实现类 ## 数据格式 ### 学生数据格式 ``` 学号,姓名,专业,省,市,街道 ``` ### 示例数据 (students.txt) ``` 2023001,张三,计算机科学与技术,北京市,北京市,海淀区中关村大街 2023002,李四,软件工程,上海市,上海市,浦东新区张江高科技园区 2023003,王五,电子信息工程,广东省,深圳市,南山区科技园 2023004,赵六,人工智能,浙江省,杭州市,西湖区文三路 2023005,钱七,数据科学与大数据技术,江苏省,南京市,鼓楼区汉口路 ``` ## 编译运行 ### 命令行编译 ```bash # 编译所有Java文件 javac -d out src/*.java # 运行程序 java -cp out Main ``` ### 批处理文件 双击 `run.bat` 自动编译并运行程序 ## 使用流程 1. **首次运行**:选择选项1从 `students.txt` 初始化数据 2. **添加学生**:选择选项2,输入学生信息 3. **查询操作**:使用选项5、6查看学生信息 4. **修改删除**:使用选项3、4进行数据维护 5. **数据持久化**:使用选项8保存数据到文件 6. **操作历史**:选项7查看最近10条操作记录 ## 技术特点 - 🎯 **模块化设计**:清晰的类职责分离 - 🔄 **可扩展性**:策略模式支持存储方式扩展 - 📝 **操作追踪**:命令模式记录完整操作历史 - 💾 **数据持久化**:文件存储确保数据不丢失 - 🛡️ **错误处理**:完善的输入验证和异常处理 ## 文件说明 - `src/` - 源代码目录 - `students.txt` - 初始化数据文件 - `students.dat` - 程序数据文件(自动生成) - `run.bat` - 一键运行批处理文件 - `README.md` - 项目说明文档