基于springboot的慕课学习平台设计与实现


博主介绍:专注于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 边界类

系统的边界类即系统的界面,具体如下:

  1. 管理员:登录界面、管理员首页、查看试题界面、上传试题界面、更新试题界面、查看视频界面、上传视频界面、更新视频界面、查看学校界面、添加学校界面、发布公告界面、更新公告界面、查看课程界面、上传课程界面、修改课程界面、查看知识点界面、添加知识点界面、查看课程得分界面、查看课程评价界面、修改个人信息界面。

2)教师:登录界面、注册界面、创建课程界面、查看自己创建的课程界面、创建知识点界面、查看自己创建的知识点界面、上传试题界面、查看自己创建的试题界面、上传视频界面、查看自己上传的视频界面、查看评论界面、修改个人信息界面。

    3)学生:登录界面、注册界面、查看学校界面、查看公告界面、浏览全部课程界面、浏览分类的课程界面、查看我添加的课程界面、查看课程界面、播放视频界面、在线答题界面。

  3.3.3 控制类

  1. 管理员:登录处理过程、添加学校处理过程、发布公告处理过程。
  2. 教师:登录处理过程、创建课程处理过程、创建知识点处理过程、上传视频处理过程、上传试题处理过程、回复评论处理过程。

    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 系统部署设计

  1. 确定系统需要的软件配置。  
  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

出生年月

email

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

出生年月

email

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

出生年月

email

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 国际化技术配置文件

  1. 资源文件的内容通常采用"关键字=值"的形式,软件根据关键字检索值显示在页面上。一个资源包中的所有资源文件的关键字必须相同,值则为相应国家的文字。

图6.2 国际化的中文环境的properties文件

图6.3 国际化的英文环境的properties文件

java提供了一个native2ascII工具用于将中文字符进行编码处理,native2ascII的用法如下所示:

图6.4 中文转Unicode码

  1. 页面所有固定文本采用th:text = "#{key}"这种固定模式书写,在这个代码里面,根据用户传过来的值,配置类实现页面文本的翻译转换。从而显示不同语言版本的界面。

图6.5 英文界面

图6.6 中文界面

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。

大家点赞、收藏、关注、评论啦  其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

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

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

相关文章

【STM32 ST-LINK Utility】工具使用和如何编译HEX和BIN文件

【STM32 ST-LINK Utility】工具使用和如何编译HEX和BIN文件 一、STM32 ST-LINK UtilitySTM32 ST-LINK Utility简介功能概述: STM32 ST-LINK Utility作用使用场景: 二、KEIL生成HEX和BIN文件1. 生成HEX文件2. 生成BIN文件 三、STM32 ST-LINK Utility烧录1…

pywebview 中错误使用async

错误代码 正确示例 完整代码 前端代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>pywebview …

分布式事务学习笔记(四)微服务实现Stata AT模式、Stata Saga模式介绍

文章目录 前言4 Seata AT 模式4.1 实现原理4.2 脏写问题4.3 微服务实现AT模式4.3.1 新建数据库表4.3.2 修改配置文件4.3.3 重启服务并测试 5 Seata Saga 模式 前言 分布式事务学习笔记(一)分布式事务问题、CAP定理、BASE理论、Seata 分布式事务学习笔记(二)Seata架构、TC服务器…

小间距LED显示屏的技术原理分析

在现代显示技术领域&#xff0c;小间距LED显示屏以其卓越的显示效果和灵活的应用场景&#xff0c;逐渐成为市场的新宠。本文将深入探讨小间距LED显示屏的技术原理&#xff0c;分析其在显示领域的应用优势。 A、小间距LED显示屏的基本概念 小间距LED显示屏是指LED灯珠之间的间距…

大模型微调基本概念指北,零基础入门到精通,收藏这一篇就够了

本文主要分享一下大模型微调相关的基本概念&#xff0c;包括大模型(GPT)训练流程、微调(SFT)方法&分类&框架&最佳实践、强化学习(RLHF)&#xff0c;最后则是分享了如何训练垂直领域大模型。 本文是参考网上博客、文章后进行总结而成&#xff0c;旨在让刚接触大模型…

03-Mac系统PyCharm主题设置

目录 1. 打开PyCharm窗口 2. Mac左上角点击PyCharm&#xff0c;点击Settings 3. 点击第一项Appearance& Behavior 4. 点击Appearance 5. 找到Theme进行设置 1. 打开PyCharm窗口 2. Mac左上角点击PyCharm&#xff0c;点击Settings 3. 点击第一项Appearance& Behavi…

软考高级:嵌入式系统:片级初始化、板级初始化、系统级初始化 AI 解读

生活化例子 想象一下你要启动一辆车&#xff0c;这个过程就可以类比成嵌入式系统的初始化过程。 片级初始化&#xff1a;相当于启动汽车引擎&#xff0c;确保发动机、变速箱这些核心部件能够正常工作。板级初始化&#xff1a;就像检查车子的电子系统、灯光、车窗是否正常&am…

