Skip to content

学生选课管理系统需求文档

一、项目概述

学生选课管理系统旨在为学校提供一个便捷、高效的学生选课管理平台,实现学生选课、成绩管理、课程信息维护等功能,提高教学管理的信息化水平。

二、主要功能

主要功能模块如下图所示:

graph TD classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px A(学生选课管理系统):::process A --> B(学生信息管理):::process A --> C(课程信息管理):::process A --> D(学生选课管理):::process B --> B1(查看):::process B --> B2(添加):::process B --> B3(修改):::process B --> B4(删除):::process C --> C1(查看):::process C --> C2(添加):::process C --> C3(修改):::process C --> C4(删除):::process D --> D1(查看):::process D --> D2(添加):::process D --> D3(修改):::process D --> D4(删除):::process

(一)学生信息管理

  1. 查看:查看学生基本信息,如学号、姓名、性别、年龄、所在系等。
  2. 添加:向系统中添加新的学生信息。
  3. 修改:对已有学生信息进行修改和更新。
  4. 删除:删除不再需要的学生信息。

(二)课程信息管理

  1. 查看:用户可查看课程详细信息,如课程编号、课程名、先修课、学分等。
  2. 添加:可向系统中添加新的课程信息。
  3. 修改:能对已有的课程信息进行修改和更新。
  4. 删除:可删除不再需要的课程信息。

(三)学生选课与成绩管理

  1. 查看
    • 课程查询:根据课程编号、课程名、学分等条件查询可选课程。
    • 选课结果查看:查看自己的选课结果,包括已选课程和课程状态。
    • 成绩查询:查询学生所选课程的成绩。
  2. 添加
    • 选课操作:在选课时间内选择感兴趣的课程,系统会检查选课条件。
    • 成绩录入:录入学生的选课成绩。
  3. 修改:此功能模块中暂不涉及修改操作。
  4. 删除:此功能模块中暂不涉及删除操作。

方案一:JSP + Servlet + JDBC 架构

(一)前端

  • 页面展示:采用 JSP(JavaServer Pages)作为视图层,编写动态网页,可嵌入 Java 代码生成动态内容。
  • 样式设计:使用 HTML、CSS 进行页面布局和样式设计,提升用户视觉体验。
  • 交互处理:借助 JavaScript 实现页面交互效果,如表单验证、异步请求等。

(二)后端

  • 请求处理:利用 Servlet 作为控制器,处理前端请求,接收请求参数,调用业务逻辑处理并返回结果。
  • 业务逻辑:在 Java 类中编写业务逻辑代码,处理选课、成绩管理、信息维护等业务。
  • 数据库操作:使用 JDBC(Java Database Connectivity)连接 SQLite 数据库,执行增删改查操作。需要添加 SQLite JDBC 驱动依赖,将sqlite-jdbc-3.41.0.0.jar放入WEB-INF/lib,或使用 Maven 可在 pom.xml 中添加:
    <dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.41.0.0</version>
    </dependency>
    

(三)部署

  • 服务器:选择 Tomcat 作为 Web 服务器,将项目部署到 Tomcat 中运行。
  • 数据库:使用 SQLite 数据库存储学生表、课程表和学生 - 选课表的数据。SQLite 是文件型数据库,只需将数据库文件放置在合适位置即可。

(四)功能接口

(一)学生信息管理 API

URL 操作 方法 参数 响应
/stu/add.jsp 添加学生信息 POST 请求体包含学生信息(学号、姓名、性别、年龄、所在系) 返回list.jsp
/stu/delete.jsp 删除学生信息 POST no(学生学号) 返回list.jsp
/stu/update.jsp 修改学生信息 POST 请求体包含要修改的学生信息(学号及修改后的信息) 返回list.jsp
/stu/list.jsp 查看学生信息列表 GET 返回list.jsp

(二)课程信息管理 API

