博主介绍:✌程序员陈师兄、8年大厂程序员经历。csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
《600套》Java项目精品实战案例
《300套》Java微信小程序项目实战
《300套》Python项目实战感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及文档编写等相关问题都可以给我留言咨询,希望帮助更多的人
第一章 绪 论
1.1选题背景
为了满足民族地区国家通用语言文字教学的需要,建立适合少数民族学习国家通用语言文字的科学评价体系,全面推进民族地区国家通用语言文字教学改革,提高少数民族实际运用国家通用语言文字的能力,适应他们生活、学习、工作和社会交往的需要,教育部民族教育司于2001年正式启动中国少数民族汉语水平等级考试(以下简称"民族汉考",缩写为MHK)项目的研制工作,并于2002年10月24日下发《在有关省市试行中国少数民族汉语水平等级考试的通知》(教民函[2002]7号)。从2003年起,民族汉考开始在吉林、青海、四川、内蒙古、新疆等有关省区推广,随后被用于高考、中考、学业水平质量监测、社会化考试等领域。
从2009年开始,民族汉考的考试实施由教育部考试中心具体负责,主要职责是命制试题、建设和更新题库、修订大纲、组织有关省区和考点的考务管理。
1.2研究意义
民族汉考是结合我国少数民族学习国家通用语言文字的特点,测试应考者的国家通用语言文字水平的国家级标准化考试,主要考查应考者实际运用国家通用语言文字进行交际的能力,包括应考者运用国家通用语言文字完成生活、学习、工作和社会交往任务的能力。民族汉考是一个可靠、有效、权威的国家通用语言文字水平评价工具。考试成绩客观、准确地反映应试者的实际国家通用语言文字水平。通过考试获得的相应等级证书是应考者的国家通用语言文字水平的证明。
民族汉考的积极作用主要体现在:加大民族地区国家通用语言文字推广力度,建立了一个适合少数民族学习国家通用语言文字的科学评价体系,全面推进了民族地区国家通用语言文字教学的改革,对民族教育的发展起到了促进作用,一定程度上减轻了学习者的学习负担。
1.3研究内容
本文研究了基于微信小程序的在线练MHK试题的学习系统,主要内容从一下几个方面展开:
1. 分析以微信小程序为载体的在线学习系统的可行性,并根据系统的需求分析和功能设计 构建系统的总体框架,划分系统的功能模块,设计系统的数据库。
2. 分析在线学习系统开发过程中所涉及的关键技术,包括微信小程序登录流程的设计,文件上传和云存储,文件分析和数据可视化等。
3. 对智能组卷方法中的随机选取法进行可行性分析
其中论文的组织结构如下:
第一章 绪论,阐述了论文的主要研究内容和论文大概的组织结构。
第二章 基础知识,详细介绍了MHK考试、系统开发过程中所用到的主要技术和基础知识,包括微信小程序、Vue.js前端开发框架、Java技术和MySQL数据库,为系统开发奠定了良好的基础。
第三章 系统分析,确定系统可行性分析,对MHK在线学习小程序进行需求分析。
第四章 系统设计,在明确系统的总体目标后,对系统的总体架构、功能模块、数据库进行设计。
第五章 搭建管理系统的框架,设计并实现了题库管理、用户管理、搜索功能和统计分析模块并对当前主流的智能组卷方法进行分析,将随机选取法应用到随机选题功能模块,实现用户选择多样化。解决系统开发过程中涉及的关键技术问题,对系统页面的设计、登录流程的设计以及各个功能模块的设计与实现进行了详细的介绍。
第六章 总结与展望,总结本论文已经完成的研究成果,分析系统的不足之处,并提出后续的改进方向。
开发工具及关键技术介绍
2.1微信开发者工具
微信开发者工具现在已经被小程序开发团队开发运行,目前微信开发者工具任然在不断的完善中,在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具,开发者工具将使用这个微信帐号的信息进行小程序的开发和调试。
微信开发者工具包括机型选择、预览界面、控制台、上传代码、资源文件、显示远程调试、本地数据存储、视图调试、开发中一般不校验合法域名信息、小程序后台要做配置服务器域名。
以上就是在开发过程中微信开发者工具常用到的功能,微信开发者工具也在不断的完善。
2.2小程序技术
整个小程序框架系统分为两部分:逻辑层和视图层。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。
微信小程序实际上是一个外部应用,通过远程服务器端部署项目,然后手机通过嵌入浏览器的功能,实现管理系统的操作。所以在一定程度上,小程序必然没有APP的功能全面,而且不能够替代APP,因为小程序不能调用手机端核心的硬件接口,不能对硬件进行操控。
由于微信交流软件的大量用户群,致使小程序吸引了很多的开发者和商家,又加上小程序快捷的特点,使得小程序获得了极大的好评。微信小程序开发时,先在微信公众平台进行小程序的注册,完成开发者身份证,获取APPID后,下载开发者工具进行开发,开发完成之后进行审核。微信小程序本质是Web应用,它结合JS、HTTP、CSS等布局技术,实现数据的操作。并通过WXML页面进行显示。
2.3JAVA技术
Java是一种编译型的语言,通过服务器执行编译后封装为class类,许多编译好的jar也可以给第三方软件调用,减去了一些组件开发的费用和时间。Java语言的编译过程是从生成字节码开始,Java虚拟机对这些字节码进行处理,可以生成对应的机器码,操作系统编译这些机器码进行解释运行。Java的编译和回收机制相比C语言提高了很多性能。
Java的优势在于程序一致性更加高效、代码编写简单、强大的扩展性、可以通过跨平台使用、调用Jar包里面的对象和方法、强大的事务处理能力、可以维护比较复杂的编程技术。所以,Java是一种高效率的开发语言,在实际应用中,许多开发与工具都可以进行Java开发,而且免费开源。
2.4Mysql数据库
数据库是系统开发过程中不可或缺的一部分。本系统使用MySQL关系数据库,MySQL是个中小型关系型数据库,在许多中小管理系统中是常见的应用之一,MySQL和Java也具有密切的关系,他们都是开源免费的,而且通过一个数据库驱动类即可实现数据的基本操作。MySQL是个轻巧的数据库,安装简单,学习效率高,应用面广。
MySQL通过协议分析SQL语句的语法,如果不能通过语法检测,将报错给程序端,通过检测之后将数据指令发送到存储区域并进行提取。在MySQL数据库中,有一个数据缓冲池,把当前查询到的结果存储在这个缓冲区域中,最后通过提取方法把数据返回到结果对象。MySQL也可以使用一个事务进行管理,在一个具体的事务中,所有执行的SQL语句都进入一个等待区,直到全部完成才进行事务的提交,生成数据信息。如果中间发生错误,那么所有的执行信息将会回滚到最初状态,并返回异常。
第三章 系统分析
3.1需求分析
任何一个项目在开发研究前,都需要对研发系统本身的需求做一个认真的分析,市场的调研是不可忽视的,从而明确目标,确定MHK在线学习小程序的需求,本MHK在线学习小程序整体界面简单,功能完善。
MHK在线学习小程序包括学生和管理员用户。管理员对在线学习小程序后台信息进行管理,管理员登录后实现用户管理、资讯管理、试题管理、考试管理系统、在线训练、系统管理。管理员管理用例图如图3.1所示。
管理员
用户管理
试题管理
考试管理
在线训练管理
系统管理
图3.1 系统管理员用例图
小程序用户登录后查看考试资讯信息、考试介绍信息,在线训练、真题训练。学生用户管理用例图如图3.2所示。
学生
登录
查看资讯
考试介绍
在线考试
考试记录
图3.2学生用户用例图
学生用户如果没有账号,先进行注册,将注册信息提交到服务器端,管理员对信息进行审核,审核后使用用户名和密码进行登录,登录后进入MMH在线学习小程序首页。首页包括各种考试资讯信息和考试介绍信息,该信息通过数据库进行读取,点击标题后进行显示详情点击。
用户点击个人中心,可以查看听力训练、阅读训练、书面表达、口试材料。这些训练都是管理员通过服务器端录入后,显示在客户端小程序中。选择三级或四级类型后进行在线考试,完成考试后,系统自动记录该考试的考试记录,并给出考试分数。如果用户答错时会在错题本显示答错的题目,以便后期进行学习。在意见反馈中,点击意见反馈,可以将反馈的内容提交到管理员端,管理员对意见反馈进行处理。
3.2可行性分析
3.2.1技术可行性
MHK在线学习小程序后台采用了JAVA技术,小程序端使用微信开发者工具,开发了功能完备、使用简单的前端应用程序,并建立、维护了一个数据完整、安全、稳定性强的后台数据库系统。
3.2.2经济可行性
开发MHK在线学习小程序的语言都是开源免费的,不需要购置。完成后的系统,部署在互联网中,服务器使用现成的设备,不需要购买额外的配置,在开发成本上费用极低。但是MHK在线学习小程序的前景非常好,可以为学生学习提供方便,并可以推广到其他地方使用,综合考虑,在开发MHK在线学习小程序上,经济上具有可行性。
3.2.3法律可行性
法律可行性指的是从法律角度上说,是否涉及到法律违法违规的地方,本MHK在线学习小程序是在高校内部使用的,所有的技术都是开源免费的,不存在侵权问题。系统的设计分析和实现都是原创,不会抄袭和使用其他第三方软件,不构成产权问题,最后系统的规章制度完全符合考试的管理条例,不会传播非法的思想和内容。所以在法律方面具有可行性。
3.3性能分析
性能需求是保证系统响应速度和响应时间等方面。本MHK在线学习小程序上线运行后,面对的用户群较多,可能发生多个用户并发请求数据,而且连接数据库的线程较多,那么响应速度将会对系统的负载要求较高,要求各业务响应速度不大于两秒,数据库资源占用率不能高于80%,否则将会发生死机或者数据丢失的情况。另外在高负荷运行下也要保证程序的持续性,7*24小时内正常运行。
MHK在线学习小程序需要长期稳定性运行,不能因为硬件或者软件原因造成通讯中断,那么将对用户产生一定的影响,所以可以考虑设计备用服务器,如果出现故障,网络接口直接对接到另外一台服务器系统。
3.4系统操作流程
3.4.1学生登录流程
对于系统的安全性的第一关,就是学生想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,学生登录流程图如图3-3所示。
图3-3登录操作流程图
3.4.2信息添加流程
对于MHK在线学习小程序,需要随时添加所需要的数据信息,对于学生添加信息,需要根据添加界面,根据选框的内容添加的数据信息,学生所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,添加流程图如图3-4所示。
图3-4 信息添加流程图
3.4.3信息删除流程
不管是哪个学生角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,学生一旦将信息删除,那么该删除的数据信息将无法恢复,所以学生在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图3-5所示。
图3-5 信息删除流程图
3.4.4MHK在线考试流程
本开放式无纸化考试系统包括两种用户。管理员管理用户,赋予用户权限。对考试试题进行管理。学生用户在线考试,查看成绩。其业务流程如下3.6所示。
图3.6 MHK考试管理流程图
第四章 系统设计
4.1系统架构设计
MHK在线学习小程序的系统项目后台使用三层架构,通过SSM实现数据的处理,并将数据处理后,生成JSON格式,小程序再对JSON数据进行解析,然后显示到小程序界面。
在软件技术层次,本平台使用三层架构的方式开发,具体分为表示层、业务逻辑层和数据层构成。表示层包括JSP页面,各种文件图片、视频、音频、对应的报表。表示层中,客户通过浏览器访问界面发送resquest的请求到业务逻辑层。在SSM的表示层中,使用SpringMVC进行设计。
业务逻辑层进行处理对应的请求,本MHK在线学习小程序包括具体的业务逻辑处理,如用户登录、用户管理、信息查询等功能,最终返回信息到界面端。在业务逻辑端中对项目的数据进行处理,数据是通过数据层处理后获取。
在SSM的业务层中,使用Spring进行设计。
在数据层通过数据库持久化方法,使用统一的数据库连接对于的数据库。使用SQL语句操作数据库,把对应的增删改查数据,通过实体类的方式传递到业务逻辑层,完成数据层的使命。
4.2系统功能设计
系统分为三种用户角色,管理员、老师和学生。下面对各种用户角色给你进行设计。
4.2.1管理员功能设计
根据需求调研结果确定本MHK在线学习小程序的功能结构,系统主要包括系统管理员部分的主要功能包括修改登录密码、用户信息管理、考试资讯管理、训练管理、试题管理、考试管理以及系统管理。
其中管理员功能图如4.1所示。
管理员
用户信息管理
考试资讯管理
训练管理
试题管理
考试管理
图4.1 管理员功能图
4.2.2学生功能设计
学生部分的功能有查看试题信息、在线考试、查看错题信息、查看资讯、查看考试介绍。其中学生用户功能图如4.2所示。
学生
用户登录
查看试卷
在线考试
查看资讯
查看考试介绍
图4.2 学生用户功能图
4.3数据库设计
4.3.1实体ER图
数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图总体数据库实体的E-R图:
考试信息
管理员
学生信息
问题信息
试题信息
资讯信息
管理
管理
管理
管理
n
n
n
n
1
1
1
交卷信息
提交
提问
查看
1
1
n
n
图4.3 系统总ER图
4.3.2数据表设计
通过对MHK在线学习小程序的ER设计,得出MHK在线学习小程序的数据库表结果。
- 表: 管理员信息表
ID | 名称 | 类型 | 是否主键 | 空 | 解释 |
1 | userId | int | 是 | 不能 | |
2 | userName | varchar | 不是主键 | 可以 | |
3 | userPw | varchar | 不是主键 | 可以 |
- 表: 分数信息表
ID | 名称 | 类型 | 是否主键 | 空 | 解释 |
1 | fenshu_id | int | 是 | 不能 | |
2 | shiti_id | int | 不是主键 | 可以 | |
3 | stu_id | int | 不是主键 | 可以 | |
4 | fenshu | int | 不是主键 | 可以 |
- 表: 交卷信息表
ID | 名称 | 类型 | 是否主键 | 空 | 解释 |
1 | jiaojuan_id | int | 是 | 不能 | |
2 | stu_id | int | 不是主键 | 可以 | |
3 | shiti_id | int | 不是主键 | 可以 | |
4 | timu_id | int | 不是主键 | 可以 | |
5 | timu_daan | varchar | 不是主键 | 可以 |
- 表: 资讯信息表
ID | 名称 | 类型 | 是否主键 | 空 | 解释 |
1 | zixun_id | int | 是 | 不能 | |
2 | zixun_name | varchar | 不是主键 | 可以 | |
3 | del | varchar | 不是主键 | 不能 |
- 表: 试题信息表
ID | 名称 | 类型 | 是否主键 | 空 | 解释 |
1 | shiti_id | int | 是 | 不能 | |
2 | shiti_name | varchar | 不是主键 | 可以 | |
3 | shiti_jieshao | varchar | 不是主键 | 可以 | |
4 | timuIdList | varchar | 不是主键 | 可以 | |
5 | shiti_shijian | varchar | 不是主键 | 可以 | |
6 | del | varchar | 不是主键 | 可以 |
- 表: 学生信息表
ID | 名称 | 类型 | 是否主键 | 空 | 解释 |
1 | stu_id | int | 是 | 不能 | |
2 | stu_xuehao | varchar | 不是主键 | 可以 | |
3 | stu_realname | varchar | 不是主键 | 可以 | |
4 | stu_sex | varchar | 不是主键 | 可以 | |
5 | stu_age | varchar | 不是主键 | 可以 | |
6 | login_pw | varchar | 不是主键 | 可以 | |
7 | del | varchar | 不是主键 | 可以 |
第五章 系统实现
5.1微信小程序客户端功能实现
注册学生通过注册窗口,进行在线填写自己的学号、密码、学生姓名、年级、班级、手机等等,信息编辑完成后核对信息无误后进行选择注册,系统核对学生所输入的账号信息是否准确,核对信息准确无误后系统进入到操作界面。
如图5-1所示。
图5-1注册学生界面图
学生登录通过用户名、密码行页面,进入到MHK在线学习小程序主界面,进入到操作界面,进行相对应操作,如图5-2所示。
图5-2学生登录界面图
打开会员登录的页面,用户填写所有的登录信息后,点击登录,在登录中调用JS的AJAX方法。方法中接收用户实体信息,调用服务器端的用户登录方法。在服务器端获取用户实体信息,对实体进行序列化处理,然后调用用户信息查询的service数据库操作方法,将查询结果通过Json对象进行返回,在客户端解析Json,判断返回的信息是否登录成功。
学生首页页面可以查看首页、资讯公告、考试介绍、我的等信息,其中小程序首页如图5-3所示。
图5-3首页界面图
学生进入考试资讯页面可以填写考试资讯标题、考试资讯类型、发布时间、发布人、考试资讯内容等信息,进行查看操作,如图5-4所示。
图5-4考试资讯界面图
学生进入听力训练页面可以查看听力训练信息,包括标题、解析、视频/音频信息,进行查看操作,如图5-6-所示。
图5-6听力训练界面图
学生进入我的页面,查看听力训练、阅读训练、书面表达、口试材料、考试记录、错题本、试卷列表等信息,如图5-7-所示。
图5-7我的界面图
学生进入试卷列表页面可以填写考试时长等信息,点击考试操作,如图5-9-所示。
图5-9试卷列表界面图
5.2管理员服务端功能实现
管理员通过通过登录窗口进行在线填写自己的用户名和密码、角色进行登录,登录成功后进入到系统操作界面进行相应信息的获取,如图5-10所示。
图5-10管理员登录主界面图
管理员进入到界面,通过界面的任务大厅,进行信息管理。包括学生管理、资讯管理、训练管理、试卷管理、试题管理、系统管理、考试管理等功能模块,进行相对应操作,如图5-11所示。
图5-11管理员功能界面图
管理员点击考试管理,进入页面可以查看考试名称、类型、答案、分数、分析等信息,进行详情、修改、删除操作,如图5-12示。
图5-12考试管理界面图
在试题录入页面,通过DIV进行页面的布局,Form表单收集试题基本信息,点击button按钮后提交form到后台试题保存事件中,业务层调用前台输入的试题实体对象,并将model实体进行保存,通过持久层的试题保存方法提交到数据库中,然后返回到试题列表页面。在列表页面查询试题信息,并将试题数据保存在集合中,试题列表页面使用Java的标签,通过foreach循环显示在界面,在列表中通过点击修改和删除进行数据的管理,点击修改的时候,跳转到后台编辑的页面,该方法获取试题输入的修改信息,并调用Service层的数据库修改方法,修改完成后再返回列表页面刷新集合。试题删除方法和修改方法流程类似。
结 论
本文研究制作了MHK在线学习小程序,通过软件工程方法,运用理论和编码实践,完成了系统功能设计实现和测试。
首先对MHK在线学习小程序进行了课题分析,进行了系统调研,参考相关文献,结合需求,进行文档整理。使用面向对象JAVA语言,数据库使用MySQL。通过数据库存储信息数据,实现信息同步控制和管理。MHK在线学习小程序包括学生和管理员用户。管理员对在线学习小程序后台信息进行管理,管理员登录后实现用户管理、资讯管理、试题管理、考试管理系统、在线训练、系统管理。小程序用户登录后查看考试资讯信息、考试介绍信息,在线训练、真题训练。MHK在线学习小程序的提出,很大程度上提升MHK在线学习管理效率。
本次研究也有许多不足之处,例如对服务器的分级处理,大数据的容错机制管理。系统界面设计不够美观,整体效果不够人性化,在接下来的工作中争取开发更加完善的MHK在线学习小程序。