【优秀论文】基于Java的慕课MOOC在线学习平台的设计与开发/SSM框架/自主服务平台
说明:图片无法显示,原文件联系up主
摘 要
随着科学技术的发展,新时代的学生需要一种更为便捷的方式去寻找一个学习平台来不断学习知识,丰富自己,而本系统的开发真正意义上帮助了对学习和知识渴望的学生群体解决了困扰着自己的问题。MOOC自主服务平台的开发将围绕网络教学存在的实际情况,弥补了现阶段网站中师生交互性能差,只能观看视频的缺陷,加入留言等功能进一步解决学生在学习过程中存在的问题,加快学习效率,同时也给教师授课带来方便,无需线下教学,摆脱位置和时间的限制。
本论文共分五部分即:MOOC自主服务平台概述、系统需求分析、系统设计、系统实现、系统测试。本论文将对于在线教学、在线交互式答疑、在线测试巩固知识等几方面进行论述。本系统采用JAVA开发语言技术进行设计实现,页面前端使用JSP和HTML + CSS + JavaScript技术实现,系统后端使用Spring MVC + MyBatis开发框架,服务器使用了Tomcat。本系统有三个板块,即:用户、教师、管理员。用户可以在线上进行学习、做题、测试、观看教学资源等,教师添加练习册、测试卷、课程和教学资源视频等,管理员可以管理用户和教师以及所有课程管理、测试卷管理、教学资源管理、用户观看课程等方面的管理。
关键词:JSP;Spring MVC;精品课程;交互式
目 录
1 系统设计目标
2 系统需求分析
2.1 可行性研究
2.2系统功能需求
2.3系统性能需求
3 系统总体设计
3.1 系统模块结构设计
3.2 数据库设计
3.3 亮点设计
4 系统详细设计与实现
4.1 管理员功能模块
4.1.1 管理员登录的设计与实现
4.1.2 课程页面的设计与实现
4.1.3课件管理的设计与实现
4.2 学生功能模块
4.2.1 课程查询页面
4.2.2在线测试的设计与实现
4.2.3错误回顾
4.2.4个人信息
4.3 用户功能模块
4.3.1 课程文件管理的设计与实现
4.3.2 学生行为分析的设计与实现
4.3.3 讨论管理
5 系统测试
总 结
参考文献
致 谢
附录
1 系统设计目标
随着计算机技术的发展以及MOOC自主服务平台应用的推广和普及,尤其是在线学习更是成为现在的一个趋势。然而现有的在线教学资源系统已经无法满足当今科技发展后人们日益增长的精神和文化生活的需要,主要原因是开发教学资源系统的成本比较高,大多数的小型管理系统的生产商不愿意为其付出太高,而且存在缺少一些技术上的支持。总的来说,线上授课系统不是很完善,还有很大的发展空间,所以本系统的开发意义重大。
本论文总体分为五大部分,即MOOC自主服务平台系统概述、系统需求分析、系统设计、系统实现、系统测试。系统概述主要内容是对网络授课背景和MOOC自主服务平台系统的基本介绍,项目开发背景及必要性。系统需求分析、系统设计、系统实现和系统测试是本论文的核心部分,主要内容是具体阐述MOOC自主服务平台系统的开发过程和方法。
本系统的设计与实现可以有效地让教师的教书方式更加便利化、系统化,减少线下授课过程中的缺陷并且降低教学成本,立志打造一款主流教学网站。系统技术目标经过实现,功能是由管理员模块、测试模块、用户模块、课程分类模块、教学资源模块等各项功能模块构建而成的。用户登陆系统后可以在线查看系统中的教学资源信息,在线查看并学习,查看个人学习记录,维护个人用户信息。教师用户通过系统可以发布教学资源,查看个人发布课程学习的学生学习记录,管理课程等操作。管理员作为系统中最高权限的用户角色,在登录系统后可以维护和管理系统中的用户、教师、教学资源等系统中所有的功能模块。
2 系统需求分析
2.1 可行性研究
系统模型如表2-1所示,主要包括本系统提取的业务对象。
表2-1 系统模型结构比例图
teacher
Admin
student
-id
-username
-password
-sign
-mame
-code
-id
-username
-password
-id
-username
-password
-sign
-mame
-code
本网站的应用服务器和数据库服务器为同一台服务器。其配置为:CPU是英特尔双核,主频是100MHz,运行内存为4GB。由于应用服务器和数据库服务器为一台服务器,所以所需硬盘容量较大,硬盘容量为120GB。客户端可通过Internet访问服务器。设备分布图如图2-1所示:
应用及数据库服务器
移动设备浏览器
pc设备浏览器
图2-1 网络拓扑图
2.2 系统功能需求
本系统实现MOOC平台的线上自主服务,通过分析,确定系统的三个角色:学生、教师和管理员,分别具有不同的功能。
学生功能模块实现如下:
①首页:学生成功登录后进入到首页;
②课程查询:学生可以对自己的想要学习的课程进行查询;
③文件查询:学生可以对课程的相关文件进行查询;
④讨论查询:对相关课程可参与讨论及查询;
⑤公告查询:对新发布的公告进行查询;
⑥作业查询:可查询自己以往的作业以及考试;
⑦个人信息:学生可查看自己的个人信息;
⑧学习记录:记录学生已经参与学习的课程以及正确率和错误率。
教师功能模块实现如下:
①首页:教师成功登录后进入到首页;
②学生信息管理:教师可对学生的信息进行增删改查;
③课程文件管理:教师可对相关的课程文件进行增删改查;
④讨论管理:教师可对学生发布的讨论信息进行管理;
⑤作业管理:教师可发布相关课程的考试以及作业;
⑥题库管理:教师对已有题库的增删改查;
⑦学生行为分析:教师可查看学生已有的学习记录并阅卷;
⑧个人信息管理:教师可以对自己的信息进行增删改查;
⑨视频推荐:教师可在此进行课程视频的推荐。
管理员功能模块实现如下:
①首页:管理员成功登录后进入到首页;
②学生信息管理:管理员可对学生的信息进行增删改查;
②教师信息管理:管理员可对教师的信息进行增删改查;
④专业管理:管理员可以新增专业以及对已存在专业的管理;
⑤课程管理:管理员可以新增课程以及对已存在课程的管理;
⑥课件管理:管理员可分别对已上传的课程文档和课程视频进行管理;
⑦作业管理:管理员可对教师已经发布的作业和考试进行管理;
⑧论坛管理:管理员可对整个论坛上的讨论进行管理;
⑨公告管理:管理员可在此发布公告以及编辑已经发布的公告。
(1) 系统整体用例图
系统分为管理员、教师和学生三个权限,管理员主要是对学生、教师权限管理,教师主要是发布课程和作业,学生查看课程和作业。下图2-2是系统整体的用例图:
图2-2 系统整体用例图
(2) 核心功能用例规约
表2-2 删除课程用例规约表
用例名称
删除课程
参与者
教师
前置条件
已经已教师身份登陆系统
用例概述
教师可以删除一个发布过的课程信息。
基本事件流
1.教师通过课程管理页面删除一个课程信息。
2.系统服务器接收到客户端删除请求后对教师身份信息进行校验。
3.系统服务器对客户端提交的删除课程请求信息进行校验。
4.通过校验后服务器查询数据库服务器从课程表中删除相应的课程记录。
5.删除成功
备选事件流
a.身份校验失败,删除失败
备注
教师没有点击删除按钮,系统不会执行操作。
表2-3 查看学生用例规约表
用例名称
查看学生个人信息
参与者
学生
前置条件
已经已学生身份登陆系统
用例概述
用户可以查看个人的详细信息。
基本事件流
1.用户发起查看个人信息请求。
2.系统在用户信息表中检索该用户的个人信息数据。
3.系统显示个人信息界面并显示个人信息
备选事件流
a.系统异常,提示用户系统异常
备注
无
表2-4 查看教师信息用例规约表
用例名称
查看教师个人信息
参与者
教师
前置条件
已经已教师身份登陆系统
用例概述
教师可以查看个人的详细信息。
基本事件流
1.教师发起查看个人信息请求。
2.系统在教师信息表中检索该教师的个人信息数据返回结果。
3.系统跳转到教师个人信息界面并显示个人信息。
备选事件流
a.系统异常,提示用户系统异常
备注
无
表2-5 删除分类用例规约表
用例名称
删除分类
参与者
管理员
前置条件
已经已管理员身份登陆系统
用例概述
管理员可以删除系统课程分类信息。
基本事件流
1.用管理员通过分类管理页面删除一个分类信息。
2.系统服务器接收到客户端删除请求后对管理员身份信息进行校验。
3.系统服务器对客户端提交的删除分类请求信息进行校验。
4.通过校验后服务器查询数据库服务器从分类表中删除相应的分类记录。
5.删除成功。
备选事件流
a.身份校验失败,删除失败。
备注
管理员没有点击删除按钮,系统不会执行操作。
2.3 系统性能需求
经济可行性:本次毕设设计选择这个题目,能够综合检验我大学四年学习过的知识,通过本次设计能够使我的知识储备更加的牢固,也能对强化我对知识的理解,提高我使用各项编程软件的技能。本次设计由本人独立完成,所运用到的软件也是本人已经学习过的,因此无需产生其他的费用,因此本次设计具有一定的经济可行性。
法律可行性:本次毕业设计是由本人独立完成的,从设计的选题到系统最后的测试运行都是自己开发。在设计的过程中同时也是对我四年所学知识的复习和巩固。
兼容性:可运行在Windows7以上操作系统中。
安全性:用户信息具有保密性,用户信息只能由系统管理员进行相关处理。
技术可行性:本次设计是利用Eclipse软件开发的,在设计的过程中以本系统的实际为基础出发,虽然本次设计的具有很大的业务量,但是其实际的操作流程却是较为的简单快捷的。并且本设计的结构和流程都是比较清晰可见的,最终设计出的销售管理系统也一定能够满足实际的市场需求。本设计还利用到了MySQL软件,这款软件在数据的处理方面有着出色的表现,且操作简单快捷,能够实现数据的查询和统计,也能输出传送表单数据。所以说,本设计是具有技术可行性的
3 系统总体设计
本系统采用JAVA开发语言技术进行设计实现,页面前端使用JSP和HTML + CSS + JavaScript技术实现,系统后端使用Spring MVC + MyBatis开发框架,服务器使用了Tomcat。
3.1 系统模块结构设计
通过分析系统需求,从而对本系统所需要的模块进行了确定,如下图3-1可见:
图3-1 功能结构图
学生功能模块:
1.首页:登陆后首页会有最新的公告信息。
2.课程查询:查看课程信息,如课程名称编号及简介等。
3.文件查询:在线预览课程视频,下载相关的课程文件。
4.讨论查询:对相关课程进行讨论与回复。
5.公告查询:查看新发布的公告。
6.作业查询:包括查询自己的历史成绩以及错题,未完成的考试也会在这一模块。
7.个人信息:个人中心包括自己的个人信息及账号密码。
8.学习记录:记录已学习的课程,以及答题的正确率错误率。
教师功能模块:
1.首页:登陆后首页会有最新的公告信息。
2.学生信息管理:教师可以新增某位学生或者批量新增学生,也可查询学生信息。
3.课程文件管理:教师可以在此模块上传查询课程视频以及课程文件。
4.讨论管理:可以新增相关课程的讨论以及对于讨论信息的管理。
5.作业管理:再次发布相关课程的作业。
6.题库管理:对试卷或题目的增删改查。
7.学生行为分析:在此阅卷以及对学生学习记录的查看。
8.个人信息管理:个人中心包括自己的个人信息及账号密码。
9.视频推荐:在此进行课程信息的查询与推荐。
管理员功能模块:
1.首页:登陆后首页会有最新的公告信息。
2.学生信息管理:可以新增某位学生或者批量新增学生,也可查询学生信息。
3.教师信息管理:可以新增某位教师或者批量新增教师,也可查询教师信息。
4.专业管理:新增某一专业或查看已有专业的信息。
5.课程管理:新增某一课程或查看已有课程的信息。
6.课件管理:可进行课程文档管理和课程视频管理。
7.作业管理:查看管理教师已经发布的作业或试卷信息。
8.论坛管理:对已经发布的相关课程的讨论的管理。
9.公告管理:查看已发布的公告以及编辑想要发布的公告。
3.2 数据库设计
概念模型如图3-2所示。
图3-2 E-R图
通过分析业务对象和领域对象之间的关系,将其相互关联,并且利用MySQL从而设计了本系统的数据库,从下表可见:
(1)管理员信息表(admin)
管理员信息表的主要功能就是为了对系统管理员的信息进行储存,下表3-1位管理员信息表:
表3-1 管理员信息表(admin)
列名
数据类型
长度
允许空
是否主键
说明
id
int
10
否
是
管理员ID
username
varchar
255
否
否
登录账号
password
varchar
255
否
否
登录密码
(2)测试表(ceshi)
测试表的主要功能是为了对系统在线试题的信息进行出巡,下表3-2位测试表的结构:
表3-2 测试表(ceshi)
列名
数据类型
长度
允许空
是否主键
说明
id
int
10
否
是
id
name
varchar
255
否
否
题目名称
a
varchar
255
否
否
选项a
b
varchar
255
否
否
选项b
c
varchar
255
否
否
选项c
d
varchar
255
否
否
选项d
fenshu
int
255
否
否
分数
daan
varchar
255
否
否
答案
(3)订单表(dingdan)
订单表可以对系统用户购买的订单信息进行保存,下表3-3为订单表的结构:
表3-3 订单表(dingdan)
列名
数据类型
长度
允许空
是否主键
说明
id
int
10
否
是
id
name
varchar
255
否
否
订单名称
teacher
varchar
255
否
否
订单教师
pic
varchar
255
否
否
订单课程图片
price
int
255
否
否
支付金额
username
varchar
255
否
否
下单人
code
int
255
否
否
订单状态
kid
int
255
否
否
课程id
date
varchar
255
否
否
订单日期
(4)卷子表(juanzi)
卷子表可以对系统卷子的信息进行储存,下表3-4为卷子表的结构:
表3-4 卷子表(juanzi)
列名
数据类型
长度
允许空
是否主键
说明
id
int
10
否
是
id
name
varchar
255
否
否
卷子名称
dizhi
varchar
255
否
否
下载地址
date
varchar
255
否
否
日期
(5)课程表(kecheng)
课程表主要用于保存系统课程的信息,表结构如表3-5所示。
表3-5 课程表(kecheng)
列名
数据类型
长度
允许空
是否主键
说明
id
int
10
否
是
id
name
varchar
255
否
否
课程名称
info
varchar
255
否
否
课程信息
teacher
varchar
255
否
否
任课教师
pic
varchar
255
否
否
课程图片
price
varchar
255
否
否
课程价格
(6)教师信息表(use)
教师信息表主要用于保存系统教师的信息,表结构如表3-6所示。
表3-6教师信息表(teacher)
列名
数据类型
长度
允许空
是否主键
说明
id
int
10
否
是
教师ID
username
varchar
255
否
否
登录账号
password
varchar
255
否
否
登录密码
rname
varchar
255
否
否
教师名称
(7)教学资源表(ziyuan)
教学资源表主要用于保存系统视频教学资源的信息,表结构如表3-7所示。
表3-7教学资源表(ziyuan)
列名
数据类型
长度
允许空
是否主键
说明
id
int
10
否
是
id
name
varchar
255
否
否
教学名称
pic
varchar
255
否
否
教学资源图片
src
varchar
255
否
否
视频路径
(8)用户信息表(user)
用户信息表主要用于保存系统用户的信息,表结构如表3-8所示。
表3-8用户信息表(user)
列名
数据类型
长度
允许空
是否主键
说明
id
int
10
否
是
用户ID
username
varchar
255
否
否
登录账号
password
varchar
255
否
否
登录密码
3.3 亮点设计
在学生输入用户名与密码且无误后,即可正常登录,登陆后学生则可以浏览发布的公告,课程以及考试,如下图3-3是学生“开始考试”的界面
图3-3 开始考试页面
在考试完成后,系统会统计该学生本次做错的题目并整理为“错题回顾”,“错题回顾”如下图3-4所示
图3-4 错题回顾页面
该功能使学生更快捷方便的进行考试,并以“错题回顾”的形式将错题呈现出来,此功能可以使学生更方便明了的了解到自己的错误所在,并针对有关错误加以改正,是系统的亮点所在。
4 系统详细设计与实现
4.1 管理员功能模块
4.1.1 管理员登录的设计与实现
在管理员输入用户名之后,并且与数据库中用户名的密码相互比较之后,当两项的结果是同样的时候,那么则能显示为登陆成功,同时返回到首页。相反,如果结果显示为不同,那么就会自动的弹出一个对话框,并且显示结果为“用户名、密码或验证码输入错误,请核对后重新输入”。
用户登录窗口界面如图4-1所示:
图4-1 用户登录页面
管理员登录窗口核心代码见附录1。
4.1.2 学生信息管理的设计与实现
当管理员通过左侧菜单栏点击学生信息管理时系统会将网址跳转到学生信息管理页面,管理员通过此页面可以对学生信息进行增删改查。
课程实现页面如图4-2所示:
图4-2 课程实现页面
设计思路:
4.1.3 教师信息管理的设计与实现
当用户输入网址或在导航栏中点击查看课程时,系统跳转到该页面,课程页面地址为/kecheng。
课程实现页面如图4-3所示。
图4-3 课程实现页面
4.1.4 专业管理的设计与实现
当用户输入网址或在导航栏中点击查看课程时,系统跳转到该页面,课程页面地址为/kecheng。
课程实现页面如图4-4所示。
图4-4 课程实现页面
4.1.5 课程管理的设计与实现
当用户输入网址或在导航栏中点击查看课程时,系统跳转到该页面,课程页面地址为/kecheng。
课程实现页面如图4-5所示。
图4-5 课程实现页面
4.1.6 课件管理的设计与实现
当用户输入网址或在导航栏中点击查看课程时,系统跳转到该页面,课程页面地址为/kecheng。
课程实现页面如图4-6所示。
图4-6 课程实现页面
4.1.7 作业管理的设计与实现
当用户输入网址或在导航栏中点击查看课程时,系统跳转到该页面,课程页面地址为/kecheng。
课程实现页面如图4-7所示。
图4-7 课程实现页面
4.1.8 论坛管理的设计与实现
当用户输入网址或在导航栏中点击查看课程时,系统跳转到该页面,课程页面地址为/kecheng。
课程实现页面如图4-8所示。
图4-8 课程实现页面
课程实现页面主要代码见附录2。
4.1.9 公告管理的设计与实现
当管理员通过菜单栏点击课件管理时系统会将网址跳转到课件页面,管理员通过此页面可以查看并管理教学文件和视频,课件页面如图4-9所示。
图4-9 课件管理页面
4.2 学生功能模块
4.2.1 课程查询页面
学生点击课程查询之后会跳出相应的课程信息包括课程名称,课程编号,所属专业,课程简介等,如图4-4所示
图4-4 课程查询页面
4.2.2 在线测试的设计与实现
当用户通过菜单栏点击答题选项时系统会将网址跳转到系统在线测试页面,在线测试面地址为/test。
在线测试页面如图4-5所示。
图4-5在线测试页
在线测试实现页面主要代码见附录3。
4.2.3 错误回顾
在学生管理页面学生可以通过点击作业查询中的错误回顾来查询自己的错题记录,方便学生更好更快捷的学习如图4-6所示.
图4-6错误回顾页面
4.2.4 个人信息
在个人信息界面学生可以对自己的姓名、联系电话、登陆账户、学号、身份证号登陆密码等信息进行修改操作,如图4-7所示。
图4-7个人信息页面
4.3 教师功能模块
4.3.1 课程文件管理的设计与实现
在教师功能界面教师可以对课程文件进行管理,教师点击课程文件管理后,可以
对自己所教授课程的文件和视频进行上传操作,如图4-8所示。
图4-8课程文件管理页面
4.3.2 学生行为分析的设计与实现
教师登录系统之后可以对学生行为分析进行查看其中包括查看学生的学习记录统计以及阅卷统计,如图4-9所示。
图4-9学生行为分析页面
4.3.3 讨论管理
教师登录系统后在讨论管理模块可以查看其他教师的的发布的讨论包括讨论的标题、内容、所属课程以及发布教师等信息如图4-10所示。
图4-10讨论管理
5 系统测试
本次设计的系统主要测试了两个模块的功能,其分别为课程模块和登陆模块,下面为测试显示的结果:
(1)登录模块功能测试
登录模块测试包括用户名,用户密码,记住密码。登录模块测试用例如表5-1和表5-2所示。
表5-1 用户名和密码功能测试用例
用例编号
测试用例描述
操作过程及数据
预期结果
userCon_01
用户名为假,密码为真
输入没有在网站注册过的名字“lixin2”,密码为真
系统提示:“该用户名或密码有误,请重新输入”
userCon_02
用户名为假,密码为假
输入没有在网站注册过的名字“lixin2”,密码为假
系统提示:“用户名或者密码错误,请重新输入”
userCon_03
用户名为真,密码为真
输入之前在网站已经注册过的名字“lixin1”,密码为真
系统提示:“登陆成功”
userCon_04
用户名为真,密码为假
输入之前在网站已经注册过的名字“lixin1”,但密码为假
系统提示:“用户名或者密码错误,请重新输入”
userCon_05
用户名为假,密码为真
输入没有在网站注册过的名字“lixin2”,密码为真
系统提示:“该用户名或密码有误,请重新输入”
表5-2 用户记住密码功能测试用例
用例编号
测试用例描述
操作过程及数据
预期结果
userPas_01
勾选记住密码
用户再次登录系统后默认显示之前输入过的用户名和密码
用户名和密码对话框显示之前内容
userPas_02
不勾选记住密码
用户再次登录系统后需要自己手动输入用户名和密码
用户名和密码对话框为空白
(2)课程模块功能测试
课程模块测试添加图片功能,包括添加课程时填写课程名称、课程信息等。课程模块测试用例如表5-3所示。
表5-3 课程模块添加课程功能测试用例
用例编号
测试用例描述
操作过程及数据
预期结果
goodsCon_01
正确填写信息
按照系统要求填写课程名称,课程信息等信息点击“立即上传”
系统提示上传成功
goodsCon_02
课程名称不超过指定范围
输入的课程名称大于255,其余选项正常填写
系统提示课程名称填写有误
goodsCon_03
课程信息不超过指定范围
输入的课程信息大于255,其余选项正常填写
系统提示课程信息填写有误
goodsCon_04
必填项填写不完全
教师上传课程信息没有填写完全系统要求的必须信息
系统会根据实际情况提示教师哪项没有填写
goodsCon_05
重新填写信息
点击“重置”
页面回到初始状态
性能测试用例如表5-4所示。
表5-4 兼容性测试用例
场景
并发数量
测试点
登录
500
登录的响应时间
1500
2500
2700
检索课程
500
查找的响应时间
1500
2500
查找的响应时间
2700
学习教学资源
500
500人集合学习的负载情况
1000
1000人集合学习的负载情况
查看学习记录
500
查找的响应时间
1500
2500
查找的响应时间
测试用例共设计了30个,执行了16次,全部通过。通过一系列测试实现了对网站的初步了解和检查,然后对检测出的不足和有漏洞的地方进行修改完善的工作,但是还不能说本网站是没有缺陷的完美的网站,有很多问题和不足需要在之后的工作中不断的修改不断的完善系统。
总 结
本系统基本上是按照MOOC自主服务平台系统的前期阶段设计的要求所完成的,能够满足一些基本的要求。本次系统具有良好的前台界面功能,切具有清晰的条理,其实际的使用简单快捷,适用于新手用户使用;本次设计的系统具有较强的后台管理功能,其使用安全,方便可靠。能对用户在线测试、观看教学视频以及教师上传教学资源进行管理;可以有效的管理用户,以及课程的信息;可以使用信息化技术对购买课程的环节进行管理;具有可以查看教师上传课程,以及用户购买课程的功能。除此之外,本系统除了基本购买课程的功能,还有针对系统进行维护更新的功能,能够为用户的使用营造一个安全可靠、快捷方便的环境,同时该系统也具有一定的创意性。
由于本人的能力有限,本次系统虽然经过了测试,但是其中还是或多或少的存在一些问题,例如系统用户表的设计还存在一些问题,不够完善。系统用户表的问题是的用户的登录情况、用户网页浏览和观看视频进行记录。因此用户再下次的登录时必须重新的输入用户信息才能成功的登录。并且当用户购买完课程产品后,他们也不能对订单进行取消,这种不可逆的购买行为极大的降低了用户的使用体验感,也不能满足实际的需求。并且,该系统的界面过于简单单一化,缺乏一定的美感。对于功能的选择按钮,也没能为其创建树形菜单,而树形菜单事实上能够让用户的观看更加直观。这些问题都是需要解决的,只有这样才能将该系统投入市场使用。
参考文献
[1] 杜洪娜.基于J2EE的人力资源管理系统开发与设计[D].电子科技大学,2014.3-4.
[2] 孙宏雅.基于Java的CS网络应用程序开发[J].电子技术与软件工程,2016:02-9.
[3] 朱思华.基于Java语言的安卓手机软件开发[J].数字技术与应用,2016:07-169.
[4] 赵璘,王红霞.基于Spring MVC+JDBCTemplate的Web系统的研究与应用[J].软件工程, 2017(20):5-8.
[5] 赵璘,,王红霞. JFinal与Spring MVC+JDBCTemplate在Web应用开发中的研究[J].元器件与信息技术,2017(1).
[6] 毛志龙.JavaScript与Java在Web开发中的应用及差异[J].科技经济导刊,2016:42.
[7] 蒋雯雯.Java信息管理系统开发模式设计[J].中国管理信息化,2017:03-143.
[8] http://biyelunwen.yjbys.com/fanwen/jisuanjiwangluo/327452.html
[9] http://resource.jingpinke.com/......
[10] 黑马程序员编著.Spring+Spring MVC+MyBatis, 2017.9.
[11] 周绍斌.Java语言程序设计教程(第二版),2017.7.
[12] 白尚.Power Designer数据库建模技术[M].西安:西安电子科技大学出版社,2015:20-25.
[13] 单东林,张晓菲,魏然. 锋利的jQuery,2018.2.
[14] 「美」白奇维著,李芳,于红芸,邵健译.深入理解MySQL核心技术[M].中国电力出版社,2014:5-5.
[15] 张国兰.计算机软件开发下Java编程语言的研究[J].电脑迷,2017(03):143-144.
[16] 姜承尧.MySQL技术内幕:SQL编程[M].北京:机械工业出版社,2016:40-43.
[17] Mian Zhang. The development of human resource management in China: An overview[J].Human Resource Management Review ,2015(3):1034-1042.
[18] 阳西述.网页制作与网站设计[M].武汉:武汉大学出版社,2015:17-25.
[19] Michael Blaha,James Rumbaugh[美].Object-Oriented Modeling and Design with UML(Second Edition)[M].北京:人民邮电出版社,2016:126-129.
致 谢
首先最先感谢的是学校对我的培养,让我从懵懂的高中生转变成为一名专业技术强硬的计算机强手。在这大学的学习与生活中,让我不断强化关于计算机方面的专业知识,同时也懂得了许多做人的道理,让我在以后的人生道路上凭借着为人处世和过硬本领稳健的走向自己的成功。
在系统开发设计中,我的指导老师每时每刻不在以负责的态度,严谨的作风要求所有同学,对我更加耳提面命,令我十分敬佩。老师都是从我的实际出发选择最适合我的项目让我进行开发,指导老师给予了我正确的指导和极大的帮助,把我从弯路中带入正轨,有条不紊的进行开发。完成毕业设计的同时更让我学到了许多知识,对原有的理论知识能够很好的与实际结合起来运用,也大大的提高了我的动手能力。这使得我对以后的工作充满了信心。
在此我由衷的向我的指导老师再次的说一声谢谢!并要向那些给予我极大帮助和支持的同学和老师表示感谢。今后我会以此次的毕业设计为起点迈向更远的未来。
附 录
附录1:用户登录窗口主要代码
<section>
<div>
<h1>用户登录</h1>
<form method="post" action="loginVerification">
<p><input type="text" name="username" value="" placeholder="账号"></p>
<p><input type="password" name="password" value="" placeholder="密码"></p>
<p>
<label>
<input type="checkbox" name="remember_me" id="remember_me">
记住密码
</label>
</p>
<p><input type="submit" name="commit" value="登录"></p>
</form>
</div>
<div>
<p>没有账号? <a href="regist">立即注册</a>.</p>
</div>
<div>
<p>我是教师? <a href="teacherlogin">教师登陆</a>.</p>
</div>
<div>
<p>我是管理员? <a href="adminlogin">管理员登陆</a>.</p>
</div>
</section>
@RequestMapping("/loginVerification")
public String loginVerification(Map<String,List> m,User user,HttpSession session){
System.out.println("userlogin:"+user.getUsername()+user.getPassword());
User dbUser=userService.checkUser(user);
if(dbUser!=null){
session.setAttribute(Constants.LOGIN_USER, dbUser);
System.out.println("userlogin:"+user.getUsername()+user.getPassword()+"成功登陆");
return "success";
}else{
return "failed";
}
附录2:课程页面主要代码
<div>
<c:forEach items="${kecheng }" var="kecheng">
<div class="col-md-3 col-sm-12">
<div class="thumbnail no-margin-bottom">
<a href="showKecheng?id=${kecheng.id }">
<img src="${kecheng.pic }">
<div>
<h3 id="thumbnail-label">${kecheng.name }</h3>
<p style="color:grey;">教师:${kecheng.teacher }</p>
<p style="color:red;">价格:${kecheng.price }.00元</p>
</a>
<p><a href="addDingdan?id=${kecheng.id }" class="btn btn-success" role="button">购买</a></p>
</div>
</div>
</c:forEach>
</div>
附录3:在线测试页面主要代码
<div style="">
<div>
<div>
<div>
<div>
<div>在线测试</div>
</div>
</div>
<div>
<c:forEach items="${ceshi }" var="ceshi" varStatus="ss">
<div>问题${ss.index +1}:${ceshi.name } <span style="color:red;">(${ceshi.fenshu }分)</span></div>
<div>
<div >
<c:choose>
<c:when test="${ceshi.daan == 'a' }">
<input id="radio1" name="radio${ss.index }" value="${ceshi.fenshu }" type="radio">
</c:when>
<c:otherwise>
<input id="radio1" name="radio${ss.index }" value="0" type="radio">
</c:otherwise>
</c:choose>
<label for="radio1">
A : ${ceshi.a }
</label>
</div>
<br/>
<div >
<c:choose>
<c:when test="${ceshi.daan == 'b'}">
<input id="radio2" name="radio${ss.index }" value="${ceshi.fenshu }" type="radio">
</c:when>
<c:otherwise>
<input id="radio2" name="radio${ss.index }" value="0" type="radio">
</c:otherwise>
</c:choose>
<label for="radio2">
B : ${ceshi.b }
</label>
</div>
<br/>
<div >
<c:choose>
<c:when test="${ceshi.daan == 'c'}">
<input id="radio3" name="radio${ss.index }" value="${ceshi.fenshu }" type="radio">
</c:when>
<c:otherwise>
<input id="radio3" name="radio${ss.index }" value="0" type="radio">
</c:otherwise>
</c:choose>
<label for="radio3">
C : ${ceshi.c }
</label>
</div>
<br/>
<div >
<c:choose>
<c:when test="${ceshi.daan == 'd'}">
<input id="radio4" name="radio${ss.index }" value="${ceshi.fenshu }" type="radio">
</c:when>
<c:otherwise>
<input id="radio4" name="radio${ss.index }" value="0" type="radio">
</c:otherwise>
</c:choose>
<label for="radio4">
D : ${ceshi.d }
</label>
</div>
</div>
</c:forEach>
<button type="button" class="btn btn-success" onclick="a()">提交答案</button>
</div>
</div>