URL 操作 方法 参数 响应
/course/add.jsp 添加课程信息 POST 请求体包含课程信息(课程编号、课程名、先修课、学分) 返回list.jsp
/course/delete.jsp 删除课程信息 POST no(课程编号) 返回list.jsp
/course/update.jsp 修改课程信息 POST 请求体包含要修改的课程信息(课程编号及修改后的信息) 返回list.jsp
/course/list.jsp 查看课程信息列表 GET 返回list.jsp

(三)学生-选课信息管理 API

URL 操作 方法 参数 响应
/stu_course/add.jsp 添加选课信息 POST 请求体包含课程信息(课程编号、学号、成绩) 返回list.jsp
/stu_course/delete.jsp 删除选课信息 POST stu_no(学号)、course_no(课程编号) 返回list.jsp
/stu_course/update.jsp 修改选课信息 POST 请求体包含要修改的选课信息(课程编号及修改后的信息) 返回list.jsp
/stu_course/list.jsp 查看选课信息列表 GET 返回list.jsp

方案二:Spring Boot + MyBatis + Freemarker 架构

(一)前端

  • 模板引擎:使用 Freemarker 作为模板引擎,结合数据和模板生成动态 HTML 页面,语法简单易用。
  • 样式设计:采用 HTML、CSS 进行页面布局和样式设计,可结合 Bootstrap 等前端框架,提升页面响应式设计和美观度。
  • 交互处理:使用 JavaScript 和 jQuery 实现页面交互效果,也可引入 Vue.js 或 React.js 等前端框架提升用户体验。

(二)后端

  • 框架搭建:使用 Spring Boot 搭建后端服务器,利用其自动配置和快速开发功能简化项目搭建。
  • 持久层框架:使用 MyBatis 作为持久层框架,通过 XML 或注解实现数据库增删改查操作,提高开发效率。同样需要添加 SQLite JDBC 驱动依赖。
  • 业务逻辑:运用 Spring 框架的依赖注入和面向切面编程特性组织业务逻辑代码,增强代码可维护性和可测试性。

(三)部署

  • 服务器:Spring Boot 内置 Tomcat 等服务器,可将项目打包成可执行的 JAR 文件直接在服务器上运行。
  • 数据库:使用 SQLite 数据库存储数据,通过 MyBatis 与数据库交互。

(四)功能接口

(一)学生信息管理 API

URL 操作 方法 参数 响应
/demo/Student/add 添加学生信息 POST 请求体包含学生信息(学号、姓名、性别、年龄、所在系) 返回操作结果
/demo/Student/delete 删除学生信息 POST no(学生学号) 返回操作结果
/demo/Student/update 修改学生信息 POST 请求体包含要修改的学生信息(学号及修改后的信息) 返回操作结果
/demo/Student/getPage 查看学生信息列表 POST application/json:pageNum,pageSize 返回列表

(二)课程信息管理 API

URL 操作 方法 参数 响应
/demo/Course/add 添加课程信息 POST 请求体包含课程信息(课程编号、课程名、先修课、学分) 返回操作结果
/demo/Course/delete 删除课程信息 POST no(课程编号) 返回操作结果
/demo/Course/update 修改课程信息 POST 请求体包含要修改的课程信息(课程编号及修改后的信息) 返回操作结果
/demo/Course/getPage 查看课程信息列表 GET application/json:pageNum,pageSize 返回列表

(三)学生-选课信息管理 API

URL 操作 方法 参数 响应
/demo/StuCourse/add 添加选课信息 POST 请求体包含课程信息(课程编号、学号、成绩) 返回操作结果
/demo/StuCourse/delete 删除选课信息 POST stu_no(学号)、course_no(课程编号) 返回操作结果
/demo/StuCourse/update 修改选课信息 POST 请求体包含要修改的选课信息(课程编号及修改后的信息) 返回操作结果
/demo/StuCourse/getPage 查看选课信息列表 POST application/json:pageNum,pageSize 返回列表