基于Java(Spring+Struts+Hibernate 框架)实现(Web)学生课程管理系统【100010038】

news2024/11/28 16:51:45

课程管理系统设计文档

二、引言

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
ColumnNameDataTypePKNotNullDefault
idVARCHAR(255)
correctDeadlinedate
deadlinedate
descriptionTEXTNULL
filePathVARCHAR(255)NULL
formatVARCHAR(255)NULL
scoreINTNULL
courseidVARCHAR(255)NULL
fileNameVARCHAR(255)NULL
  • 课程表 course
ColumnNameDataTypePKNotNullDefault
idVARCHAR(255)
descriptionTEXTNULL
semesterdateNULL
instructorVARCHAR(255)NULL
cnameVARCHAR(255)NULL
enddateNULL
  • 课程助教表 courseassistants
ColumnNameDataTypePKNotNullDefault
idVARCHAR(255)
assistantidVARCHAR(255)NULL
courseidVARCHAR(255)NULL
  • 选课学生表 coursestudent
ColumnNameDataTypePKNotNullDefault
idVARCHAR(255)
courseidVARCHAR(255)NULL
studentidVARCHAR(255)NULL
  • 学生作业表 studentassignment
ColumnNameDataTypePKNotNullDefault
idVARCHAR(255)
assignmentidVARCHAR(255)NULL
studentidVARCHAR(255)NULL
fileNameVARCHAR(255)NULL
  • 用户表 user
ColumnNameDataTypePKNotNullDefault
idVARCHAR(255)
idenintNULL
mailVARCHAR(255)NULL
nameVARCHAR(255)NULL
passwordVARCHAR(255)NULL
phoneVARCHAR(255)NULL
sexintNULL
useridVARCHAR(255)NULL
avatarVARCHAR(255)NULL

♻️ 资源

在这里插入图片描述

大小: 902KB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87248398

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88180.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win10系统电脑连接打印机的操作方法教学

Win10系统电脑连接打印机的操作方法教学分享,很多用户在办公的时候都会需要使用到打印机。用用户自己购买了打印机之后,不懂怎么去连接自己的电脑来进行使用的方法,接下来我们一起来看看Win10系统电脑连接打印机的操作方法分享吧。 Win10连接…

2022职场人状态和顺风出行感受调研报告

2022年即将过去,作为职场人的你会如何总结?职场同路人又有哪些想对彼此说的话?近日,嘀嗒出行发布《2022职场人状态和顺风出行感受调研报告》,基于近8000名嘀嗒顺风车车主和乘客分享各自职场经历和顺风出行感受&#xf…

运维人必须掌握的 5 种常用运维监控工具

运维监控工具千千万,仅开源的解决方案就有流量监控(MRTG、Cacti、SmokePing、Graphite 等)和性能告警(Nagios、Zabbix、Zenoss Core、Ganglia、OpenTSDB等)可供选择。 并且每种软件都有自己的特点和功能,各…

WiFi热点加装短信认证怎么操作?

公共场所提供无线wifi上网服务,需对用户进行实名认证。手机短信实名认证以其用户体验、综合成本等优势,成为公共wifi上网认证的首选方案。 无线wifi上网实现信认证功能,需要借助上网行为管理设备搭配验证短信平台使用;根据无线wi…

基于Java(Jsp+Sevlet)+MySql 实现的(Web)成绩管理系统【100010041】

1 概述 1.1 开发背景 随着学生数量的日渐增多,学生教务系统的数据量也不断增加,这无疑大大增加了教务系统的负担。如果能把负责学生成绩管理的模块独立出来形成一个独立的系统,便可以有效降低教务系统的数据量,不仅可以方便管理…

阿里巴巴Java开发手册(黄山版)

阿里巴巴 Java 开发手册(黄山版) 链接:https://pan.baidu.com/s/1iKsXlq1DSbePLvuysYbA4A 提取码:yyds 阿里巴巴将 Java 开发手册 从 1.7.0 的嵩山版更新至 1.7.1 的黄山版,新增 11 条新规约,具体变动如下…

[ Linux ] 线程控制(线程创建,等待,终止)

