目 录
4.1登录模块 0
结论 31
信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对在线学习数据分析展示系统等问题,对如何通过计算机在线学习数据分析展示系统进行研究分析,然后开发设计出在线学习数据分析展示系统已解决问题。
在线学习数据分析展示系统主要功能模块包括学习时长分析、各科成绩分析、各科学习对比、科目分类、各科成绩对比、学生成绩分析等信息维护,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对在线学习数据分析展示系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现在线学习数据分析展示系统和部署运行使用它。
关键词:在线学习数据分析展示系统,SSM框架,MySQL数据库
Abstract
In the information society, there is a need for targeted information acquisition channels, but the expansion of channels is basically the direction of people's efforts. Due to the deviation in perspective, people often can obtain different types of information, which is also the most difficult topic for technology to overcome. Research and analyze how to use a computer based online learning data analysis and display system to address issues such as online learning data analysis and display systems, and then develop and design an online learning data analysis and display system to address these issues.
The main functional modules of the online learning data analysis and display system include learning duration analysis, subject performance analysis, subject learning comparison, subject classification, subject performance comparison, student performance analysis, and other information maintenance. The object-oriented development model is adopted for software development and hardware installation, which can effectively meet the actual needs of use and improve the corresponding software installation and program coding work, Adopting MySQL as the main storage unit for backend data, and using Java and Ajax technologies for business system coding and development, all functions of this system have been achieved. This report first analyzes the background, role, and significance of the research, laying the foundation for the rationality of the research work. Analyze the various requirements and technical issues of the online learning data analysis and display system, prove the necessity and technical feasibility of the system, and then provide a basic introduction to the technical software and design ideas required for designing the system. Finally, implement the online learning data analysis and display system and deploy it for operation.
Key words:Online learning data analysis and display system, SSM framework, MySQL database
1.1研究背景与意义
目前大学当中的高等教育,虽然教育体制相对完善,但普遍存在的问题是老师只能根据教学大纲中规定的任务授课,很少考虑到学生的接受程度,以至于学生在课堂上获得的知识个体差异明显,一部分学生能够完全领会老师所讲的知识,而另一部分学生或多或少存在知识点的遗漏。因此,工作在第一线的高校教师始终都在尝试实现个性化教育的方法,可惜的是至今还没有找到行之有效的解决方案。随着信息技术的迅速发展,教育信息化的深入应用,网络教学平台、自适应学习数据系统等应用的不断崛起,在线学习已经成为诸多高校普遍使用的一-种教学方式。国外学术界研究在线学习分析技术的时间较早,并通过实证研究获得了丰富的研究成果。国内学者针对机器学习在教育领域的研究很少,少数学者仅从理论层面提出了在线学习数据分析在提高教师教学质量、学业成绩预警等方面的研究。
本文以大学计算机基础课程为例,采用的数据库含有从网络教学平台提取出的14个在线学习量化特征,包括:进入课程次数、向老师提问次数、课程讨论区发表话题次数等,这些特征与考试成绩密切相关。数据库含有355条学生数据,经过有效的数据集划分后,使用广义回归神经网路对全部特征以及通过多元线性回归进行特征选择之后得到的部分特征进行建模[2]。通过对结果的分析,可以得到模型的预测误差以及一系列评价指标,教师可以在考试前针对预测结果进行真正意义上的因材施教。此外,根据特征选择的结果,发掘出对于考试成绩影响较大的特征,在教学过程中可以进行更多的关注。
1.2研究现状
2020年2月4日,教育部下发《关于在疫情防控期间做好普通高等学校在线教学组织与管理工作的指导意见》指出,“各高校应充分利用优质在线课程资源,依托各级各类在线课程平台等,开展在线学习活动,保证疫情防控期间教学进度和教学质量,实现停课不停教,停课不停学。”在线学习已经成为高校师生“居家学习”不可替代的有效途径。但是,由于部分教师对在线学习理解不深,信息化教学能力有限,直接将在线教学等同为课堂教学的“网上搬家”。师生时空分离,加之教师缺少有效的监管和交互,学生常因情感缺失难以保持学习的长久性和持续性,学习过程中表现出低投入的浅层学习状态,严重影响在线学习效果。如何提升在线学习质量,促进学生深度学习,已经成为在线教学亟待解决的首要问题。本研究试图探析在线深度学习的内涵与本质特征,厘清在线深度学习的发生机理,探明促进在线深度学习发生的有效策略,为推动在线深度学习理论发展和高校教师组织开展在线教学提供参考。
在中国,在线学习平台发展迅速,但也存在一系列的问题,如果这些问题不能够得到解决,在线学习会变得流于形式而无法取得很好的应用。
1.3论文结构与章节安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景,系统开发的现状和本文的研究现状与主要工作。
第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
2.1 可行性分析
(1)技术可行性分析
在线学习数据分析展示系统存储所使用的是mysql数据库以及开发中所使用的是idea、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用ssm框架进行开发,使系统的可扩展性和维护性更佳,减少Java配置代码,简化编程代码,目前ssm框架也是很多企业选择的框架之一。
(2)经济可行性分析
在开发在线学习数据分析展示系统中所使用的开发软件像idea开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。
(3)操作可行性分析
此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
2.2系统业务流程分析
管理员权限下的工作流程主要为:管理员通过系统界面提供登录按钮并点击,转入管理员登录界面,并在界面上填入相应的管理员账户和管理员密码,进入管理员权限下的后台系统,并且在系统左侧导航条设置了相应的操作功能。
用户权限下的工作流程主要为:用户通过系统提供的注册功能,进行身份验证并注册,而后在登录界面进行个人身份验证,并且进入用户的个人后台界面,并进行相应的操作。
在线学习数据分析展示系统的业务流程如下图所示。
图3-3 系统业务流程图
2.3 系统功能分析
在线学习数据分析展示系统我划分为了管理员模块这一大部分。
管理员端:
(1)个人资料:管理员在登录以后可以修改自己的个人资料以及对自己账号登录的密码进行修改;
(2)用户管理:管理员可以对系统中所有的用户角色进行管控,包含了管理员这一种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。
(3)学习时长分析:管理员点击“学习时长分析”会显示出所有的学习时长分析信息,支持通过姓名或者学习日期对学习时长分析信息进行查询,如果想要添加新的学习时长分析信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条学习时长分析信息,点击“删除”进行删除。
(4)各科成绩分析:管理员点击“各科成绩分析”会显示出所有的各科成绩分析信息,支持通过姓名或者考试科目对各科成绩分析信息进行查询,如果想要添加新的各科成绩分析信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条各科成绩分析信息,点击“删除”进行删除。
(5)各科学习对比:管理员点击“各科学习对比”会显示出所有的各科学习对比信息,支持通过姓名或者学习科目或者学习时长对各科学习对比信息进行查询,如果想要添加新的各科学习对比信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条各科学习对比信息,点击“删除”进行删除。
(6)各科成绩对比:管理员点击“各科成绩对比”会显示出所有的各科成绩对比信息,支持通过姓名或者考试科目或者考试日期对各科成绩对比信息进行查询,如果想要添加新的各科成绩对比信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条各科成绩对比信息,点击“删除”进行删除。
2.3.2 非功能性分析
在线学习数据分析展示系统的非功能性需求比如在线学习数据分析展示系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1在线学习数据分析展示系统非功能需求表
安全性 | 主要指在线学习数据分析展示系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指在线学习数据分析展示系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响在线学习数据分析展示系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着在线学习数据分析展示系统的页面展示内容进行操作,就可以了。 |
可维护性 | 在线学习数据分析展示系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.4 系统用例分析
通过2.3功能的分析,得出了本在线学习数据分析展示系统的用例图:
web后台管理上的管理员是维护整个在线学习数据分析展示系统中所有数据信息的。管理员角色用例如图2-3所示。
本章主要通过对在线学习数据分析展示系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个在线学习数据分析展示系统要实现的功能。同时也为在线学习数据分析展示系统的代码实现和测试提供了标准。
本章主要讨论的内容包括在线学习数据分析展示系统的功能模块设计、数据库系统设计。
3.1 系统架构设计
本在线学习数据分析展示系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1在线学习数据分析展示系统架构设计图
表现层(UI):又称UI层,主要完成本在线学习数据分析展示系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本在线学习数据分析展示系统时的舒适度。UI的界面设计也要适应不同版本的在线学习数据分析展示系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本在线学习数据分析展示系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本在线学习数据分析展示系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本在线学习数据分析展示系统的数据存储和管理功能。
3.2 系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本在线学习数据分析展示系统中的用例。那么接下来就要开始对本在线学习数据分析展示系统的架构、主要功能和数据库开始进行设计。在线学习数据分析展示系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 在线学习数据分析展示系统功能模块图
3.2 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1 数据库概念结构设计
下面是整个在线学习数据分析展示系统中主要的数据库表总E-R实体关系图。
图3-3 在线学习数据分析展示系统总E-R关系图
3.2.2 数据库逻辑结构设计
通过前面E-R关系图可以看到项目需要创建很多个数据表。以下是项目中的主要数据库表的关系模型:
表account_classification (科目分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | account_classification_id | int | 10 | 0 | N | Y | 科目分类ID | |
2 | account_name | varchar | 64 | 0 | Y | N | 科目名称 | |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表analysis_of_individual_subject_scores (各科成绩分析)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | analysis_of_individual_subject_scores_id | int | 10 | 0 | N | Y | 各科成绩分析ID | |
2 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | examination_subjects | varchar | 64 | 0 | Y | N | 考试科目 | |
4 | test_date | date | 10 | 0 | Y | N | 考试日期 | |
5 | examination_results | varchar | 64 | 0 | Y | N | 考试成绩 | |
6 | remarks | varchar | 64 | 0 | Y | N | 备注信息 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表auth (用户权限管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表comparison_of_grades_in_various_subjects (各科成绩对比)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comparison_of_grades_in_various_subjects_id | int | 10 | 0 | N | Y | 各科成绩对比ID | |
2 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | examination_subjects | varchar | 64 | 0 | Y | N | 考试科目 | |
4 | test_date | date | 10 | 0 | Y | N | 考试日期 | |
5 | examination_results | varchar | 64 | 0 | Y | N | 考试成绩 | |
6 | remarks | varchar | 64 | 0 | Y | N | 备注信息 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表comparison_of_learning_in_various_subjects (各科学习对比)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comparison_of_learning_in_various_subjects_id | int | 10 | 0 | N | Y | 各科学习对比ID | |
2 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | learning_subjects | varchar | 64 | 0 | Y | N | 学习科目 | |
4 | learning_time | date | 10 | 0 | Y | N | 学习时间 | |
5 | learning_duration | varchar | 64 | 0 | Y | N | 学习时长 | |
6 | remarks | varchar | 64 | 0 | Y | N | 备注信息 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表learning_duration_analysis (学习时长分析)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | learning_duration_analysis_id | int | 10 | 0 | N | Y | 学习时长分析ID | |
2 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | learning_date | date | 10 | 0 | Y | N | 学习日期 | |
4 | learning_subjects | varchar | 64 | 0 | Y | N | 学习科目 | |
5 | learning_duration | varchar | 64 | 0 | Y | N | 学习时长 | |
6 | remarks | varchar | 64 | 0 | Y | N | 备注信息 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表pass_rate_analysis (合格率分析)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | pass_rate_analysis_id | int | 10 | 0 | N | Y | 合格率分析ID | |
2 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | examination_subjects | varchar | 64 | 0 | Y | N | 考试科目 | |
4 | test_date | date | 10 | 0 | Y | N | 考试日期 | |
5 | exam_score | varchar | 64 | 0 | Y | N | 考试分数 | |
6 | examination_score | varchar | 64 | 0 | Y | N | 考试评分 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表student_performance_analysis (学生成绩分析)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_performance_analysis_id | int | 10 | 0 | N | Y | 学生成绩分析ID | |
2 | date | date | 10 | 0 | Y | N | 日期 | |
3 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
4 | language | varchar | 64 | 0 | Y | N | 语文 | |
5 | mathematics | varchar | 64 | 0 | Y | N | 数学 | |
6 | english | varchar | 64 | 0 | Y | N | 英语 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
3.4本章小结
整个在线学习数据分析展示系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4.1登录模块
管理员在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员和员工的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示。
图4.1 登录界面图
登录代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
4.2用户管理模块
管理员可以对系统中所有的用户角色进行管控,包含了管理员这一种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户,这里以管理员用户为例。界面如下图4.2所示。
图4.2用户管理界面图
用户管理的关键代码如下。
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
4.3学习时长分析模块
管理员点击“学习时长分析”会显示出所有的学习时长分析信息,支持通过姓名或者学习日期或者学习科目对学习时长分析信息进行查询,如果想要添加新的学习时长分析信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条学习时长分析信息,点击“删除”进行删除。界面如下图4.3所示。
图4.3学习时长分析界面图
图4.3学习时长分析统计图
4.4各科成绩分析模块
管理员点击“各科成绩分析”这个按钮可以查看到系统中的各科成绩分析信息,支持通过考试科目或者考试日期进行查询各科成绩分析信息,如果想要添加新的各科成绩分析信息,点击“添加”按钮然后根据提示输入各科成绩分析信息,点击“提交”后,在各科成绩分析界面就会显示新增的各科成绩分析信息,可以点击某一各科成绩分析信息查看各科成绩分析信息的详情,也可以直接点击“删除”进行删除各科成绩分析。界面如下图4.4所示。
图4.4各科成绩分析界面图
图4.4各科成绩分析统计图
各科成绩分析关键代码如下所示。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
4.5各科学习对比模块
管理员点击“各科学习对比”这个按钮可以查看到系统中的各科学习对比信息,支持通过学习科目或者学习时间进行查询各科学习对比信息,如果想要添加新的各科学习对比信息,点击“添加”按钮然后根据提示输入各科学习对比信息,点击“提交”后,在各科学习对比界面就会显示新增的各科学习对比信息,可以点击某一各科学习对比信息查看各科学习对比信息的详情,也可以直接点击“删除”进行删除各科学习对比。界面如下图4.5所示。
图4.5 各科学习对比界面
图4.5 各科学习对比统计图
4.6各科成绩对比模块
管理员点击“各科成绩对比”会显示出所有的各科成绩对比信息,支持通过考试科目或者考试日期对各科成绩对比信息进行查询,如果想要添加新的各科成绩对比信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条各科成绩对比信息,点击“删除”进行删除。界面如下图4.6所示。
图4.6 各科成绩对比界面图
4.7个人信息模块
管理员点击“个人信息”按钮,可以对个人的头像、昵称、手机号码等信息进行更新;个人信息界面如下图4.7所示。
图4.7 个人信息界面
4.8密码修改模块
管理员点击“修改密码”按钮,可以对登录密码进行更改,首先输入原密码,然后再输入新密码和确认密码,当原密码正确,输入两次新密码一致,则修改成功,否则给出错误提示信息。修改密码界面如下图4.8所示。
图4.8 密码修改界面图
5系统测试
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
表5.1 用户登录功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
用户登录模块测试 | 用户登录成功的情况 | 点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。 | 登录成功并调整到用户界面 | 正确 |
学习时长分析添加功能测试:
表5.2 学习时长分析添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
学习时长分析添加模块测试 | 学习时长分析添加成功的情况 | 在学习时长分析的页面中将点击添加,输入学习相关信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
学习时长分析添加模块测试 | 学习时长分析添加失败的情况 | 在学习时长分析页面中不填写的学习日期,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
查询学生成绩分析功能模块测试:
表5.3 查询学生成绩分析功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
查询学生成绩分析功能测试 | 查询成功的情况 | 在学生成绩分析界面输入收费日期进行查询 | 查询成功 | 正确 |
各科学习对比添加功能测试:
表5.4 各科学习对比添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
各科学习对比添加模块测试 | 各科学习对比添加成功的情况 | 在各科学习对比的页面中将点击添加,输入各科学习对比相关信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
各科学习对比添加模块测试 | 各科学习对比添加失败的情况 | 在各科学习对比页面中不填写的姓名或者学习科目,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
5.3 系统测试结果
通过编写在线学习数据分析展示系统的测试用例,已经检测完毕用户的登录模块、学习时长分析信息添加模块、查询密码修改模块、各科学习对比添加模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。
至此,在线学习数据分析展示系统已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、ssm技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
[1]刘超. 在线学习环境中大学生诚信失范行为意向及引导策略研究[D].西北师范大学,2022.
[2]谭进,宋德业,谭劲轩,曹昭,庄洪波,谭凤林.高职医学生在线学习行为与学习成效大数据分析研究[J].当代教育理论与实践,2022,14(02):79-84.
[3]杨帆. 可视化技术支持下在线自主学习模型构建及实证研究[D].东北师范大学,2021.
[4]熊思灿,农莹.在线学习数据与学生学习成绩的相关性分析——以大学概率论课程为例[J].西南师范大学学报(自然科学版),2021,46(11):84-89.
[5]许书静. 大学生在线学习满意度影响因素模型构建研究[D].山西师范大学,2021.
[6]陈飞雄. 教育数据挖掘视角下的学习者信息素养、教师在线教学行为与在线学习成效的关系研究[D].华中师范大学,2021.
[7]袁敏. 大数据环境下在线学习行为分析及学习成绩预测研究[D].上海工程技术大学,2021.
[8]李金海.基于慕课平台数据分析的学生在线学习个性化研究[J].中国信息技术教育,2020(24):95-99.
[9]汪云,曾平,谢小义.基于大数据分析的在线学习算法理论探究[J].科学咨询(科技·管理),2020(08):112-113.
[10]介茜. 基于Hadoop的在线学习行为数据分析及可视化研究与实现[D].西安电子科技大学,2020.
[11]唐艳.行为数据分析视角下提高在线学习参与的策略研究[J].现代职业教育,2020(18):22-25.
[12]程香,程长征.大数据背景下在线学习数据分析方案设计[J].软件工程,2020,23(01):24-26.
[13]缪佳佳,邹柳聪.行为数据分析视角下Moodle平台在线学习力研究[J].软件导刊,2019,18(12):256-258+262.
[14]程香,刘超,孙家军,倪东辉.在线学习大数据分析架构研究[J].重庆科技学院学报(自然科学版),2019,21(03):97-99+112.
[15] Huang Yao Construction and analysis of learner learning behavior model based on online learning environment [D]. Yunnan Normal University, 2019
[16] Zhuo Rongqing, Bai Zhongxian. Construction of learner online learning behavior analysis model based on data mining [J]. Computer Products and Circulation, 2019 (03): 244+252
致 谢
逝者如斯夫,不舍昼夜。转眼间,大用户用户活便已经接近尾声,人面对着离别与结束,总是充满着不舍与茫然,我亦如此,仍记得那年秋天,我迫不及待的提前一天到了学校,面对学校巍峨的大门,我心里充满了期待:这里,就是我新生活的起点吗?那天,阳光明媚,学校的欢迎仪式很热烈,我面对着一个个对着我微笑的同学,仿佛一缕缕阳光透过胸口照进了我心里,同时,在那天我认识可爱的室友,我们携手共同度过了这难忘的两年。如今,我望着这篇论文的致谢,不禁又要问自己:现在,我们就要说再见了吗?
感慨莫名,不知所言。遥想当初刚来学校的时候,心里总是想着工科学校会过于板正,会缺乏一些柔情,当时心里甚至有一点点排斥,但是随着我对学校的慢慢认识与了解,我才认识到了她的美丽,她的柔情,并且慢慢的喜欢上了这个校园,但是时间太快了,快到我还没有好好体会她的美丽便要离开了,但是她带给我的回忆,永远不会离开我,也许真正离开那天我的眼里会满含泪水,我不是因为难过,我只是想将她的样子映在我的泪水里,刻在我的心里。最后,感谢我的老师们,是你们教授了我们知识与做人的道理;感谢我的室友们,是你们陪伴了我如此之久;感谢每位关心与支持我的人。
少年,追风赶月莫停留,平荒尽处是春山。
免费领取源码,请点赞关注私信博主