博主介绍:专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
3 系统需求获取与分析
3.1 用例模型
3.1.1 参与者
1)管理员:可以对学校、课程、知识点、视频、试题、用户、公告、评论进行管理。可以维护课程的静态信息,如课程的公告,课程的内容等信息。可以对各个学校进行管理,添加或删除学校,可以批量增加老师,并且查看老师的课程创建记录,也可以查看学生的收藏记录。而且还可以对不恰当的评论进行过滤。
2)教师:教师可以通过平台创建课程,一个教师可以创建多门课程或者删除创建的课程,但是教师只能控制自己创建的课程不能对其他教师创建的课程进行操作。对于已经创建的课程,教师可以设置若干个知识点,根据课程和知识点进行具体内容的添加即上传相应的视频获试题。每个知识点包括一个视频和若干个课后题。同时,教师还可以对学生发布的问题进行回复。
3)学生:学生登录平台后,可以查看所有教师所创建的所有课程,可以根据喜好选择课程进行学习,按照课程的知识点进行视频的学习以及练习题的解答,练习题解答完成后,平台实时给出正确答案并且向学生显示此次答题所获得的分数。学生可以在学习过程中收藏此门课程,方便下次登录直接开始学习,免去麻烦的查找过程,一门课程只允许收藏一次。此外,学生可以对该门课程进行打分,以此可以作为对其他学生的参考。学生还可以向教师提问,并查看教师所做的回复。
3.1.2 用例
1)管理员:新增或删除学校,新增或删除公告,新增或删除教师,管理课程,管理知识点,管理试题,管理视频,管理学生,管理评论。
2)教师:用户注册,用户登录,创建课程,删除课程,修改课程,创建知识点,删除知识点,上传视频,修改知识点所对应的视频,删除视频,上传题目及答案,修改试题,浏览及回复评论。
3)学生:用户注册,用户登录,浏览课程,查看课程,收藏课程,评价课程,观看视频,在线答题,发表评论,查看公告,查看学校。
3.1.3 用例图
图3.1 管理员用例图
图3.2 教师用例图
图3.3 学生用例图
3.1.4 用例详述
表3-1 管理员登录用例详述表
用例名称: | 管理员登录 | 层次: | 子功能级别 |
简述/背景: | 管理员登录《慕课学习平台系统》 | ||
范围: | 系统 | ||
主用角责权利 | 管理员:登录系统 | ||
其他干系者责权利: | 无 | ||
后置条件: | 管理员成功登录系统。 | ||
前置条件: | 《慕课学习平台系统》运行正常。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.管理员输入账号及密码。 2.管理员点击登录。 3.系统对管理员的登录信息进行验证。 4.系统显示管理员主界面。(用例结束) | ||
扩展流: | 1a.输入账号为空: 请输入账号。 1b.输入密码为空: 请输入密码。 3a.信息不正确: 账号或密码输入错误,请重新输入。 |
学生登录用例详述表参考表3-1。
教师登录用例详述表参考表3-1。
表3-2 管理员查看学生信息用例详述表
用例名称: | 管理员查看学生信息 | 层次: | 用户目标 |
简述/背景: | 管理员登录《慕课学习平台系统》查看学生信息 | ||
范围: | 系统 | ||
主用角责权利 | 管理员:查看学生信息 | ||
其他干系者责权利: | 无 | ||
后置条件: | 管理员成功查看学生信息。 | ||
前置条件: | 管理员登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.管理员点击学生列表。 2.系统显示学生信息页面。 3.管理员点击某一学生用户名。 4.系统显示该学生详细信息及收藏信息。 (用例结束) | ||
扩展流: | 无 |
管理员查看教师信息用例详述表参考表3-2。
表3-3 管理员删除学生用例详述表
用例名称: | 管理员删除学生 | 层次: | 用户目标 |
简述/背景: | 管理员登录《慕课学习平台系统》删除学生 | ||
范围: | 系统 | ||
主用角责权利 | 管理员:删除学生 | ||
其他干系者责权利: | 无 | ||
后置条件: | 管理员成功删除学生。 | ||
前置条件: | 管理员登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.管理员点击学生列表。 2.系统显示学生信息页面。 3.管理员点击学生信息上对应的删除。 4.系统删除选中的学生信息。(用例结束) | ||
扩展流: | 无 |
管理员删除教师用例详述表参考表3-3。
表3-4 管理员添加学校用例详述表
用例名称: | 管理员添加学校 | 层次: | 用户目标 |
简述/背景: | 管理员登录《慕课学习平台系统》添加学校 | ||
范围: | 系统 | ||
主用角责权利 | 管理员:添加学校 | ||
其他干系者责权利: | 无 | ||
后置条件: | 管理员成功添加学校。 | ||
前置条件: | 管理员登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.管理员点击添加学校。 2.系统弹出学校编辑页面。 3.管理员填写完学校信息点击提交。 4.系统保存学校信息并显示添加成功。 5.系统跳转到学校列表页面。(用例结束) | ||
扩展流: | 4a.输入学校名称为空: 学校名称不能为空。 |
管理员添加分类用例详述表参考表3-4。
表3-5 管理员发布公告用例详述表
用例名称: | 管理员发布公告 | 层次: | 用户目标 |
简述/背景: | 管理员登录《慕课学习平台系统》发布公告 | ||
范围: | 系统 | ||
主用角责权利 | 管理员:发布公告 | ||
其他干系者责权利: | 无 | ||
后置条件: | 管理员成功发布公告。 | ||
前置条件: | 管理员登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.管理员点击发布公告。 2.系统显示发布公告页面。 3.管理员填写信息点击提交。 4.系统保存公告信息并显示添加成功。 5.系统跳转到公告列表页面。(用例结束) | ||
扩展流: | 3a.输入公告信息为空: 公告信息不能为空。 |
表3-6 学生注册账号用例详述表
用例名称: | 学生注册账号 | 层次: | 用户目标 |
简述/背景: | 学生注册《慕课学习平台系统》账号 | ||
范围: | 系统 | ||
主用角责权利 | 学生:注册账号 | ||
其他干系者责权利: | 无 | ||
后置条件: | 学生注册账号成功。 | ||
前置条件: | 《慕课学习平台系统》运行正常。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.学生点击注册。 2.系统弹出注册页面。 3.学生按照注册页面的信息要求进行填写。 4.学生填写完成后点击提交。 5.系统保存学生资料并提示注册成功。(用例结束) | ||
扩展流: | 3a.输入账号为空: 账号不得为空。 3b.输入密码少于6位数: 密码不得少于6位数。 4a.系统核对学生账号已存在: 用户已存在,请重新注册。 |
教师注册用例详述表参考表3-6。
表3-7 学生收藏课程用例详述表
用例名称: | 学生收藏课程 | 层次: | 用户目标 |
简述/背景: | 学生登录《慕课学习平台系统》收藏课程 | ||
范围: | 系统 | ||
主用角责权利 | 学生:收藏课程 | ||
其他干系者责权利: | 无 | ||
后置条件: | 学生成功收藏课程。 | ||
前置条件: | 学生登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.学生点击所要收藏的课程。 2.系统显示该课程详情页面。 3.学生点击页面上的收藏课程。 4.系统将该课程保存到学生的收藏列表中。 5.系统显示收藏成功。(用例结束) | ||
扩展流: | 3a.已收藏的课程大于100个了: 收藏夹已满。 |
表3-8 学生查看收藏的课程用例详述表
用例名称: | 学生查看收藏的课程 | 层次: | 用户目标 |
简述/背景: | 学生登录《慕课学习平台系统》查看收藏的课程 | ||
范围: | 系统 | ||
主用角责权利 | 学生:查看收藏的课程 | ||
其他干系者责权利: | 无 | ||
后置条件: | 学生成功查看收藏的课程。 | ||
前置条件: | 学生登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.学生点击首页我的学习。 2.系统显示我的学习页面。 3.系统显示收藏的课程列表。(用例结束) | ||
扩展流: | 无 |
表3-9 学生学观看视频用例详述表
用例名称: | 学生学习课程 | 层次: | 用户目标 |
简述/背景: | 学生登录《慕课学习平台系统》学习课程 | ||
范围: | 系统 | ||
主用角责权利 | 学生:学习课程 | ||
其他干系者责权利: | 无 | ||
后置条件: | 学生成功学习课程。 | ||
前置条件: | 学生登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.学生点击所要学习的课程。 2.系统显示该课程详情页面。 3.学生点击该课程详情页面里的任意知识点。 4.系统显示视频页面。 5.学生点击播放视频。 6.系统开始播放该知识点课程视频。(用例结束) | ||
扩展流: | 无 |
表3-10 学生评价课程用例详述表
用例名称: | 学生评价课程 | 层次: | 用户目标 |
简述/背景: | 学生登录《慕课学习平台系统》评价课程 | ||
范围: | 系统 | ||
主用角责权利 | 学生:评价课程 | ||
其他干系者责权利: | 无 | ||
后置条件: | 学生成功评价课程。 | ||
前置条件: | 学生点开《慕课学习平台系统》某一课程。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.学生点击该课程详情页面里评价课程。 2.系统显示分数框。 3.学生输入成绩点击保存。 4.系统保存分数后显示出最终得分。(用例结束) | ||
扩展流: | 3a.输入的分数为空: 分数不得为空。 |
表3-11 学生发表评论用例详述表
用例名称: | 学生发表评论 | 层次: | 用户目标 |
简述/背景: | 学生登录《慕课学习平台系统》发表评论 | ||
范围: | 系统 | ||
主用角责权利 | 学生:发表评论 | ||
其他干系者责权利: | 无 | ||
后置条件: | 学生成功发表评论。 | ||
前置条件: | 学生点开《慕课学习平台系统》某一课程内的知识点。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.学生在视频页面中的评论框中输入评论。 2.学生点击提交。 3.系统保存评论并显示在页面上。(用例结束) | ||
扩展流: | 3a.输入的评论包含敏感词: 敏感词被转化为*。 |
表3-12 学生在线答题用例详述表
用例名称: | 学生在线答题 | 层次: | 用户目标 |
简述/背景: | 学生登录《慕课学习平台系统》在线答题 | ||
范围: | 系统 | ||
主用角责权利 | 学生:在线答题 | ||
其他干系者责权利: | 无 | ||
后置条件: | 学生成功在线答题。 | ||
前置条件: | 学生点开《慕课学习平台系统》某一课程内的知识点。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.学生在视频页面中点击在线答题。 2.系统显示答题页面。 3.学生答题完毕点击提交。 4.系统保存分数并显示出成绩。(用例结束) | ||
扩展流: | 无 |
表3-13 教师创建课程用例详述表
用例名称: | 教师创建课程 | 层次: | 用户目标 |
简述/背景: | 教师登录《慕课学习平台系统》创建课程 | ||
范围: | 系统 | ||
主用角责权利 | 教师:创建课程 | ||
其他干系者责权利: | 无 | ||
后置条件: | 教师成功创建课程。 | ||
前置条件: | 教师登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.教师点击创建课程。 2.系统弹出创建课程编辑页面。 3.教师填写完课程信息点击提交。 4.系统保存课程信息并显示创建成功。 5.系统跳转到课程列表页面(用例结束) | ||
扩展流: | 5a.课程名为空: 课程名不能为空。 5b.课程海报为空: 课程海报不能为空。 |
表3-14 教师添加知识点用例详述表
用例名称: | 教师添加知识点 | 层次: | 用户目标 |
简述/背景: | 教师登录《慕课学习平台系统》添加知识点 | ||
范围: | 系统 | ||
主用角责权利 | 教师:添加知识点 | ||
其他干系者责权利: | 无 | ||
后置条件: | 教师成功添加知识点。 | ||
前置条件: | 教师登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.教师点击课程列表。 2.系统显示我的课程列表。 3.教师点击任意课程的管理知识点按钮。 4.系统显示知识点列表页面。 5.教师点击添加知识点。 6.系统弹出添加知识点编辑页面。 7.教师填写完成后点击提交。 8.系统保存知识点信息并显示添加成功。 9.系统跳转至知识点列表页面。(用例结束) | ||
扩展流: | 7a.知识点名为空: 知识点名不能为空。 |
表3-15 教师上传视频用例详述表
用例名称: | 教师上传视频 | 层次: | 用户目标 |
简述/背景: | 教师登录《慕课学习平台系统》上传视频 | ||
范围: | 系统 | ||
主用角责权利 | 教师:上传视频 | ||
其他干系者责权利: | 无 | ||
后置条件: | 教师成功上传视频。 | ||
前置条件: | 教师打开《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.教师点击上传视频。 2.系统显示上传视频编辑页面。 3.教师选择课程名和知识点名。 4.教师输入视频详细信息后点击上传。 5.系统显示上传成功。(用例结束) | ||
扩展流: | 无 |
教师上传试题用例详述表参考表3-15。
表3-16 教师删除课程用例详述表
用例名称: | 教师删除课程 | 层次: | 用户目标 |
简述/背景: | 教师登录《慕课学习平台系统》删除课程 | ||
范围: | 系统 | ||
主用角责权利 | 教师:删除课程 | ||
其他干系者责权利: | 无 | ||
后置条件: | 教师成功删除课程。 | ||
前置条件: | 教师登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.教师点击课程列表。 2.系统显示课程列表页面。 3.教师点击课程上对应的删除。 4.系统成功删除该课程并显示删除成功。(用例结束) | ||
扩展流: | 无 |
教师删除知识点用例详述表参考表3-16。
表3-17 教师回复评论用例详述表
用例名称: | 教师回复评论 | 层次: | 用户目标 |
简述/背景: | 教师登录《慕课学习平台系统》回复评论 | ||
范围: | 系统 | ||
主用角责权利 | 教师:回复评论 | ||
其他干系者责权利: | 无 | ||
后置条件: | 教师成功回复评论。 | ||
前置条件: | 教师登录《慕课学习平台系统》。 | ||
触发事件: | 步骤1 | ||
基本流: | 1.教师点击知识点评论。 2.系统显示知识点评论页面。 3.教师点击评论后的回复。 4.系统显示回复界面。 5.教师填写完回复点击提交。 6.系统保存回复并显示页面上。(用例结束) | ||
扩展流: | 6a.输入的评论包含敏感词: 敏感词被转化为*。 |
3.2 非功能性需求
3.2.1 易用性
系统要充分考虑人性化设计,如:完成上传视频、上传试题或者其他功能的页面不要超过3个,既便于用户使用,又要便于系统管理。
3.2.2 可扩展性
对于未来平台数据库的扩充应该做到数据库扩容的同时只需要修改一些数据库的配置文件,而不应该去修改平台的源程序。
3.2.3 可靠性
鲁棒性:当用户有非法输入时,系统能够作出恰当的处理。
安全性:只有用户登录信息正确无误时才可以登入系统,系统在数据库、应用操作权限、数据权限、身份认证等方面,提供安全防护,学生只能操作自己的课程,老师也只能管理自己的视频。
3.3 对象模型
3.3.1 实体类
慕课学习平台的实体类分别为:教师信息、学生信息、管理员信息、课程信息、知识点信息、视频信息、试题信息、评论信息、公告信息、学校信息、收藏夹信息、答题记录信息。
图3.3 系统实体类类图
3.3.2 边界类
系统的边界类即系统的界面,具体如下:
- 管理员:登录界面、管理员首页、查看试题界面、上传试题界面、更新试题界面、查看视频界面、上传视频界面、更新视频界面、查看学校界面、添加学校界面、发布公告界面、更新公告界面、查看课程界面、上传课程界面、修改课程界面、查看知识点界面、添加知识点界面、查看课程得分界面、查看课程评价界面、修改个人信息界面。
2)教师:登录界面、注册界面、创建课程界面、查看自己创建的课程界面、创建知识点界面、查看自己创建的知识点界面、上传试题界面、查看自己创建的试题界面、上传视频界面、查看自己上传的视频界面、查看评论界面、修改个人信息界面。
3)学生:登录界面、注册界面、查看学校界面、查看公告界面、浏览全部课程界面、浏览分类的课程界面、查看我添加的课程界面、查看课程界面、播放视频界面、在线答题界面。
3.3.3 控制类
3)学生:注册处理过程、登录处理过程、添加课程处理过程、发表评论处理过程、在线答题处理过程。
3.4 动态模型
3.4.1 活动图
图3.4 在线测试活动图
图3.5 视频和评论管理活动图
图3.6 教师创建课程活动图
3.4.2 顺序图
图3.7 管理员登录顺序图
教师登录顺序图,学生登录顺序图参考图3.7。
图3.8 管理员添加学校顺序图
管理员添加课程分类顺序图,管理员添加教师顺序图,管理员添加学生顺序图,管理员添加公告顺序图参考图3.8。
图3.9 管理员删除学校顺序图
管理员删除课程分类顺序图,管理员删除教师顺序图,管理员删除学生顺序图,管理员删除公告顺序图参考图3.9。
图3.10 教师创建课程顺序图
教师创建知识点顺序图参考图3.10。
图3.11 教师上传视频顺序图
教师上传试题顺序图参考图3.11。
图3.12 学生收藏课程顺序图
图3.13 学生发表评论顺序图
图3.14 学生在线答题顺序图
4 系统设计
4.1 系统体系结构
4.1.1 体系结构设计
C/S体系结构,是将任务发布到客户端和服务器端,降低了系统的通讯成本,用户需要安装客户端才可使用。C/S架构开发比较容易,操作简便,但应用的升级和客户端的维护比较困难。
B/S体系结构,是对C/S结构的一种改变或者改进。在这种结构下,用户不需要安装特定的客户端,通过万维网即可访问。由于客户端没有程序,应用程序基本上都在服务器端,所以应用程序的升级和维护都可以在服务器端完成,故升级维护方便。
相比较C/S体系,B/S体系结构有如下优点:
可用性:任何时间、任何地点、任何系统,通过浏览器即可访问,就能够使用B/S系统的终端。
扩展性:系统的扩展与维护在软件生存周期中占很大比重。B/S的开发、维护等几乎所有工作都集中在服务器端。当需要对应用程序进行升级时,只需更新服务器端的应用法程序就可以。
安全性:B/S只需要注重服务端安全即可。B/S系统只对外开放HTTP协议和端口,数据库只允许服务器一台机器访问。
兼容性:由于JAVA这样的跨平台语言出现之后,B/S可兼容于所有主流数据库和操作系统。
根据本次设计的基本需求,预计慕课学习平台客户端在10000以上,后期视频上传量大、更新迅速,综合B/S和C/S结构的比较,故使用B/S 架构效果更佳。
4.1.2 系统分解
图4.1 系统分解图
4.2 系统部署设计
- 确定系统需要的软件配置。
- 软件配置
表4-1 软件配置
软件名称 | 版本 |
操作系统 | Window 10操作系统 |
开发语言 | JAVA(JDK 1.8.0) |
开发工具 | Eclipse Luna |
数据库 | MySQL 5.5 |
Web 服务器 | Tomcat8.0 |
3)部署图
图4.2 系统部署图
4.3 系统存储设计
4.3.1 ER图
图4.3 慕课学习平台ER图
4.3.2 关系模式
1)教师(教师id,学校名称,教师姓名,密码,权限)
2)学生(学生id,学生姓名,密码,权限)
3)学校(学校id,学校名,学校照片)
4)课程(课程id,学校id,老师id,课程名,内容,得分,类型,课程照片,创建时间)
5)知识点(知识点id,课程id,知识点名)
6)视频(视频id,知识点id,课程id,教师id,视频名称,视频路径,上传时间)
7)试题(试题id,知识点id,课程id,教师id,试题内容,试题答案,选项A,选项B,选项C,选项D)
8)收藏夹(收藏夹id,学生id,课程id)
9)评分表(评分id,课程id,学生id,教师id,评价分数,评价时间)
10)评论(评论id,课程id,知识点id,评论,时间)
11)教师回复(教师id,学生id,课程id,知识点id,时间)
4.3.3 数据字典
表4-2 管理员表(admin)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
username | varchar | 50 | 否 | 用户名 | ||
password | varchar | 10 | 否 | 密码 | ||
power | int | 4 | 否 | 权限 | ||
birth | date | 否 | 出生年月 | |||
| varchar | 50 | 否 | 邮箱 |
表4-3 教师表(teacher)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
username | varchar | 50 | 否 | 用户名 | ||
name | varchar | 50 | 否 | 真实姓名 | ||
password | varchar | 10 | 否 | 密码 | ||
power | int | 4 | 否 | 权限 | ||
college | varchar | 50 | 否 | 学校 | ||
birth | date | 否 | 出生年月 | |||
| varchar | 50 | 否 | 邮箱 |
表4-4 学生表(student)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
username | varchar | 50 | 否 | 用户名 | ||
name | varchar | 50 | 否 | 真实姓名 | ||
password | varchar | 10 | 否 | 密码 | ||
power | int | 4 | 否 | 权限 | ||
college | varchar | 50 | 否 | 学校 | ||
birth | date | 否 | 出生年月 | |||
| varchar | 50 | 否 | 邮箱 |
表4-5 学校表(college)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
cid | int | 11 | 否 | 学校编号 | ||
cname | varchar | 50 | 否 | 学校名称 | ||
caddr | varchar | 255 | 否 | 学校地址 | ||
cconent | varchar | 255 | 否 | 学校描述 | ||
cposter | varchar | 50 | 否 | 学校图片 | ||
cxh | varchar | 50 | 否 | 校徽图片 | ||
cbg | varchar | 50 | 否 | 背景图片 |
表4-6 公告表(news)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
nid | int | 11 | 否 | 公告编号 | ||
ntitle | varchar | 50 | 否 | 公告标题 | ||
nconent | varchar | 255 | 否 | 公告内容 | ||
time | date | 否 | 发布时间 |
表4-7 课程表(course)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
cid | int | 11 | 否 | 课程编号 | ||
cname | varchar | 50 | 否 | 课程名称 | ||
ctpye | varchar | 50 | 否 | 课程类别 | ||
ccontent | varchar | 1024 | 否 | 课程介绍 | ||
cposter | varchar | 50 | 否 | 课程海报 | ||
cscore | int | 8 | 课程评分 | |||
time | date | 否 | 创建时间 | |||
teacherId | int | 11 | 是 | 否 | 教师编号 |
表4-8 知识点表(subject)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
subid | int | 11 | 否 | 知识点编号 | ||
subname | varchar | 50 | 否 | 知识点名称 | ||
subcontent | varchar | 1024 | 否 | 知识点介绍 | ||
cid | int | 11 | 是 | 否 | 课程编号 |
表4-9 视频表(video)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
vid | int | 11 | 否 | 视频编号 | ||
vname | varchar | 50 | 否 | 视频名称 | ||
vurl | varchar | 50 | 否 | 视频路径 | ||
time | date | 否 | 上传时间 | |||
cid | int | 11 | 是 | 否 | 课程编号 | |
subid | int | 11 | 是 | 否 | 知识点编号 | |
tid | int | 11 | 是 | 否 | 教师编号 |
表4-10 课后题表(quiz)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
qid | int | 11 | 否 | 课后题编号 | ||
ttitle | varchar | 1024 | 否 | 课后题题干 | ||
tanswer | varchar | 8 | 否 | 课后题答案 | ||
op1 | varchar | 1024 | 否 | 选项A | ||
op2 | varchar | 1024 | 否 | 选项B | ||
op3 | varchar | 1024 | 否 | 选项C | ||
op4 | varchar | 1024 | 否 | 选项D | ||
cid | int | 11 | 是 | 否 | 课程编号 | |
subid | int | 11 | 是 | 否 | 知识点编号 | |
tid | int | 11 | 是 | 否 | 教师编号 |
表4-11 收藏夹表(collection)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 自动生成 | |
cid | int | 11 | 是 | 否 | 课程编号 | |
stuId | int | 11 | 是 | 否 | 学生编号 |
表4-12 打分表(score)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | Int | 11 | 是 | 否 | 自动生成 | |
score | Int | 8 | 否 | 分数 | ||
time | Date | 否 | 发表时间 | |||
cid | Int | 11 | 是 | 否 | 课程编号 | |
sid | Int | 11 | 是 | 否 | 学生编号 | |
tid | Int | 11 | 是 | 否 | 教师编号 |
表4-13 学生评论表(comment)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 评论编号 | |
sid | int | 11 | 是 | 否 | 学生编号 | |
subd | int | 11 | 是 | 否 | 知识点编号 |
表4-14 教师评论回复表(reply)
字段名 | 数据类型 | 字段长度 | 主键 | 外键 | 能否为空 | 备注 |
id | int | 11 | 是 | 否 | 评论编号 | |
tid | int | 11 | 是 | 否 | 教师编号 | |
subid | int | 11 | 是 | 否 | 知识点编号 | |
sid | int | 11 | 是 | 否 | 学生编号 |
4.4 访问控制
ID标识不同用户的访问权限。
表4-15 访问权限表
ID | 用户 | 描述 |
0 | 管理员 | 新增或删除学校,新增或删除课程类别,新增获删除学生或教师,新增或删除公告。 |
1 | 教师 | 用户注册,用户登录,创建课程,删除课程,编辑课程详情,创建知识点,上传视频,修改知识点所对应的视频,删除知识点,上传题目及答案,浏览及回复评论。 |
2 | 学生 | 用户注册,用户登录,查看课程,添加课程,删除已经添加的课程,评论课程,回复其他人评论,在线答题。 |
5 推荐算法
本系统采用了基于内容的推荐算法(CB)。
5.1 算法思路
基于内容的推荐算法就是根据历史信息(如评价、分享、收藏过的文档)构造用户偏好模型, 计算推荐项目与用户偏好模型的相似度, 将最相似的项目推荐给用户。在本系统的课程推荐中,首先分析用户收藏的的课程的共性(类型、课程名),再推荐与这些课程相似度高的其他课程。
基于内容的推荐(CB)的步骤有以下三个步骤:
(1)为每个物品(Item)构建一个物品的属性资料(Item Profile)。
(2)为每个用户(User)构建一个用户的喜好资料(User Profile)。
(3)计算用户喜好资料与物品属性资料的相似度,相似度高意味着用户可能喜欢这个物品,相似度低往往意味着用户不喜欢这个物品。
5.2 算法描述
用户偏好文档和推荐项目文档提取特征值采用的课程的“名字”、“分类”属性。将课程名字作为向量,创建向量空间模型,使用map实现,主键为词项,值存放着对应词项在总字符串中的出现次数。分词采用一个开源的分词包IKAnalyzer2012_u6。用正则表达式去除数字和“的”、“与”这些无用词。
将用户偏好文档用向量表示为:
同理,将推荐项目文档表示为:
计算两个字符串(英文字符)的相似度,用余弦相似度计算
(h=max(n,m))
作为两门课程的相似度。再由相似度从高到低返回对应的课程编号。
6 SpringBoot国际化
6.1 国际化
广义上国际化的意思是设计和制造能够适合不同地区需求的产品的一种方式。它要求从产品中去掉所有该地域语言。对于应用程序来说,应用程序在设计时考虑在不同地区运行的需要,去掉所有该地区的语言,从而用通用的计算机编码方式(Unicode)表示,这样的代码可以适应不同地区的需求。开发这种程序的过程,就叫做国际化。
6.2 技术介绍
(1)对于软件中的菜单栏、导航条、状态信息等这些固定不变的文本信息,可以把它们写在properties文件中,并根据中英文编写的不同的properties文件。这一组properties文件称之为一个资源包。
(2)一个资源包中的每个资源文件都必须拥有共同的基名。除了基名,每个资源文件的名称中还必须有标识其本地信息的附加部分。
图6.1 国际化技术配置文件
- 资源文件的内容通常采用"关键字=值"的形式,软件根据关键字检索值显示在页面上。一个资源包中的所有资源文件的关键字必须相同,值则为相应国家的文字。
图6.2 国际化的中文环境的properties文件
图6.3 国际化的英文环境的properties文件
java提供了一个native2ascII工具用于将中文字符进行编码处理,native2ascII的用法如下所示:
图6.4 中文转Unicode码
- 页面所有固定文本采用th:text = "#{key}"这种固定模式书写,在这个代码里面,根据用户传过来的值,配置类实现页面文本的翻译转换。从而显示不同语言版本的界面。
图6.5 英文界面
7 系统实现
7.1 系统界面概述
图7.1 管理员及老师界面导航
图7.2 学生界面导航
7.2 登录模块
7.2.1 学生登录
图7.3 学生登录页面
图7.4 学生主界面
图7.5 学生主界面下部分
学生登录慕课学习平台首页如图所示。页面上方是图片滚动效果,设有定时器,5秒轮换一张图片,当鼠标指到图片上方,图片停止滚动,鼠标离开,图片开始循环滚动。
图7.6 学生登录类图
实体类为student,界面类为stuLogin,控制类为loginController。
7.2.2 管理员及教师登录
图7.7 管理员登录界面
登录有两种方式,一种是中文登录,点击“登录”可进入中文版慕课系统;点击“login”可进入英文版慕课系统。利用CSS实现页面动画效果。
图7.8 管理员中文主界面
图7.9 教师登录类图
实体类为user,界面类为teaLogin控制类为loginController。
7.3 学校模块
7.3.1 管理员添加学校
图7.10 管理员添加学校
管理管依次上传学校的预览图片,学校的背景图片,学校的校徽图片和学校的描述。
图7.11 管理员添加学校类图
实体类为college,界面类为collegeQuery,collegeAdd,控制类为collegeController。
7.3.2 管理员查看学校
图7.12 管理员查看所有学校
管理员在后台可以查看所有的学校信息。
7.3.3 学生查看学校
图7.13 学生查看学校
学生在慕课学习平台可以选择学校进入相应的学校页面。
图7.14 学生查看学校详情
学生点击进入西安科技大学,在西安科技大学页面可以快速的访问该学校的所有课程。
7.4 课程模块
7.4.1 教师创建课程
图7.15 教师创建课程
教师点击创建课程,填写相关信息并且学生页面的课程预览图片。
图7.16 教师创建课程类图
实体类为college,teacher,course,界面类为courseQuery,courseAdd,控制类为courseController。
大家点赞、收藏、关注、评论啦 其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者