在上一篇我们了解了Linux下线程的相关概念。而本篇的主要内容是线程控制。线程控制包括线程的创建,线程的终止,线程等待等问题,以及线程分离和Linux常见线程安全问题。 目录 1.线程控制 1.1POSIX线程库 1.2 创建线程 1.2.1 创建线程编码…

新库上线 | CnOpenData劳务外包企业工商注册基本信息数据

劳务外包企业工商注册基本信息数据 一、数据简介 随着我国社会主义市场经济的发展,劳务市场中的用工方式也朝着多样化方向演变,劳务外包正是现代化人力资源管理和企业生产实际结合的一种独特的新模式。 在劳务外包过程中,企业将人事管理的部…

Node 文件查找优先级及 Require 方法文件查找策略

Node 文件查找优先级及 Require 方法文件查找策略 一、模块规范 NodeJS对CommonJS进行了支持和实现,让我们在开发node的过程中可以方便的进行模块化开发: 在Node中每一个js文件都是一个单独的模块模块中包括CommonJS规范的核心变量:export…

图数据库知识点2:图思维方式

在上一个知识点中,我们剖析了关系型数据库、数仓湖与图数据库的差异。在本文,我们会着重介绍一个重要的概念——图思维方式(Graph-thinking)。 关于思维方式 每个人应该如何思考,他/她是如何思考的,这是一…

朝代更替中的上下五千年

《近代中国社会的新陈代谢》 关于作者 陈旭麓是著名历史学家、华东师范大学的 建校元老之一。生前是中国史学会理事、 中国现代史学会副理事长、上海地方史志 研究会副会长。著有《初中本国史》《司马迁的历史观》《近代中国社会的新陈代谢》 《浮想录》等。 关于本书 这本…

Qt / Qml 中捕获(中文)输入法事件(按下 提交)

【写在前面】 最近工作中遇到一个奇怪的问题: 本来想在 TextEdit ( QTextEdit ) 中捕获一下键盘按键按下的事件。 然而,当输入法为英文时( 正常输入字符 ),可以捕获到按键事件,但当我切换到中文时,弹出输入法选框后&am…

web前端网页设计期末课程大作业:企业网页主题网站设计——舞蹈培训11页HTML+CSS+JavaScript

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

从零开始,教你写一个串口调试助手

摘要:相信很多小伙伴都没接触过QT,如果想用QT写一个调试助手,首先是要会一点C语法。只要能看得懂C的代码,就能很快的写一个串口调试助手。 下面先推荐两个视频教程,感兴趣的可以看一看! 1、B站Jomse工 B站…

项目建议书怎么写?

Why 为什么需要项目建议书? 行政、国企、事业单位间的买卖需要按国家规定的“政府采购法”进行(个体户,私企间的买卖不需要按“政府采购法”进行),不是个人的消费,有一整套流程,《项目建议书》这套流程中的产物之一。 即国家规定,纳税人的钱不能乱花,买之前要想好买…

南卡和Snowkids电容笔哪款更值得入手?口碑最佳的国产电容笔

随着苹果推出了Apple Pencil之后后,平替电容笔的产品也随之出现了不少,其中大部分都是没很高知名度的牌子,价格也是五花八门,有便宜的也有昂贵的,让消费者有了更多的选择,对于第一次购买电容笔的小白来说但…

【Python】【期末复习题】

文章目录一、单选题(20分)二、判断题(10分)三、填空题(10分)四、问答题(共30分,6题,每题5分)五、程序题(3题,每题10分,共3…

WIFI智能电子标牌的优势

一、与市面产品对比有什么优化升级? 使用环境标准wifi通信,避免单独安装基站,减少部署的麻烦。 二、刷新一次消耗多少电量,平均每秒消耗多少? 0.09879mAh,每秒平均电流105uA。 三、充满电需要多久,充一次电可以用…

【JS020】原生JS实现AJAX

日期:2022年12月14日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#x…

TFT显示模组是什么?tft显示模组有什么功能?

TFT显示模组的出现,让手机屏幕成为一种刚需。但随着技术的发展,越来越多的厂商开始推出折叠屏手机,这也意味着手机屏幕的形态正在发生变化。在此背景下,折叠屏手机市场迎来爆发期。根据中国信通院数据,2020年上半年&am…