# 学生信息管理系统 **Repository Path**: Dear_XL/study-plan ## Basic Information - **Project Name**: 学生信息管理系统 - **Description**: ASP.NET MVC + SQL Server 学生信息管理系统 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2025-06-26 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: Csharp, MVC, sqlserver, JavaScript, HTML ## README # 学生信息管理系统 ## 介绍 学生信息管理系统是一个基于 ASP.NET Core MVC 的 Web 应用程序,旨在帮助学校或教育机构高效管理学生、班级、课程、宿舍、教师等信息。系统提供了全面的 CRUD(创建、读取、更新、删除)操作,支持数据导出与导入功能,并集成了用户身份验证和操作日志记录功能。 主要功能模块包括: - 学生管理 - 班级管理 - 课程管理 - 宿舍管理 - 教师管理 - 用户注册与登录 - 操作日志记录 ## 软件架构 本项目采用 ASP.NET Core MVC 架构,结合 Entity Framework Core 实现数据访问层,使用 Bootstrap 5 和 jQuery 实现前端交互。系统使用 SQL Server 作为数据库,并通过 Identity Framework 实现用户身份验证。 主要组件: - **Controllers**:处理 HTTP 请求,实现业务逻辑。 - **Models**:定义数据结构,包括实体类和视图模型。 - **Views**:使用 Razor 引擎渲染 HTML 页面。 - **Data**:包含数据库上下文类 `AppDbContext`,用于与数据库交互。 - **Services**:实现操作日志服务 `IOperationLogService`。 - **Enums**:定义枚举类型,如性别。 - **Helpers**:提供查询辅助类,如 `QueryHelper`。 - **wwwroot**:静态资源目录,包含 CSS、JavaScript 和图片文件。 ## 安装教程 1. **开发环境要求**: - Visual Studio 2022 或更高版本 - .NET 6 SDK - SQL Server(本地或远程) 2. **克隆项目**: ```bash git clone https://gitee.com/Dear_XL/study-plan.git ``` 3. **配置数据库**: - 打开 `appsettings.json` 文件,修改数据库连接字符串。 - 在项目目录下运行以下命令以更新数据库: ```bash dotnet ef database update ``` 4. **运行项目**: - 使用 Visual Studio 或命令行运行项目: ```bash dotnet run ``` - 打开浏览器访问 `https://localhost:5001`(或相应端口)。 ## 使用说明 ### 用户注册与登录 - **注册**:访问 `/Register` 页面,填写用户名、邮箱和密码进行注册。 - **登录**:访问 `/Login` 页面,使用注册的邮箱和密码登录。 ### 学生管理 - **创建学生**:点击“学生管理”页面上的“新建”按钮,填写学生信息并提交。 - **编辑学生**:在学生列表中点击“编辑”按钮,修改学生信息并保存。 - **删除学生**:在学生列表中点击“删除”按钮,确认删除操作。 - **查看学生详情**:点击“详情”按钮,查看学生的详细信息。 - **课程选择**:点击“选课”按钮,为学生分配课程。 - **数据导出/导入**:支持将学生数据导出为 Excel 文件,或从 Excel 文件导入学生数据。 ### 班级管理 - **创建班级**:点击“班级管理”页面上的“新建”按钮,填写班级信息并提交。 - **编辑班级**:在班级列表中点击“编辑”按钮,修改班级信息并保存。 - **删除班级**:在班级列表中点击“删除”按钮,确认删除操作。 - **查看班级详情**:点击“详情”按钮,查看班级的详细信息。 - **数据导出/导入**:支持将班级数据导出为 Excel 文件,或从 Excel 文件导入班级数据。 ### 课程管理 - **创建课程**:点击“课程管理”页面上的“新建”按钮,填写课程编号、名称、学分等信息并提交。 - **编辑课程**:在课程列表中点击“编辑”按钮,修改课程信息并保存。 - **删除课程**:在课程列表中点击“删除”按钮,确认删除操作。 - **查看课程详情**:点击“详情”按钮,查看课程的详细信息。 - **数据导出/导入**:支持将课程数据导出为 Excel 文件,或从 Excel 文件导入课程数据。 ### 宿舍管理 - **创建宿舍**:点击“宿舍管理”页面上的“新建”按钮,填写宿舍信息并提交。 - **编辑宿舍**:在宿舍列表中点击“编辑”按钮,修改宿舍信息并保存。 - **删除宿舍**:在宿舍列表中点击“删除”按钮,确认删除操作。 - **查看宿舍详情**:点击“详情”按钮,查看宿舍的详细信息。 - **数据导出/导入**:支持将宿舍数据导出为 Excel 文件,或从 Excel 文件导入宿舍数据。 ### 教师管理 - **创建教师**:点击“教师管理”页面上的“新建”按钮,填写教师信息并提交。 - **编辑教师**:在教师列表中点击“编辑”按钮,修改教师信息并保存。 - **删除教师**:在教师列表中点击“删除”按钮,确认删除操作。 - **查看教师详情**:点击“详情”按钮,查看教师的详细信息。 - **数据导出/导入**:支持将教师数据导出为 Excel 文件,或从 Excel 文件导入教师数据。 ### 操作日志 所有用户的操作(如创建、编辑、删除)都会被记录在 `OperationLog` 表中,管理员可以查看操作日志以进行审计。 ## 参与贡献 欢迎贡献代码和建议!请遵循以下步骤: 1. Fork 项目。 2. 创建新分支 (`git checkout -b feature/new-feature`)。 3. 提交更改 (`git commit -m 'Add new feature'`)。 4. 推送分支 (`git push origin feature/new-feature`)。 5. 提交 Pull Request。 ## 特性 - 基于角色的访问控制(RBAC),默认所有控制器需要用户登录。 - 支持数据导出为 Excel 文件。 - 支持从 Excel 文件导入数据。 - 操作日志记录,确保系统可审计。 - 使用 Bootstrap 5 实现响应式前端界面。 - 使用 jQuery 和 jQuery Validation 实现客户端表单验证。 - 支持中文错误提示(通过 `ChineseIdentityErrorDescriber` 类)。 - 使用 `PagedResult` 实现分页功能,提升大数据量下的用户体验。