整流电路的有源逆变工作状态

目录 1. 逆变的概念 2. 有源逆变的条件 3. 电流电路的概念 4. 产生逆变的条件 5. 三相桥式全控整流电路的有源逆变工作状态 6. 逆变角的概念 7. 逆变失败的原因 8. 最小逆变角的限制 整流电路的有源逆变状态是指通过控制整流器&#xff0c;使其将直流电源的能量反向送回…

如何写出军工级的代码?

编写军工级代码意味着要达到极高的可靠性、安全性、可维护性和效率&#xff0c;这通常涉及到严格的标准和流程。以下是一些关键点&#xff0c;帮助你编写军工级的代码&#xff1a; 1. 遵循严格的开发流程 军工项目通常需要遵循特定的软件开发标准&#xff0c;例如&#xff1a;…

农产品自主供销小程序--论文源码调试讲解

第二章 开发技术介绍 此次管理系统的关键技术和架构由B/S结构、java和mysql数据库&#xff0c;是本系统的关键开发技术&#xff0c;对系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划。 2.1 系统开发平台 在该在线农产品自主供销小程序中&a…

WebMagic:强大的Java网络爬虫框架

上班苦上班累&#xff0c;上班就想打瞌睡。 在当今信息爆炸的时代&#xff0c;数据的获取和处理变得越来越重要。网络爬虫作为获取网络数据的重要工具&#xff0c;已经成为许多开发者和数据科学家的必备技能。今天&#xff0c;我们将介绍一个广受欢迎的Java网络爬虫框架——We…

为什么Python有了列表list、元组tuple、字典dict这样的容器后,还要弄个集合set?

因为set是数学意义上的集合&#xff0c;拥有唯一和无序的特性&#xff0c;即用来存放没有顺序且无重复的数据&#xff0c;并且元素是不可变的。 这和list、tuple完全不同&#xff0c;这两个能存放相同的元素&#xff0c;且支持索引&#xff0c;有顺序。 set可以很方便的进行并…

激光模组多少钱一套?具体费用的决定因素

激光模组作为现代科技领域的重要组件&#xff0c;然而&#xff0c;对于许多潜在买家而言&#xff0c;激光模组的价格往往是一个令人困惑的问题。本文将跟大家一起探讨激光模组的价格范围及其具体费用的决定因素。 激光模组的价格范围 激光模组的价格因多种因素而异&#xff0c;…

【2025深圳春季全球高端食品展览会展位开始预订】

2025深圳春季全球高端食品展览会 时间&#xff1a;2025年2月23-25日 地点&#xff1a;深圳国际会展中心&#xff08;宝安&#xff09; 随着全球食品行业的蓬勃发展&#xff0c;中国作为世界第二大经济体&#xff0c;其食品市场规模持续扩大&#xff0c;展现出巨大的发展潜力…

.NET 一款免杀的白名单工具可执行系统命令

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

优化内容个性化:无限住宅代理如何做到的

数字化时代&#xff0c;个性化内容是提升用户体验和增加用户粘性的关键因素。企业通过个性化内容来满足用户的独特需求和兴趣&#xff0c;从而提高用户满意度和转化率。然而&#xff0c;个性化内容的实现需要准确的用户数据和行为分析&#xff0c;这就要求企业能够有效地收集和…

陶哲轩对OpenAI o1模型使用体验的观察

&#x1f989; AI新闻 &#x1f680; 陶哲轩对OpenAI o1模型使用体验的观察 摘要&#xff1a;陶哲轩在8月份使用OpenAI最新模型o1&#xff0c;发现其在解决数学问题方面有所进步&#xff0c;能成功识别克莱姆定理&#xff0c;但仍存在错误。虽然o1比之前的模型表现更好&#…

腾讯百度阿里华为常见算法面试题TOP100(5):子串、堆

之前总结过字节跳动TOP50算法面试题&#xff1a; 字节跳动常见算法面试题top50整理_沉迷单车的追风少年-CSDN博客_字节算法面试题 子串 560.和为K的子数组 class Solution { public:int subarraySum(vector<int>& nums, int k) {// 寻找在区间[i, j]的和为k的值// 用…

自托管的网站应用防攻击防火墙SafeLine

背景介绍 在当今数字化时代&#xff0c;网络安全面临着前所未有的挑战。随着网络攻击技术的不断进步&#xff0c;从 SQL 注入、XSS 攻击到更为复杂的 RCE 和 SSRF 攻击&#xff0c;网站和 web 应用程序的安全防护变得越来越困难。这些攻击不仅威胁到个人和企业的敏感数据&…

基于51单片机的锅炉控制系统PID调节proteus仿真

地址&#xff1a; https://pan.baidu.com/s/1zsACHTP2EpYVyqC-ht0HMg 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C52/AT89C51是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMicroelectro…