基于Java(Spring+Struts+Hibernate 框架)实现(Web)学生课程管理系统【100010038】
2023-09-11 14:17:50 时间
课程管理系统设计文档
二、引言
2.1 目的
本文档详细描述了课程管理系统的设计,达到引导开发的作用,同时实现测试人员以及用户的沟通。
本文档面向开发人员,测试人员以及最终用户编写,是了解系统的导航。
2.2 范围
课程管理系统是方便教学管理,有管理员对用户和课程的管理,学生可以方便的查找自己的课程,提交作业,查看课程作业。老师可以布置作业,安排助教批改作业,安排选课学生,安排课程助教。同时有教学管理人员对学生情况,课程情况进行统计。
三、架构设计
此项目采用 MVC 架构,使用 Spring+Struts+Hibernate 框架
四、类的设计
4.1 业务逻辑层分解
4.1.1 业务逻辑层模块职责
模块 | 职责 |
---|---|
UserManage | 负责用户模块所需要的服务 |
CourseManage | 负责课程模块所需要的服务 |
AssignmentManage | 负责作业模块所需要的服务 |
4.1.2 业务逻辑层模块接口规范
userManage 模块
模块概述
userManage 模块负责用户的登陆注册,设置个人资料,获得全部用户列表,查找用户等功能。
userManage 接口规范
提供的服务(供接口) | 提供的服务(供接口) | 提供的服务(供接口) |
---|---|---|
userManage. validateUser | 语法 | public User validateUser(String userid, String password); |
userManage. validateUser | 前置条件 | userid 和 password 不为空 |
userManage. validateUser | 后置条件 | 验证用户名和密码是否匹配 |
userManage. registerUser | 语法 | public String registerUser(User user); |
userManage. registerUser | 前置条件 | user 不为空 |
userManage. registerUser | 后置条件 | 数据库中添加一条 User 用户 |
userManage. userList | 语法 | public List userList(); |
userManage. userList | 前置条件 | 无 |
userManage. userList | 后置条件 | 返回全部用户列表 |
userManage. delete | 语法 | public void delete(User user); |
userManage. delete | 前置条件 | user 不为空 |
userManage. delete | 后置条件 | 删除此条 user 记录 |
userManage. update | 语法 | public void update(User user); |
userManage. update | 前置条件 | user 不为空 |
userManage. update | 后置条件 | 更新此条 user 记录 |
userManage. findUser | 语法 | public User findUser(String id); |
userManage. findUser | 前置条件 | id 不为空 |
userManage. findUser | 后置条件 | 返回此 id 的 user 记录 |
CourseManage 模块
模块概述
CourseManage 模块提供课程的添加删除修改,课程老师添加,添加课程助教,选课学生等功能
CourseManage 接口规范
提供的服务(供接口) | 提供的服务(供接口) | 提供的服务(供接口) |
---|---|---|
CourseManage. setCourse | 语法 | public String setCourse(Course course); |
CourseManage. setCourse | 前置条件 | course 不为空 |
CourseManage. setCourse | 后置条件 | 数据库中添加一条课程记录 |
CourseManage. courseList | 语法 | public List courseList(); |
CourseManage. courseList | 前置条件 | 无 |
CourseManage. courseList | 后置条件 | 返回全部课程的列表 |
CourseManage. delete | 语法 | public void delete(Course course); |
CourseManage. delete | 前置条件 | course 不为空 |
CourseManage. delete | 后置条件 | 删除数据库中的此课程数据 |
CourseManage. update | 语法 | public void update(Course course); |
CourseManage. update | 前置条件 | course 不为空 |
CourseManage. update | 后置条件 | 更新数据库中的此课程数据 |
CourseManage. findCourse | 语法 | public Course findCourse(String cid); |
CourseManage. findCourse | 前置条件 | cid 不为空 |
CourseManage. findCourse | 后置条件 | 返回符合条件 cid 的课程 |
CourseManage. addCourseAssistant | 语法 | public void addCourseAssistant(String courseid, String assid); |
CourseManage. addCourseAssistant | 前置条件 | courseid 和 assid 分别有数据库中的数据,且不能重复添加,assid 不能是选课学生 |
CourseManage. addCourseAssistant | 后置条件 | 数据库中添加一条数据 |
CourseManage. findCourseAssistant | 语法 | public CourseAssistants findCourseAssistant(String assid, String courseid); |
CourseManage. findCourseAssistant | 前置条件 | courseid 和 assid 分别有数据库中的数据 |
CourseManage. findCourseAssistant | 后置条件 | 返回对应的猪脚信息 |
CourseManage. findAssistant; | 语法 | public List findAssistant(String cid); |
CourseManage. findAssistant; | 前置条件 | cid 不为空 |
CourseManage. findAssistant; | 后置条件 | 返回对应课程的全部猪脚 |
CourseManage. deleteAssistant; | 语法 | public void deleteAssistant(String assid, String courseid); |
CourseManage. deleteAssistant; | 前置条件 | courseid 和 assid 分别有数据库中的数据 |
CourseManage. deleteAssistant; | 后置条件 | 删除数据库中的数据 |
CourseManage. addCourseStudent; | 语法 | public void addCourseStudent(String courseid, String stuid); |
CourseManage. addCourseStudent; | 前置条件 | courseid 和 stuid 分别有数据库中的数据,且不能重复添加,成为助教的学生不能选课 |
CourseManage. addCourseStudent; | 后置条件 | 添加一条选课学生记录 |
CourseManage. findCourseStudent; | 语法 | public CourseStudent findCourseStudent(String stuid, String courseid); |
CourseManage. findCourseStudent; | 前置条件 | courseid 和 stuid 分别有数据库中的数据 |
CourseManage. findCourseStudent; | 后置条件 | 返回一条选课学生记录 |
CourseManage. findStudent; | 语法 | public List findStudent(String cid); |
CourseManage. findStudent; | 前置条件 | cid 不能为空 |
CourseManage. findStudent; | 后置条件 | 返回对应课程的全部学生 |
CourseManage. deleteStudent; | 语法 | public void deleteStudent(String uid, String courseid); |
CourseManage. deleteStudent; | 前置条件 | courseid 和 stuid 分别有数据库中的数据 |
CourseManage. deleteStudent; | 后置条件 | 删除数据库中的选课学生记录 |
CourseManage. myCourseList; | 语法 | public List myCourseList(String userid); |
CourseManage. myCourseList; | 前置条件 | userid 不为空 |
CourseManage. myCourseList; | 后置条件 | 返回 userid 的全部课程 |
AssignmentManage 模块
模块概述
AssignmentManage 模块提供作业方面的服务,包括老师布置作业,修改作业,删除作业,学生提交作业等
AssignmentManage 接口规范
提供的服务(供接口) | 提供的服务(供接口) | 提供的服务(供接口) |
---|---|---|
AssignmentManage. setAssignment | 语法 | public void setAssignment(Assignment assignment); |
AssignmentManage. setAssignment | 前置条件 | assignment 不为空 |
AssignmentManage. setAssignment | 后置条件 | 添加一条作业记录 |
AssignmentManage. findAssignment | 语法 | public List findAssignment(String cid); |
AssignmentManage. findAssignment | 前置条件 | cid 不为空 |
AssignmentManage. findAssignment | 后置条件 | 返回对应课程的全部作业 |
AssignmentManage. addStudentAssignment | 语法 | public void addStudentAssignment(StudentAssignment sa); |
AssignmentManage. addStudentAssignment | 前置条件 | sa 不为空 |
AssignmentManage. addStudentAssignment | 后置条件 | 添加一条学生提交作业记录 |
AssignmentManage. findStudentAssignment | 语法 | public StudentAssignment findStudentAssignment(String studentid, String assignmentid); |
AssignmentManage. findStudentAssignment | 前置条件 | studentid,assignmentid 不为空,且对应数据库中有数据 |
AssignmentManage. findStudentAssignment | 后置条件 | 返回此条学生提交作业的记录 |
AssignmentManage. findAllStudentAssignment | 语法 | public List findAllStudentAssignment(String cid); |
AssignmentManage. findAllStudentAssignment | 前置条件 | cid 不为空 |
AssignmentManage. findAllStudentAssignment | 后置条件 | 返回对应课程所有的学生提交的作业 |
AssignmentManage. updateStudentAssignment | 语法 | public void updateStudentAssignment(StudentAssignment sa); |
AssignmentManage. updateStudentAssignment | 前置条件 | sa 不为空 |
AssignmentManage. updateStudentAssignment | 后置条件 | 更新此条学生作业记录 |
五、数据库设计
- 老师布置作业表 assignment
ColumnName | DataType | PK | NotNull | Default |
---|---|---|---|---|
id | VARCHAR(255) | √ | √ | |
correctDeadline | date | |||
deadline | date | |||
description | TEXT | NULL | ||
filePath | VARCHAR(255) | NULL | ||
format | VARCHAR(255) | NULL | ||
score | INT | NULL | ||
courseid | VARCHAR(255) | NULL | ||
fileName | VARCHAR(255) | NULL |
- 课程表 course
ColumnName | DataType | PK | NotNull | Default |
---|---|---|---|---|
id | VARCHAR(255) | √ | √ | |
description | TEXT | NULL | ||
semester | date | NULL | ||
instructor | VARCHAR(255) | NULL | ||
cname | VARCHAR(255) | NULL | ||
end | date | NULL |
- 课程助教表 courseassistants
ColumnName | DataType | PK | NotNull | Default |
---|---|---|---|---|
id | VARCHAR(255) | √ | √ | |
assistantid | VARCHAR(255) | NULL | ||
courseid | VARCHAR(255) | NULL |
- 选课学生表 coursestudent
ColumnName | DataType | PK | NotNull | Default |
---|---|---|---|---|
id | VARCHAR(255) | √ | √ | |
courseid | VARCHAR(255) | NULL | ||
studentid | VARCHAR(255) | NULL |
- 学生作业表 studentassignment
ColumnName | DataType | PK | NotNull | Default |
---|---|---|---|---|
id | VARCHAR(255) | √ | √ | |
assignmentid | VARCHAR(255) | NULL | ||
studentid | VARCHAR(255) | NULL | ||
fileName | VARCHAR(255) | NULL |
- 用户表 user
ColumnName | DataType | PK | NotNull | Default |
---|---|---|---|---|
id | VARCHAR(255) | √ | √ | |
iden | int | NULL | ||
VARCHAR(255) | NULL | |||
name | VARCHAR(255) | NULL | ||
password | VARCHAR(255) | NULL | ||
phone | VARCHAR(255) | NULL | ||
sex | int | NULL | ||
userid | VARCHAR(255) | NULL | ||
avatar | VARCHAR(255) | NULL |
♻️ 资源
大小: 902KB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87248398
相关文章
- Java入门系列之StringBuilder、StringBuffer
- 【JAVA】Eclipse中输入System.in(Scanner)的用法。(边学习,边更新)
- Java内存溢出OOM使用Mat分析
- java.lang.IllegalArgumentException: Param ‘serviceName‘ is illegal, serviceName is blank
- Java核心技术卷I基础知识3.7 输入输出
- 实用操作--迁移到Spring Boot 3 和 Spring 6 需要关注的JAVA新特性
- JAVA础--利用java反射机制绕过编译时的类型检查和访问控制检查
- Spring-boot-Java工程添加prometheus监控(actuator+micrometer和simpleclient+micrometer两种方案)
- Java之POJO
- 34 异常机制 异常体系结构 Java把异常当做对象来处理 并定义一个基类java.lang.Throwable作为所有异常的超类 Error Exception
- 【Java】idea社区版创建 spring boot web项目
- Java反射小结
- 第七节:详细讲解Java中的日期,java.util.date
- maven项目的java和resources等文件夹不在Java Resources的文件夹里,并且缺少Deployment...
- 基于Java(Spring Boot)+MySQL实现电商网站【100010419】
- 基于Java(Spring boot+Hibernate)+VUE+MySQL实现(Web)员工信息管理系统【100010234】
- 基于Java(Struts2 + Hibernate + Spring)+MySQL实现的(Web)在线预约系统【100010156】
- 【Java】三个特殊类——Object类、包装类、String类
- Java NIO三件套之Buffer实现原理解析
- 你可能没听过的 Java 8 中的 10 个特性
- [转] 为什么说 Java 程序员必须掌握 Spring Boot ?
- 0316-Java学习-092-【答疑解惑】Unknown lifecycle phase ".test.skip=true".
- Java学习-084-java.sql.SQLException: Zero date value prohibited 问题解决
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- 从零开始学 Java - Spring AOP 实现主从读写分离
- Java高手速成 | Spring、JPA与Hibernate的整合
- Java学习之路-Spring的HttpInvoker学习
- Java高手速成 | Spring、JPA与Hibernate的整合
- 【JAVA】声名抛出处理异常
- 【java养成】:案例(批量操作文件功能、商城进货交易记录程序设计)
- Java新手入门200例126之用单向链表实现栈
- Java中Spring、SpringMVC、MyBatis、Hibernate等相关问答
- 多种方式解决Java控制台报错 java.util.LinkedHashMap cannot be cast to.....