基于Java的在线考试系统设计与实现【附源码+lun文完整版】

59 篇文章 3 订阅

基于Java的在线考试系统设计与实现【附源码+lun文完整版】

**

媛ma: 2-3-8-6-7-0-4-0-3-0

**
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.引言
1.1 研究背景
互联网技术已经是未来的发展方向更是成为当代教育的一个特征之一。计算机网络给我们带来诸多的信息,也带来了无穷的便捷。线上网络教育也开始显山露水,在线考试作为远程教育的一个分支也必然成为一个重要领域[1]。
随着网络技术的飞速发展,相应的教育有关系统也应该为同学们考虑,让学生们跟随网络发展的脚步实施更新自我的认知。学生们最关心的是什么,是考试!那么传统线下考试模式中,组织一次考试不仅需要消耗大量时间筹备,而且具有很多繁琐的步骤。明显的看来,学生的升学中伴随着考试类型的不断增加以及提高的考试要求,传统线下考试方式给学校、教师带来了很大的工作问题、工作压力。因此,设计在线考试系统是非常有必要的,用来解决上述的一些问题。
1.2 研究意义
经济意义:
在线考试系统可以大大降低考试成本,减少人力和物力的投入。传统的纸质考试需要印刷试卷、运输、监考等环节,耗费大量时间和资源。而在线考试系统可以在线生成试卷,学生可以在线答题,自动评分和保存成绩,大大降低了考试成本,提高了效率。
社会意义:
在线考试系统可以为学生提供更方便、更快捷的考试方式,不再受时间和地点的限制。同时,它可以为学生提供更多的考试资源,如各种类型的题目、知识点等,帮助学生更好地掌握知识。此外,在线考试系统还可以为教师提供更准确、更及时的成绩反馈,帮助教师更好地评估学生的学习情况,从而更好地指导学生的学习。
个人意义:
在线考试系统可以为学生提供更加个性化的学习方式。通过在线考试系统,学生可以根据自己的学习进度和理解程度来选择适合自己的题目和难度,更好地检测自己的学习效果,并且可以随时随地自我检测和复习。同时,在线考试系统还可以帮助学生更好地了解自己的知识点掌握情况,从而更好地制定学习计划和策略,提高学习效率。
1.3 国内外研究现状
1.3.1国外研究概况
在线教育已经开始慢慢普及,而在线考试也会在在线教育的驱动下开花结果、其实早在1996年国外就出现了与线上教学相对应的线上考试,尤其是在一些发达国家中,随着技术的发展,人们对于系统的要求也越来越高,同时系统的完整性也变得更好,功能也越多,像TOEFL、GRE(美国研究生入学考试)、MSCE(微软系统工程师认证考试)等、Oracle认证考试等,这些都已经开始使用网络在线考试来代替传统的纸质试卷。由于国外的在线考试起步较早,所以他们在技术上也是比我们要成熟的[2]。
1.3.2国内研究概况
目前在我们国内,在线考试还正处于蓬勃发展的时期,由于我们起步较晚所以我们在系统的应用方面还是要落后于国外的,所以应用也还不是非常普及,只有少数的国家级的简单考试会用到在线考试,如普通话水平考试、机动车驾驶科一、科四考试等,但我们现在各大高校也开始慢慢重视起来这个问题,尤其是去年的疫情影响下,在线考试的重要性便体现出来了[3]。
而我们国内较为成熟的在线考试平台有由清华大学开发的雨课堂考试平台,还有微信小程序中的问卷星,这虽然不是一个专业的考试系统,但它的使用率在国内比任何一个考试系统要大,它主要适用于调研,投票,信息采集和在线考试这几大用途。
2.系统开发的相关技术
2.1 SSM框架
SSM框架是由“SpringMvc”+“Spring”+“Mybatis”组合而成,很多程序员深受喜爱。Spring属于从大小和开销都是轻量级的;SSM框架其中功能之一的是控制反转,它能够促进各个模块中低耦合,从而方便后期的维护性;其中还有面向切面AOP,这个功能体现出不同的事物可以用不同的方式来验证,好处就是让程序员更方便快捷管理和配置应用对象。MyBatis是Java开发中最重要的部分之一,同时它也是Java的一个持久性框架,它的操作是可以将编写的对象或者Sql语句进行一系列的关联,从视觉上来看更加简洁明了。优点如下所示。
1、对刚入门或者初级程序员中是相对吸收较快的。
2、Sql数据固定写在Xml中,使得Sql数据更加容易得到统一管理、操作。
3、解除程序之间各个模块与Sql的耦合度,使得更容易维护操作。
4、主动提供Xml标签,让Sql数据更灵活[3]。
2.2 Mysql数据库
本文选择MySQL作为学生网络考试系统的数据库。MySQL是一款关联数据库管理系统,广受欢迎且特别适用于WEB应用。其最大的特点是数据存储在各种表格中,这样可以提高数据处理效率和灵活性。SQL语言是访问数据库的规范语言,为开发者提供了一种高效且简洁的方式来操作数据库。
MySQL实施了双重许可制度,这使得它既适用于大规模的网络开发者,也适用于中小规模的网络开发者。因此,考虑到其灵活性和广泛的应用性,我们选择MySQL作为学生网络考试系统的数据库来储存信息。
2.3 Java简介
Java语言是目前市场上所用频率最高的语言之一,它具有先天性的跨平台优势以及可以使用在电脑桌面端、移动端等快捷操作,这样的优势使得各大程序员偏爱Java语言,也让Java在后期以更快的速度进行维护优化,其中Java有封装性、多态性、继承性的面向对象的编程语言。
Java语言为何会产生跨平台的天然优势,这其中Java语言中间拥有了jvm虚拟机,当Java编译.java文件的时候可以转化为字节码文件,但是字节码文件都是相同的,可是jvm却不同,jvm根据每个服务器硬件所编写的,到最后jvm虚拟机会把当初的字节码文件再一次编译成服务器硬件上的指令集。所以就产生了“一次写成,处处运行”的作用[4]。
3.系统分析
3.1 系统设计目标
系统分析是在整个环节中是非常重要的步骤,它能够体现出系统最终版的功能是否完善。考试管理系统提供了用户对班级信息、通知公告、课程信息、试题管理、试卷、考试等信息的快捷操控性,能够让管理员在工作期间进行更好的存储所有数据信息及简单明了的检查及搜索功能。
系统所要实现的功能分析,方便在网络上进行管理,根据管理员本人的需求可以进行用户信息的增删改查功能,好处就是能够使使用者节约更多的时间,基本可以不用传统的方式,查阅纸质信息。所以开发考试管理系统不仅仅让管理员得到满意的需求,还能提高管理员的工作效率,减少复杂多样的工作量[5]。
3.2 系统可行性分析
在线考试管理系统是以管理员对考试的增删改查为主体,以使用考试试卷的学生为次体,有班级信息管理、学生管理、老师管理、试卷管理等主要部分。此系统使用稳定的MySql数据库进行对系统前后端的数据交互,最终实现较为完整的考试管理系统。
3.2.1 技术可行性
根据技术层次方面,在线考试系统主要基于SSM框架进行开发,前端页面采用Vue技术编写,后台使用了MySQL来进行数据交互,接入学生、老师、试卷等重要资源数据。SSM和Vue有一个共同的优点就是他们有自带的官方文档,进入他们的网站可以很方便查询到关键功能的文档编写,我们根据文档编写能够保证该系统的稳定性。MySQL 数据库从目前来说是市场上实用程度最广泛的数据库,其优点就是效率高,使得许多网站和软件都是基于MySQL 数据库开发的,能够稳定地实现对系统前台以及后台的数据交互和管理功能。因此,基于SSM框架的在线考试管理系统从技术层面上来说具有较高的可行性[6]。
3.2.2 经济可行性
根据经济层次方面,在线考试管理系统开发和运行过程所使用的软件都是免费的,这对于我们来说几乎是零成本,这样显得十分重要。参考官方文档并编程出的管理系统并没有过多要求,家用、商用的电脑都可以实现。其次,通过前期制作的UI视图,可以让管理员减少排列数据的时间和精力。最后,在线考试管理系统实现了管理员的时间分配自由,具有一定的经济效益。因此,基于SSM框架的在线考试管理系统从经济层面上是绝对有可行性的[7]。
3.2.3 管理可行性
根据管理层次方面,在线考试管理系统是方便管理员使用的。随着经济快速发展,广大人民对电脑的使用程度越来越娴熟,用户使用此系统没有过多的阻碍,管理员经过简单试用便可轻松熟练掌握此系统的规则流程。在线考试系统有诸多按钮用于管理和实现各种数据的增删改查,因此,在管理层次方面来说,具有很高的可行性。
根据多角度因素分析,基于SSM在线考试管理系统的设计与实现均具有较高的可行性[8]。
3.3 系统功能分析和描述
该高校在线考试管理系统总体分管理员和学生、教师三个登录模块,为三种角色提供不同的界面展示。
管理员模块在整个系统中处于顶端位置,它能够集合整体的数据来操作,所涉及使用功能模块都关系到教师和角色的信息变化,其功能有:首页、个人中心、班级信息管理、学生管理、教师管理、通知公告管理、课程信息管理、试题管理、管理员管理、试卷管理、考试管理等。如图3.1示。

图3.1管理员示例图
教师端功能有:首页、个人中心、通知公告管理、课程信息管理、试卷管理、试题管理、考试管理等。
学生端功能有:首页、个人中心、通知公告管理、课程信息管理、考试管理等。如图3.2所示。

图3.2学生流程示例图
3.3.1班级信息管理
管理员输入账号密码登录后可查看班级信息的数据,也可以进行对班级信息数据增加、修改、删除、查询等操作。
3.3.2教师管理
管理员输入账号密码登录后可查看学生的登录学号、密码等关键数据,同时也可以对学生数据进行修改,如联系电话、班级信息、出生年月等操作。查看老师数据的同时,可以及时修改老师的数据,如登录账号和密码、主教课程、联系电话等操作。
3.3.3试题试卷管理
管理员输入账号密码登录后可自行对试卷中的试题进行类型选择,以及对试题数据增加、修改、删除、查询等操作。当操作成功后,将试题打包成试卷进行发布,学生端会相应接受到试卷等考试信息[9]。
3.3.4考试管理
当教师将试卷发布成功后,即可查看所发布的试卷列表,以及学生考完试后,将错题记录在错题本上,还有学生的考试记录。这些操作,能够及时将考试数据、记录等集合在一体,使得老师更方便统一管理操作。
3.3.5课程信息管理
这里的功能集合了老师上课的时间、地点、课时、学分等信息,在教师端中,可以让教师轻易查看自己接下来要进行的哪些功课。
3.4系统流程分析
3.4.1添加信息流程
当我们开始添加信息时,系统将自动生成校验规则,用户不需要填写,用户根据校验规则来填写相关的数据,如果校验数据成功,那么将用户填写的有效数据进行统一保存管理,最终将添加至MySQL数据库中,当用户没有注意到校验规则时,填写的数据信息时无效的,系统将会提示用户数据信息有误。如图3.3所示。

图3.3 添加信息流程图
3.4.2操作流程
用户可以选择三种登录状态,当是学生第一次使用该系统时,我们首先要填写注册信息,注册成功后,数据将添入后台MySQL数据库中。如果是教师,管理员将自行添加数据信息,来让每一位老师获得登录权限。每一种状态代表的信息各有不同,当用户输入用户名和密码时,系统会将数据库中校验信息拿出来进行比对,比对成功后,则进入相应的功能界面,反之则无法进入该系统。具体操作流程图如图3.4所示。

图3.4操作流程图
3.4.3删除信息流程
这部分则提供了用户自我选择删除功能。根据系统中删除的提示符来提供删除功能。当用户选择删除功能时,系统会提供是否删除提示信息,以防止用户临时改变策略,删除成功后,随之数据库也将删除数据。具体删除操作如图3.5所示。

图3.5 删除信息流程图
3.4.4考试管理系统数据流程
管理员可在此考试管理系统中发布信息、增删改查相关信息及流程,学生/教师登录后可查看相关考试信息[10]。数据流程如图3.6所示。

图3.6 系统数据流程图
4.系统设计
4.1系统体系结构
主界面、首页、个人中心、班级信息管理、学生管理、教师管理、通知公告管理、课程信息管理、试题管理、管理员管理、试卷管理、考试管理。在线考试管理系统的结构图4.1所示。

图4.1 系统结构图
登录系统结构图,如图4.2所示:

图4.2 登录结构图
4.2 数据库设计原则
数据库同步操作实现交互式体验。E-R图描述现实世界概念模型,帮助开发人员和用户理解业务需求并转化为软件代码,提高开发效率和降低项目风险。E-R图由关系、实体和属性三个基本元素组成。在线考试系统功能全面,满足需求,如系统功能E-R图所示(如图4.3所示)。

图4.3系统E-R图

其中学生信息E-R图,如图4.4所示。

图4.4学生信息E-R图

教师信息E-R图,如图4.5所示。

图4.5教师信息E-R图
4.3 数据库表
基于SSM框架的高校在线考试管理系统后台数据采用 MySQL 数据库进行整合,有关数据库中的数据表如下。
1、教师表
主要包含:ID、创建时间、教师工号、密码、教师姓名、性别、手机、邮箱、主教课程。教师表如表4-1所示。
表4-1 教师表
字段名称 字段意义 字段类型 字段长度 是否主键 能否为空
id 编号 bigint 20 是 否
addtime 创建时间 timestamp 255 否 否
gonghao 教师工号 varchar 255 否 是
mima 密码 longtext 255 否 是
xingming 教师姓名 date 255 否 是
xingbie 性别 int 255 否 是
shouji 手机号 varchar 255 否 是
youxiang 邮箱 varhcar 255 否 是
kecheng 主教课程 varchar 255 否 是

2、用户表
主要包含:ID、用户名称、密码、角色、新增时间。用户表如表4-2所示。
表4-2 用户表
字段名称 字段意义 字段类型 字段长度 是否主键 能否为空
id 编号 bigint 20 是 否
username 用户名称 varchar 20 否 否
password 密码 varchar 20 否 否
role 角色 varchar 255 否 是
addtime 新增时间 timestamp 255 否 否
3、课程信息表
主要包含:ID、创建时间、课程编号、课程名称、课时、学分。课程信息表如表4-3所示。
表4-3课程信息表
字段名称 字段意义 字段类型 字段长度 是否主键 能否为空
id 编号 bigint 20 是 否
addtime 新增时间 timestamp 20 否 是
bianhao 课程编号 varchar 255 否 是
keshi 课时 varchar 255 否 是
xuefen 学分 varchar 255 否 是
shijian 上课时间 varchar 255 否 是
gonghao 教师工号 varchar 255 否 是
xingming 教师姓名 varchar 255 否 是
mingcheng 课程名称 varchar 255 否 是
4、ToKen认证表
主要包含:ID、用户名、表名、角色、密码、新增时间、过期时间。ToKen认证表如表4-4所示。
表4-4:ToKen认证表
字段名称 字段意义 字段类型 字段长度 是否主键 能否为空
id 编号 bigint 20 是 否
userid 用户编号 bigint 20 否 是
username 用户名 varchar 255 否 是
tablename 表名 varchar 255 否 是
role 角色 varchar 255 否 是
token 校验 bigint 255 否 是
addtime 新增时间 varchar 255 否 是
expiratedtime 过期时间 varchar 255 否 是
5、通知公告表
主要包含:ID、创建时间、标题、摘要、相关附件、内容、发布日期。通知公告表如表4-5所示。
表4-5 通知公告表
字段名称 字段意义 字段类型 字段长度 是否主键 能否为空
id 编号 bigint 20 是 否
addtime 新增时间 varchar 255 否 是
biaoti 标题 varchar 255 否 是
zhaiyao 摘要 varchar 255 否 是
fujian 相关附件 varchar 255 否 是
neirong 内容 varchar 255 否 是
faburiqi 发布日期 varchar 255 否 是
6、学生表
主要包含:ID、创建时间、学号、密码、学生姓名、性别、出生日期、联系电话、班级。学生表如表4-6所示。
表4-6 学生表
字段名称 字段意义 字段类型 字段长度 是否主键 能否为空
id 编号 bigint 20 是 否
addtime 新增日期 varchar 255 否 是
xuehao 学号 varchar 255 否 是
mima 密码 varchar 255 否 是
xingming 姓名 varchar 255 否 是
xingbie 性别 varchar 255 否 是
riqi 出生日期 varchar 255 否 是
dianhua 联系电话 varchar 255 否 是
banji 班级 varchar 255 否 是
5.系统实现
5.1学生功能模块
5.1.1学生登录功能模块
学生打开系统后,根据图示选择角色登录,并输入账号密码来验证登录。如图5.1所示。

图5.1 用户登录界面图
登录的关键代码如代码1所示。
代码1 登录关键代码
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: http({ url:`{this.tableName}/login?username=KaTeX parse error: Expected 'EOF', got '&' at position 27: …Form.username} &̲password={this.rulesForm.password}`,
method: “post”
}).then(({ data }) => {
if (data && data.code === 0) {
this. s t o r a g e . s e t ( " T o k e n " , d a t a . t o k e n ) ; t h i s . storage.set("Token", data.token); this. storage.set("Token",data.token);this.storage.set(“role”, this.rulesForm.role);
this. s t o r a g e . s e t ( " s e s s i o n T a b l e " , t h i s . t a b l e N a m e ) ; t h i s . storage.set("sessionTable", this.tableName); this. storage.set("sessionTable",this.tableName);this.storage.set(“adminName”, this.rulesForm.username);
this.KaTeX parse error: Expected 'EOF', got '}' at position 46: …/" }); }̲ else { …message.error(data.msg);
}
});
5.1.2学生注册模块
学生点击注册后,根据学号、密码、学生姓名、联系电话。注册相关个人信息。如图5.2所示。

图5.2 用户注册界面图
关键代码如代码2所示。
代码2 关键性代码
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: … url: `{this.tableName}/register`,
method: “post”,
data:this.ruleForm
}).then(({ data }) => {
if (data && data.code === 0) {
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: … this.router.replace({ path: “/login” });
}
});
} else {
this.$message.error(data.msg);
5.1.3 个人中心模块
学生登录系统后,输入原密码后、新密码、确认密码操作后点击“确定”修改密码。如图5.3所示。

图5.3 修改密码界面图
学生登录系统后,也可以根据自己学号、姓名、性别、出生年月、联系电话、班级来修改个人信息。如图5.4所示。

图5.4 用户个人信息界面图
更新数据的关键代码如代码3所示。
代码3 个人中心关键代码
this.user.password = this.ruleForm.newpassword;
this.user.mima = this.ruleForm.newpassword;
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: … url: `{this.KaTeX parse error: Expected 'EOF', got '}' at position 28: …"sessionTable")}̲/update`, …message({
message: “修改密码成功,下次登录系统生效”,
type: “success”,
duration: 1500,
onClose: () => {
}
});
} else {
this.$message.error(data.msg);
5.1.4考试模块
学生登录系统后,看到图中的“21”代表教师命名的试卷称号,然后点击右侧的“考试”来参加考试。如图5.5所示。

图5.5 用户考试界面图
关键代码如代码4所示。
代码4 考试模块关键代码
submitTap() {
let myscore = 0;
if (this.ruleForm.type == 1) {
console.log(this.answer);
this.answer = this.answer.join(“,”);
}
this.isSubmitFlag = true;
if (this.answer == this.ruleForm.answer) {
this.score = Number(this.score) +Number(this.ruleForm.score) ;
myscore = this.ruleForm.score;
}
5.1.5考试错题本模块
学生登录后,选择考试管理中的考试。考试结束后,错题本会展示学生的信息,包括用户ID、试卷序列号、试卷名称、分值、正确答案、考生答案、试卷分析、考试时间。如图5.6所示。

图5.6错题本记录界面图
关键代码如代码5所示。
代码5 考试错题本关键代码
// 获取数据列表
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: … url: this.api.examrecordpage,
this.totalPage = data.data.total;
} else {
this.dataList = [];
this.totalPage = 0;
}
this.dataListLoading = false;
});
},
5.1.6通知公告模块
学生点击通知公告管理后,根据按钮提示可以查看通知公告或者另行下载管理员所上传的附件。如图5.7所示

图5.7 通知公告界面图
关键代码如代码6所示。
代码6 通知公告关键代码
// 下载
download(file){
window.open(${file})
},
// 初始化
init(id,type) {
if (id) {
this.id = id;
this.type = type;
}
5.1.7课程信息模块
学生点击通知课程信息后,根据管理所发布的信息去上课。如图5.8所示。

图5.8 课程信息界面图
关键代码如代码7所示。
代码7 课程信息关键代码
onClose: () => {
this.parent.showFlag = true;
this.parent.addOrUpdateFlag = false;
this.parent.kechengxinxiCrossAddOrUpdateFlag = false;
this.parent.search();
this.parent.contentStyleChange();
}
});
} else {
this.$message.error(data.msg);
}

5.2管理员功能模块
5.2.1管理员登录功能模块
管理员打开系统后,根据图示选择角色登录,并输入账号密码来验证登录。如图5.9所示。

图5.9 管理员登录界面图
关键代码如代码8所示。
代码8 管理员登录关键代码
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: http({ url:`{this.tableName}/login?username=KaTeX parse error: Expected 'EOF', got '&' at position 27: …Form.username} &̲password={this.rulesForm.password}`,
method: “post”
}).then(({ data }) => {
if (data && data.code === 0) {
this. s t o r a g e . s e t ( " T o k e n " , d a t a . t o k e n ) ; t h i s . storage.set("Token", data.token); this. storage.set("Token",data.token);this.storage.set(“role”, this.rulesForm.role);
this. s t o r a g e . s e t ( " s e s s i o n T a b l e " , t h i s . t a b l e N a m e ) ; t h i s . storage.set("sessionTable", this.tableName); this. storage.set("sessionTable",this.tableName);this.storage.set(“adminName”, this.rulesForm.username);
this.KaTeX parse error: Expected 'EOF', got '}' at position 46: …/" }); }̲ else { …message.error(data.msg);
}
});
5.2.2学生管理模块
管理员根据学生的需求可以点击右侧的“修改”和“删除”按钮,来修改学生的个人信息。如图5.10所示。

图5.10 修改学生信息界面图
关键代码如代码9所示。
代码9 学生管理关键代码
// 添加/修改
addOrUpdateHandler(id,type) {
this.showFlag = false;
this.addOrUpdateFlag = true;
this.crossAddOrUpdateFlag = false;
if(type!=‘info’){
type = ‘else’;
}
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: …{ this.refs.addOrUpdate.init(id,type);
});
},
// 删除
deleteHandler(id) {
var ids = id
? [Number(id)]
: this.dataListSelections.map(item => {
return Number(item.id);}
5.2.3教师管理模块
管理员可以根据图中的“详情”、“修改”、“删除”对教师个人信息进行修改操作。如图5.11所示。

图5.11 修改老师信息界面图
代码10 教师管理关键代码
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: … this.http({
url: jiaoshi/${!this.ruleForm.id ? "save" : "update"},
method: “post”,
data: this.ruleForm
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: “操作成功”,
type: “success”,
duration: 1500,
5.2.4班级信息管理模块
管理员可以根据图中的“详情”、“修改”、“删除”对班级信息中的人数以及班主任进行修改操作。如图5.12所示。

图5.12 修改班级信息界面图
关键代码如代码11所示。
代码11 班级信息管理关键代码
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: … url: `{this.KaTeX parse error: Expected 'EOF', got '}' at position 28: …'sessionTable')}̲/session`, …message.error(data.msg);
}
});
},
// 多级联动参数
info(id) {
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: …anjixinxi/info/{id}`,
method: “get”
}).then(({ data }) => {
if (data && data.code === 0) {
this.ruleForm = data.data;
} else {
this.$message.error(data.msg);
}
5.2.5试卷管理模块
图中是管理员已经创建好的“21”试卷,管理员可以在试卷的左侧几个按钮中设置试卷的相关属性,如考试名称、考试时长、试卷状态。如图5.13所示。

图5.13 考试试卷界面图
关键代码如代码12所示。
代码12 试卷管理关键代码
//更新
addOrUpdateHandler(id) {
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: …Records?userid={this.user.id}&paperid=KaTeX parse error: Expected 'EOF', got '}' at position 55: …data: {} }̲).then(({ data …router.push({
name: “adminexam”,
params: {
id: id
}
// 删除
deleteHandler(id) {
var ids = id
? [Number(id)]
: this.dataListSelections.map(item => {
return Number(item.id);
});
this. c o n f i r m ( ‘ 确定进行 [ confirm(`确定进行[ confirm(确定进行[{id ? “删除” : “批量删除”}]操作?`, “提示”, {
confirmButtonText: “确定”,
cancelButtonText: “取消”,
type: “warning”
})
5.2.6通知公告管理模块
管理员点击通知公告管理模块后,可根据学校要求来添加通知公告一系列信息,让教师和学生能够及时了解学校的信息。如图5.14所示。

图5.14通知公告管理模块
关键代码如代码13所示。
代码13 通知公告关键代码
// 下载
download(file){
window.open(${file})
},
//添加修改
addOrUpdateHandler(id,type) {
this.showFlag = false;
this.addOrUpdateFlag = true;
this.crossAddOrUpdateFlag = false;
if(type!=‘info’){
type = ‘else’;
}
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: …{ this.refs.addOrUpdate.init(id,type);
});
},
5.2.7课程信息管理模块
根据学校要求,管理员添加相关教师授课信息,让教师能够及时得到上课信息。如图5.15所示。

图5.15课程信息管理模块
关键代码如代码14所示。
代码14 课程信息管理关键代码
onClose: () => {
this.parent.showFlag = true;
this.parent.addOrUpdateFlag = false;
this.parent.kechengxinxiCrossAddOrUpdateFlag = false;
his.parent.search();
this.parent.contentStyleChange();
});
} else {
this.$message.error(data.msg);
5.2.8管理员模块管理
高校管理员不够时,可手动新增管理员来缓解压力,新增后功能一样,皆可按系统功能模块使用。如图5.16所示。

图5.16管理员管理模块
关键代码如代码15所示。
代码15 管理员管理关键代码
onSubmit() {
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: … this.http({
url: users/${!this.ruleForm.id ? "save" : "update"},
method: “post”,
data: this.ruleForm
}).then(({ data }) => {
if (data && data.code === 0) {
this.KaTeX parse error: Expected 'EOF', got '}' at position 449: …); }̲ else { …message.error(data.msg);
}
5.2.9试题管理模块
管理员点击试题管理后,通过上一步试卷管理创建名称,根据试卷名称“21”可以自行输入试题题目如单选题、多选题、判断题、填空题。如图5.17所示。

图5.17试题管理模块
关键代码如代码16所示。
代码16 试题管理关键代码
// 添加/修改
addOrUpdateHandler(id) {
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: …Records?userid={this.user.id}&paperid=KaTeX parse error: Expected 'EOF', got '}' at position 55: …data: {} }̲).then(({ data …router.push({
name: “adminexam”,
params: {
id: id
}
5.3教师功能模块
5.3.1通知公告管理模块
教师点击通知公告管理后,根据按钮提示可以查看通知公告或者另行下载管理员所上传的附件。如图5.18所示。

图5.18 通知公告管理界面图
关键代码如代码17所示。
代码17 通知公告关键代码
// 下载
download(file){
window.open(${file})
},
// 初始化
init(id,type) {
if (id) {
this.id = id;
this.type = type;
}
5.3.2课程信息管理模块
教师根据管理员发布的信息完成对应工作内容。如图5.19所示。

图5.19 课程信息界面图
关键代码如代码18所示。
代码18 课程信息管理关键代码
if(this.searchForm.kechengmingcheng!=‘’ &&
this.searchForm.kechengmingcheng!=undefined){
params[‘kechengmingcheng’] = ‘%’ +
this.searchForm.kechengmingcheng + ‘%’
}
if(this.searchForm.jiaoshigonghao!=‘’
&& this.searchForm.jiaoshigonghao!=undefined){
params[‘jiaoshigonghao’] = ‘%’ +
this.searchForm.jiaoshigonghao + ‘%’
}
this.$http({
url: “kechengxinxi/page”,
method: “get”,
params: params
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.data.list;
this.totalPage = data.data.total;
}
5.3.3试题管理模块
教师可点击试题管理,在上一步的试卷管理创建名称,自行输入试题题目如单选、多选、判断和填空题。如图5.20所示。

图5.20 试题管理界面图
关键代码如代码19所示。
代码19 试题管理关键代码
// 添加/修改
addOrUpdateHandler(id) {
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: …Records?userid={this.user.id}&paperid=KaTeX parse error: Expected 'EOF', got '}' at position 55: …data: {} }̲).then(({ data …router.push({
name: “adminexam”,
params: {
5.3.4个人中心模块
教师登录系统后,可以修改个人信息,如:教师工号、教师姓名、性别、手机号、邮箱、主教课程。如图5.21所示。

图5.21个人中心模块界面图
更新数据的关键代码如代码20所示。
代码20 个人中心关键代码
this.user.password = this.ruleForm.newpassword;
this.user.mima = this.ruleForm.newpassword;
his.KaTeX parse error: Expected '}', got 'EOF' at end of input: …({ url: `{this.KaTeX parse error: Expected 'EOF', got '}' at position 28: …"sessionTable")}̲/update`, …message({
message: “修改密码成功,下次登录系统生效”,
type: “success”,
duration: 1500,
onClose: () => {
}
});
} else {
this.$message.error(data.msg);
5.3.5试卷管理模块
管理员和教师可增删改查试卷,以避免信息流量过大导致错乱。如图5.22所示。

图5.22 考试试卷界面图
关键代码如代码21所示。
代码21 考试试卷管理关键代码
//更新
addOrUpdateHandler(id) {
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: …Records?userid={this.user.id}&paperid=KaTeX parse error: Expected 'EOF', got '}' at position 55: …data: {} }̲).then(({ data …router.push({
name: “adminexam”,
params: {
id: id
}
// 删除
deleteHandler(id) {
var ids = id
? [Number(id)]
: this.dataListSelections.map(item => {
return Number(item.id);
});
this. c o n f i r m ( ‘ 确定进行 [ confirm(`确定进行[ confirm(确定进行[{id ? “删除” : “批量删除”}]操作?`, “提示”, {
confirmButtonText: “确定”,
cancelButtonText: “取消”,
type: “warning”
})
5.3.6试卷列表管理模块
学生和教师都可以参与考试。教师可以用考试来测试试卷的准确性,防止错误发生。如图5.23所示。

图5.23试卷列表管理模块界面图
关键代码如代码22所示。
代码22 试卷列表关键代码
if (this.searchForm.papername) {
params[“papername”] = %${this.searchForm.papername}%;
}
if (this.searchForm.questionname) {
params[“questionname”] = %${this.searchForm.questionname}%;
}
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: … url: this.api.examrecordpage,
method: “get”,
params: params
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.data.list;
this.totalPage = data.data.total;
} else {
this.dataList = [];
this.totalPage = 0;
}
this.dataListLoading = false;
6.系统测试
6.1测试定义及目的
关于系统功能的试验,英文名称为SyStem TEST,缩写为ST,ST指一个人完成了其系统中的各种功能多次、多项目、多条件试验,也就是对ST的简化表述。ST可以验证这些技术对系统的需求能否获得满足并且能否有效。
关于系统开发的实现,不管开发过程中如何努力,在系统执行的同时多少也会发生一些错误信息,但是为了保证系统的稳定性和增加系统的资源利用率以及为客户提供良好的服务,在系统开发实现之前,要进行完整系统所有步骤的测试,没有完好无缺的事物,这包括了计算机设计,当然我们可以根据罗列排查问题,当我们发现问题无法解决或者不可避免时,可以去参考图书,询问老师等及时解决这些问题,使得系统接近完美的结局。虽然说系统测试是消耗精力时间的,但是从好的方面来说,这是值得肯定的,发现一个错误就能在以后使用过程中减少一些致命问题。最后总的来说,系统测试是非常重要的一个环节,同时也保证了用户在日后使用中,有个舒适的体验效果。
6.2测试用例模块
我们通过以下表格来测试一些基本使用过程。情况如下表6-1所示。
表6-1测试功能表
测试需求 测试重点 是否达成需求 结果
用户登录 输入账号密码 需求达成 通过
用户注册 创建新的账号密码 需求达成 通过
登录失败 输入错误账号密码 需求达成 通过
修改信息 修改成功 需求达成 通过
添加信息管理 增删查改 需求达成 通过
试题管理 增删查改 需求达成 通过
通知公告管理 增删查改 需求达成 通过
搜索查询管理 增删查改 需求达成 通过
6.2.1用户登录测试
用户通过页面可以根据自我情况来选择登录方式,这里我以学生方式为例,具体内容如图6.1所示。

图6.1 用户登录测试
学生通过账号密码登录系统,登录后cookie存储token用于验证。刷新网页后,登录信息仍然保留,证明登录功能正常。
6.2.2学生注册功能测试
我们进入系统后,发现没有账号密码,这时我们就要选择下方的注册学生的提示符,具体情况如下图6.2所示。

图6.2 用户注册测试
这里我们可以知道注册的功能是没有任何问题,当我们选择注册,写入的信息将被存储到后台MySQL数据库中,所以这里的测试是通过的。
6.2.3用户登录失败测试
我们进入系统后,这时候测试登录的问题,是否会写入错误的账号密码也成功登录系统。如下图6.3所示。

图6.3 用户登录失败测试
输入账号密码错误导致无法登入系统,确保了系统安全性,因此系统登录失败测试可以通过。
6.2.4修改信息功能测试
成功登入系统后,发现学生有不满意的个人信息,我们就可以自我修改信息,我们来测试修改信息的功能,如下图6.4所示。

图6.4 用户修改信息测试
从上发现,用户修改的个人信息后,点击“修改”按钮,那么后台MySQL数据库
中是立马能够更新数据的,到最后,这里的用户修改信息测试是没有问题的。
6.2.5添加信息功能测试
添加信息功能测试,是后台管理人员来添加,这时我们登录管理员账号来实现。具体情况如下6.5所示。

图6.5 添加信息测试
从上发现,添加信息功能测试是那么后台MySQL数据库中是添加该数据的,到最后,这里的用户添加信息测试是没有问题的。
6.2.6试题管理功能测试
毫无疑问,这个功能在整个环节是至关重要的,本系统设计的在线考试系统就是针对考试、试题等关键测试。这关乎到学生是否能正常线上考试。具体如下图6.6所示。

图6.6 考试试题功能测试
考试功能测试正常,基本功能实现,但需要持续维护改善以更符合用户需求,目标实现中。功能暂时通过。
6.2.7通知公告管理功能测试
我们需要测试管理员在日常生活中需要传达相关附件给老师使用,这是通知公告的一个小功能,具体如下图6.7所示。

图6.7通知公告功能测试
上传非图片文件时,附件无法正常显示,但可正常下载,通知公告功能中的上传和下载功能可实现。
6.2.8搜索查询功能测试
在日常生活使用,搜索查询功能也是相当重要的一部分,这能够让管理者节约大量
的时间,提供了更多的效率,具体如下图6.8所示。

图6.8搜索查询功能测试
以上展示表格部分功能,点击搜索栏并输入关键字,系统会展示所需信息,给使用者提供便利,因此搜索查询功能测试通过。
6.3测试结果
经过测试,基于SSM框架的在线考试管理系统各模块功能实现并且满足用户日常使用,操作简单易懂,值得推广。系统尚未完善,监考模块未实现,试题功能不完善,缺少主观阅读题,可视化图形未实现。
7.结论
通过管理员和用户端的操作,实现了在线考试管理系统的设计。本系统采用SSM+Vue+MySQL框架和element-UI等组件库,提高了开发效率。使用MySQL存储数据,通过Java实现前后端数据交互。主要功能包括在线增删改查试卷试题和自动化评比学生成绩。但未实现防作弊和可视化展示,需要进一步完善。系统设计过程中,提高了自己的技能经验,也让自己明白学习计算机知识是永无止境的。自学相关知识,完成了系统设计,带来了无限的喜悦和成就感。同时也提高了自己的独立思考和动手能力。

参考文献:
[1]来学伟,鲁晓辉. 基于JavaScript在线考试系统的设计与实现[J]. 电脑知识与技术,2022,18(24):51-52+55.
[2]张旭辉,郭华瑞. 在线考试系统的设计与实现[J]. 电脑编程技巧与维护,2022,(06):13-14+35.
[3]李晓薇. vue.js前端应用技术分析[J]. 网络安全技术与应用,2022,(04):44-45.
[4]苏扬. 基于Vue.js的单页面WebGIS可视化框架[J]. 数字技术与应用,2022,40(03):183-185.
[5]刘亚茹,张军. Vue.js框架在网站前端开发中的研究[J]. 电脑编程技巧与维护,2022,(01):18-19+39.
[6]熊柏祥. 基于Springboot和Vue框架的考试资源服务平台的设计与实现[J]. 信息与电脑(理论版),2022,34(01):97-99+103.
[7]叶欣,陈磊,杨小国,刘柳,朱接文. 基于B/S模式的在线考试管理系统的分析与设计[J]. 电脑知识与技术,2021,17(35):48-50.
[8]贾志培. 在线考试系统的研究与实现[D].山东大学,2021.
[9]任焕海. 基于B/S架构的在线考试系统设计与实现[J]. 现代信息科技,2021,5(22):13-16.
[10]谢利敏,刘欢,柴立岩. 在线考试系统的设计与实现[J]. 无线互联科技,2021,18(13):49-50.

  • 7
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
一、项目简介本课程演示的是一套基于SSM实现在线考试系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。课程包含:1. 项目源码、项目档、数据库脚本、软件工具等所有资料2. 带你从零开始部署运行本套系统3. 该项目带的源码资料可作为毕设使用4. 提供技术答疑二、技术实现后台框架:Spring、SpringMVC、MyBatisUI界面:JSP、jQuery 、BootStrap数据库:MySQL 三、系统功能该在线考试系统基于B/S架构,采用SSM框架,运用JSP网页开发技术,并结合MySQL数据库,搭建一个高效、便捷的网络考试平台。 ​本系统分为前台考试模块和后台管理模块,包含学生、教师和管理员共三个角色,功能如下: 1.前台考试模块 学生注册、学生登陆、考试中心、参加考试、查看考试成绩、查看历史考卷、查看个人信息等功能。 2.后台管理模块 系统后台登陆、学生管理、教师管理、班级管理、年级管理、科目管理、试题管理、添加试题、导入试题、试卷管理、生成试卷、考试安排管理、添加考试计划、查看以往考试信息、考试成绩统计等功能。 教师主要完成试卷管理、试题管理、考试计划管理等一些与考试相关的操作;管理员具有最高权限,可以管理学生、老师、试题、题库、考试等信息,同时也可以与老师一样进行考试相关的操作。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 四、项目截图1)前台首面 2)历史试卷回顾 3)系统后台管理 4)试卷管理 5)试题管理  更多Java毕设项目请关注【毕设系列课程】https://edu.csdn.net/lecturer/2104   
java 在线考试系统java MF000001 : DJINGH MF000002 : k58fun MF000003 : 65skuv MF000004 : sh9n4g MF000005 : 6HD85G MF000006 : hjsung MF000007 : 56fjid MF000008 : juff5s MF000009 : 68shud MF000010 : 5du8a6 MF000011 : hdua45 MF000012 : hud6hj MF000013 : husn56 MF000014 : dehi34 MF000015 : hsung5 MF000016 : 45fjis MF000017 : huugn9 MF000018 : khnf54 MF000019 : hudn56 MF000020 : khfunw MF000021 : djdhnd MF000022 : hfjsgk MF000023 : hyaugn MF000024 : 586shu MF000025 : hud85y MF000026 : hudng9 MF000027 : hungyk MF000028 : 83hyqk MF000029 : hydhyq MF000030 : hyang5 MF000031 : hsf7qw MF000032 : hyafng MF000033 : sbhf53 MF000034 : fhung8 MF000035 : hungsg MF000036 : dhyfgn MF000037 : dnhufa MF000038 : jusngh MF000039 : nhdugk MF000040 : 58sfhu MF000041 : 66dkjg MF000042 : hsung9 MF000043 : dhuisg MF000044 : hunssg MF000045 : jhsug6 MF000046 : 846hys MF000047 : husngk MF000048 : fnshug MF000049 : 64dhua MF000050 : syhkfn MF000051 : 587san MF000052 : wayhfp MF000053 : fhuang MF000054 : shugny MF000055 : huangm MF000056 : nushg5 MF000057 : dgbhyg MF000058 : husngk MF000059 : fhusgn MF000060 : fhajgj MF000061 : dhungk MF000062 : wyufng MF000063 : sjoifn MF000064 : huangk MF000065 : asgugn MF000066 : husngk MF000067 : nusbgy MF000068 : nshung MF000069 : nusgnj MF000070 : bufhng MF000071 : nsugnk MF000072 : qyhgjm MF000073 : nuwhgn MF000074 : nwhfiu MF000075 : husngj MF000076 : nhupfk MF000077 : afnhuf MF000078 : 68sjui MF000079 : 19jsgn MF000080 : skiunf MF000081 : husngk MF000082 : nufang MF000083 : gusnfc MF000084 : 57pudn MF000085 : nuyahg MF000086 : sufhim MF000087 : snuidm MF000088 : bundsg MF000089 : Nshunf MF000090 : jytqnf MF000091 : bhuang MF000092 : buuang MF000093 : adhuqm MF000094 : buangj MF000095 : bwgang MF000096 : busngp MF000097 : usnhgk MF000098 : byagng MF000099 : buangj MF000100 : bghang MF000101 : sdhung MF000102 : 26whgn MF000103 : shungf MF000104 : byafnh MF000105 : 92busy MF000106 : 84tdnu MF000107 : bufang MF000108 : 46snky MF000109 : nushgn MF000110 : 76dhbf MF000111 : buganj MF000112 : shungj MF000113 : ytwbfk MF000114 : husngj MF000115 : buangh MF000116 : 89tdfh MF000117 : huysan MF000118 : dhungj MF000119 : hungkt MF000120 : hysnfk MF000121 : 49hynf MF000122 : hysabf MF000123 : 36shuf MF000124 : hanukf MF000125 : buynsh MF000126 : dyhfng MF000127 : nugkhy MF000128 : juhfng MF000129 : busngj MF000130 : sbuagn MF000131 : KJJFIS MF000132 : jisghd MF000133 : nhusgn MF000134 : ynfhgu MF000135 : NUSGNH MF000136 : nuhsgk MF000137 : 59UHNF MF000138 : 45fhun MF000139 : 58shun MF000140 : nusgkk MF000141 : 87ahud MF000142 : jugsjh MF000143 : hunsgk MF000144 : HUSNGJ MF000145 : 86shun MF000146 : buygng MF000147 : nusgnm MF000148 : bdyugn MF000149 : bunghs MF000150 : nuagnk MF000151 : bugnhs MF000152 : hugnkd MF000153 : 56DFGJ MF000154 : 56AKIG MF000155 : hng5dj MF000156 : hunfjg MF000157 : bunfng MF000158 : nhunsg MF000159 : ynahgj MF000160 : nuhgjj MF000161 : hynsjg MF000162 : huangj MF000163 : bungjd MF000164 : nhusng MF000165 : BUGHJL MF000166 : buakhg MF000167 : hunfjg MF000168 : yuanhg MF000169 : 59yudn MF000170 : 69SHUN MF000171 : busngj MF000172 : bunsng MF000173 : buwhng MF000174 : bungjd MF000175 : budnkg MF000176 : bunsgj MF000177 : 56JUGB MF000178 : nusngk MF000179 : bungjg MF000180 : nusigm MF000181 : 58dfgm MF000182 : 9hufnk MF000183 : bhusgn MF000184 : 5shunf MF000185 : mnjisg MF000186 : budnfj MF000187 : 46ghun MF000188 : 65husn MF000189 : busngj MF000190 : nushgk MF000191 : nusgjj MF000192 : 36hung MF000193 : iungjd MF000194 : nushgn MF000195 : synghk MF000196 : nhusng MF000197 : yhdgng MF000198 : hynsgk MF000199 : jyuang MF000200 : yhfung MF000201 : bungkd MF000202 : busngh MF000203 : nuusgs MF000204 : wythfn MF000205 : bynagj MF000206 : bunsgk MF000207 : buanhg MF000208 : bksgnh MF000209 : byhnag MF000210 : huyanf MF000211 : nbuhgj MF000212 : byangj MF000213 : bunsgj MF000214 : wyhgnj MF000215 : hunagj MF000216 : husngu MF000217 : hunfhg MF000218 : ygufng MF000219 : hyngki MF000220 : nhyudn MF000221 : tyfnjg MF000222 : nuhgjk MF000223 : qtyfbg MF000224 : tyungh MF000225 : tyhgnj MF000226 : yhfung MF000227 : bynfhg MF000228 : busngh MF000229 : dstngh MF000230 : yhfnhg MF000231 : buhnfj MF000232 : gybhgh MF000233 : wyhfun MF000234 : wtngju MF000235 : byhngf MF000236 : wthfun MF000237 : gyhfng MF000238 : buyang MF000239 : husnfh MF000240 : bgyfgk MF000241 : fgyhdn MF000242 : hufngj MF000243 : yndsgj MF000244 : busngj MF000245 : bysgjg MF000246 : hundgj MF000247 : fgungh MF000248 : buynfh MF000249 : nuhfjg MF000250 : byunsg MF000251 : busngj MF000252 : abugnf MF000253 : bungjd MF000254 : dgyngj MF000255 : nusngj MF000256 : bufngh MF000257 : nbusgj MF000258 : gshusg MF000259 : syhngj MF000260 : husgnj MF000261 : hugdmn MF000262 : dhunge MF000263 : yujhgn MF000264 : sfgngj MF000265 : whnjfh MF000266 : husngj MF000267 : ynhgdj MF000268 : hyngjf MF000269 : nhydng MF000270 : btghfn MF000271 : fjiugj MF000272 : ghnduf MF000273 : hunfjg MF000274 : yujghm MF000275 : tyhhuf MF000276 : bysngj MF000277 : jysjgh MF000278 : husgmg MF000279 : yhdfug MF000280 : hunfjg MF000281 : tsghhj MF000282 : fgnghg MF000283 : nudgih MF000284 : ngyngk MF000285 : ehyfgi MF000286 : bysngj MF000287 : nudgjh MF000288 : budnhf MF000289 : nusngk MF000290 : bgdjgd MF000291 : hudnhg MF000292 : dnhufg MF000293 : yhgnds MF000294 : wdhyuf MF000295 : wdghun MF000296 : wsdhng MF000297 : awfvjh MF000298 : fdhung MF000299 : srtfhn MF000300 : weasng MF000301 : kxjh23 MF000302 : xer5w6 MF000303 : q4eb68 MF000304 : l2b5gf MF000305 : 4ks7gh MF000306 : 23iyun MF000307 : c8li1r MF000308 : 3pqm9z MF000309 : 5ymb1d MF000310 : 7ytewf MF000311 :i1vgd6 MF000312 : fjep65 MF000313 : kl82uy MF000314 : rt74en MF000315 : ec85g2 MF000316 : hv9t3w MF000317 : yu03we MF000318 : jk05p4 MF000319 : m4jv6f MF000320 : vb8net MF000321 : t15nfw MF000322 : w90plg MF000323 : a50ycx MF000324 : z64lkh MF000325 : b7h0gm MF000326 : m5k1fp MF000327 : 4zdlde MF000328 : y9ogs2 MF000329 : b3r7kg MF000330 : v2yiuz MF000331 : d6xvc7 MF000332 : mdo69w MF000333 : js6wy9 MF000334 : ti6lvf MF000335 : s6pivn MF000336 : hpsvir MF000337 : tqp868 MF000338 : g00gel MF000339 : bd0ird MF000340 : ui354u MF000341 : g7lhsv MF000342 : fd87yi MF000343 : n4tmvu MF000344 : jtylr2 MF000345 : z87kjg MF000346 : 7hjfrx MF000347 : p63xde MF000348 : g89knv MF000349 : 59utbv MF000350 : k21jnm MF000351 : 9ap6jd MF000352 : x8pqvc MF000353 : t4loea MF000354 : 5caqz4 MF000355 : b6esld MF000356 : jkbc91 MF000357 : u6djgr MF000358 : 82hvnw MF000359 : 67kqdf MF000360 : x8j502 MF000361 : 4unzjg MF000362 : z2kpoi MF000363 : 63hmde MF000364 : 72zdge MF000365 : 67ybdk MF000366 : jhdyw6 MF000367 : sa82kg MF000368 : d43dfw MF000369 : z21yew MF000370 : 1hgdtg MF000371 : a5fdnb MF000372 : 19dayn MF000373 : nv37ge MF000374 : zy5gde MF000375 : ujw4d5 MF000376 : z8fdf6 MF000377 : t1qzpd MF000378 : ztdfd3 MF000379 : eldoq2 MF000380 : tpmdf8 MF000381 : wknu6e MF000382 : gt4ebn MF000383 : sg29im MF000384 : 9alnbm MF000385 : 2k4h9e MF000386 : yyp8kq MF000387 : hf386t MF000388 : ec61gv MF000389 : qrd6dz MF000390 : b75hox MF000391 : z3x5v6 MF000392 : v1dkp9 MF000393 : r3udol MF000394 : 9afvx7 MF000395 : et4dpi MF000396 : je09jh MF000397 : gt20rb MF000398 : ho0leg MF000399 : h00kgp MF000400 : i32fgu MF000401 : yg86fe MF000402 : wpm09e MF000403 : 15rgnb MF000404 : wgbee5 MF000405 : z9h6e2 MF000406 : y3kv4d MF000407 : tpk0od MF000408 : e2ufla MF000409 : q9lpmz MF000410 : rnds69 MF000411 : ap03fh MF000412 : kowdf2 MF000413 : n5dpo1 MF000414 : zt9h6m MF000415 : rgsf4f MF000416 : fd301t MF000417 : zjiw30 MF000418 : e6qydm MF000419 : sd96ud MF000420 : gjlo0d MF000421 : ups00f MF000422 : qn4cdd MF000423 : wrmd68 MF000424 : 1ahves MF000425 : ghknyt MF000426 : ndle1q MF000427 : v57wzj MF000428 : sky2ur MF000429 : gvdx61 MF000430 : yrbnvc MF000431 : pd3ui9 MF000432 : zoopj4 MF000433 : rgf00e MF000434 : exqgg6 MF000435 : bv27yg MF000436 : 9myuip MF000437 : cts7eg MF000438 : gj61ed MF000439 : a8ouqw MF000440 : 5gmsef MF000441 : jw6dob MF000442 :hjg09g MF000443 : iqyjk9 MF000444 : e22htr MF000445 : vlz75f MF000446 : kutmv4 MF000447 : gqddge MF000448 : zlzd69 MF000449 : q7ndkj MF000450 : x7psw8 MF000451 : hmlt5s MF000452 : rt83zg MF000453 : tiong0 MF000454 : yn666d MF000455 : zeenp5 MF000456 : yu33gn MF000457 : r00pum MF000458 : ec8tch MF000459 : qz11gg MF000460 : 5splue MF000461 : xdier4 MF000462 : gspm8w MF000463 : aor46g MF000464 : e0tnjm MF000465 : f1abut MF000466 : gr91bv MF000467 : qc3ngd MF000468 : zs58kl MF000469 : hsonb3 MF000470 : env66h MF000471 : lwvf03 MF000472 : dt5slp MF000473 : qrnzx2 MF000474 : rmdg1o MF000475 : xuiqsk MF000476 : gapbsb MF000477 : h96knm MF000478 : x3dnmf MF000479 : qndd52 MF000480 : rnn6fs MF000481 : z1hnrb MF000482 : k5dnnm MF000483 : zu5ck6 MF000484 : w9ccpp MF000485 : q6uudl MF000486 : zpww33 MF000487 : aaenm1 MF000488 : gqmdss MF000489 : gt7ffn MF000490 : kit3dk MF000491 : evffjj MF000492 : n55hgk MF000493 : rhmmcd MF000494 : wu32yv MF000495 : jafxxe MF000496 : fgsy6t MF000497 : zj59gl MF000498 : rwppc5 MF000499 : qn48bk MF000500 : ujs2fs MF000501 : b2jz9t MF000502 : zsw8fn MF000503 : ruzfi4 MF000504 : qi0mrn MF000505 : iw7fnn MF000506 : ryvu95 MF000507 : wt0ybv MF000508 :tz1olg MF000509 : a63jsp MF000510 : s5jnfd MF000511 : gn4via MF000512 : swjj88 MF000513 : gmcf7s MF000514 : qnyskp MF000515 : ah30py MF000516 : xy7rnd MF000517 : ze13rn MF000518 : uldgm6 MF000519 : xtajoe MF000520 : zqlpod MF000521 : zfccig MF000522 : enyrm0 MF000523 : qn61dn MF000524 : ezpcfg MF000525 :s4apfj MF000526 : gv61ja MF000527 : at35kx MF000528 : r92gtr MF000529 : w8ioht MF000530 : f49dtt MF000531 : rc2jot MF000532 : z7ootj MF000533 : t6m9jg MF000534 : t9teza MF000535 : qg24lk MF000536 : apo0dn MF000537 : lip0dq MF000538 : tinbcx MF000539 : zy14dd MF000540 : zt8iwe MF000541 : mrs35gd MF000542 : ewtf7s MF000543 : zrs96i MF000544 : 9qdpmv MF000545 : r8puid MF000546 : e3jgfr MF000547 : w0invs MF000548 : o4dmah MF000549 : toupd6 MF000550 : r5nvgk MF000551 : ybazp6 MF000552 : biwzml MF000553 : 5niuaq MF000554 : eimgj3 MF000555 : wfi0vz MF000556 : qc7doi MF000557 : xi0psf MF000558 : tnd2hl MF000559 : mp6uhg MF000560 : uairxc MF000561 : lracg7 MF000562 : zie8nx MF000563 : espuxq MF000564 : u3fmq5 MF000565 : rw52lj MF000566 : eyco5k MF000567 : zymb1n MF000568 : vxp0fq MF000569 : sw22hi MF000570 : neoj3w MF000571 : y7ifed MF000572 : t4iwnm MF000573 : qz8lhg MF000574 : uvg2dl MF000575 : rspo1d MF000576 : ejsku0 MF000577 : gc3hue MF000578 : bwlg9f MF000579 : vr4bxd MF000580 : stnrv8 MF000581 : gomr5t MF000582 : ygqijf MF000583 : eswbvt MF000584 : ufra0v MF000585 : tpv6wb MF000586 : jbg9dv MF000587 : grtnpl MF000588 : ev5i0s MF000589 : vem5qz MF000590 : w8jsby MF000591 : fs3bh2 MF000592 : gr0hcn MF000593 : s6mt9g MF000594 : ph7jqz MF000595 : l8fetx MF000596 : kf1jnb MF000597 : rhdfe0 MF000598 : xti2zb MF000599 : gj6l9r MF000600 : vma4bf MF000601 : si0hqd MF000602 : zpr54j MF000603 : ux40iy MF000604 : ewl90d MF000605 : g30jza MF000606 : dm48kb MF000607 : wb35gb MF000608 : sv72hs MF000609 : lzy0lg MF000610 : s17dny MF000611 : cd37dm MF000612 : 3zpfmd MF000613 : ork4xd MF000614 : ec16de MF000615 : pw4mhb MF000616 : eri0az MF000617 : kw94dv MF000618 : c6jgl3 MF000619 : rogqb6 MF000620 : jf4hb8 MF000621 : zdn6yi MF000622 : jyre4d MF000623 : habxp3 MF000624 : hnvoi5 MF000625 : rmlsv2 MF000626 : rnwqo0 MF000627 : bi8fet MF000628 : uhf8dv MF000629 : gt7nrv MF000630 : ecl0iu MF000631 : sryg3f MF000632 : esozx0 MF000633 : rbpqzn MF000634 : zippw4 MF000635 : zwko9t MF000636 : zeqqnb MF000637 : zrttdm MF000638 : zqccq5 MF000639 : zeliuu MF000640 : zwmmgy MF000641 : zykkge MF000642 : zhvaav MF000643 : zgfi8f MF000644 : zou7tf MF000645 : snuggj MF000646 : gmo99r MF000647 : frnlgb MF000648 : rnghhd MF000649 : ecoinn MF000650 : gmmsdg MF000651 : wj0kzl MF000652 : smenf8 MF000653 : ynvaq4 MF000654 : mtwvf6 MF000655 : imhnvc MF000656 : gmxtui MF000657 : rvtnhh MF000658 : enthgj MF000659 : xntbjg MF000660 : kspfe4 MF000661 : q2msig MF000662 :r0gmkl MF000663 : x0hrwv MF000664 : ej77lg MF000665 : wbgvgt MF000666 : e6ioth MF000667 :vxldgf MF000668 : riop4g MF000669 : 0hmhgk MF000670 : fnrjf3 MF000671 : ghdf9i MF000672 : rgdgd5 MF000673 : hgemiq MF000674 : gfd784 MF000675 : tw4jvg MF000676 : weetfi MF000677 : tnhfgk MF000678 : husngd MF000679 : dhthfn MF000680 : fnusng MF000681 : hudnhk MF000682 : busnjf MF000683 : tujngj MF000684 : nhudgn MF000685 : byfsng MF000686 : ahfusg MF000687 : fbysng MF000688 : bynsjg MF000689 : fnhdui MF000690 : wbhfug MF000691 : gysgnd MF000692 : hysnjg MF000693 : nusngj MF000694 : gtydhu MF000695 : hudngj MF000696 : thfumg MF000697 : bdufnm MF000698 : husngj MF000699 : gjhthf MF000700 : ghdgjd MF000701 : tfhndu MF000702 : dnyudg MF000703 : bhdjkg MF000704 : dnhgif MF000705 : gdnhdgi MF000706 : fbhdgjd MF000707 : shfndih MF000708 : dhnjgds MF000709 : etyfhng MF000710 : dsehgnj MF000711 : nhydgiu MF000712 : wsfyunf MF000713 : fsgksdl MF000714 : fhryngk MF000715 : gdngdug MF000716 : sdsfgeh MF000717 : wtryuri MF000718 : sfgdhgn MF000719 : egdungh MF000720 : ytudhif MF000721 : zkw69e MF000722 :rmip0w MF000723 : zseqzz MF000724 : i9yljk MF000725 : e7yity MF000726 : lklmn0 MF000727 : erwrqt MF000728 : tsnjjh MF000729 : hgiun7 MF000730 : gcolgh MF000731 : jlknm8 MF000732 : zhvx66 MF000733 : j2nntr MF000734 : gbelhb MF000735 : xaiovc MF000736 : y7nav4 MF000737 : z3jypp MF000738 : genooi MF000739 : spj0mm MF000740 : ew14jj MF000741 : r9jgf3 MF000742 : q5jgtt MF000743 : r55yur MF000744 : qvvghh MF000745 : xx90hf MF000746 : wwnlkz MF000747 : xzzoop MF000748 : ecppd4 MF000749 : xa0oss MF000750 : sd33jj MF000751 : 8iennh MF000752 : o2jasa MF000753 : 3qoigg MF000754 : i5reng MF000755 : e66bvv MF000756 : lzztii MF000757 : l1wwqn MF000758 : rffkkl MF000759 : q3nbff MF000760 : r8oo00 MF000761 : s1nsms MF000762 : a3nngg MF000763 : x22mlo MF000764 : xswmjl MF000765 : ryyvv5 MF000766 : dd3kpp MF000767 : msd4ty MF000768 : issjyw MF000769 : xntt8n MF000770 : 0unnht MF000771 : rllfsa MF000772 : kt66nb MF000773 : zi99po MF000774 : f19jln MF000775 : alqqv3 MF000776 : gtrrze MF000777 : icotco MF000778 : ibmew7 MF000779 : 5iffsb MF000780 : zplm66 MF000781 : y3dxds MF000782 : j81xaq MF000783 : i113kl MF000784 : rtg998 MF000785 : s201hn MF000786 : z577df MF000787 : sj39ht MF000788 : rnn84g MF000789 : qmm1fe MF000790 : ds45hy MF000791 : ecp23j MF000792 : xa4jti MF000793 : ynngv7 MF000794 : haqol1 MF000795 : tboyi6 MF000796 : eondc3 MF000797 : hzgn55 MF000798 : yrjnmm MF000799 : dns0oe MF000800 : qlfybd MF000801 : ftmmo9 MF000802 : ylpwml MF000803 : 7jnrfb MF000804 : so0mqd MF000805 : zjnn5y MF000806 : gmodde MF000807 : pmeluj MF000808 : giukk4 MF000809 : udr3an MF000810 : 0jntvf MF000811 : opp0ru MF000812 : fm701i MF000813 : trzleb MF000814 : futre2 MF000815 : zelooy MF000816 : teernb MF000817 : bird6j MF000818 : desk5a MF000819 : booksd MF000820 : blueuy MF000821 : englis MF000822 : plushz MF000823 : zhidao MF000824 : shuxue MF000825 : truble MF000826 : zool0i MF000827 : pigmsc MF000828 : yuwen6 MF000829 : huaxue MF000830 : wulike MF000831 : daishu MF000832 : meishu MF000833 : lishi5 MF000834 : dilini MF000835 : yuedu3 MF000836 : dlsmj7 MF000837 : qicqmi MF000838 : amayun MF000839 : guanbi MF000840 : quanji MF000841 : xiaoke MF000842 : baojnu MF000843 : mabao0 MF000844 : feiyat MF000845 : guozon MF000846 : goumie MF000847 : uptoa9 MF000848 : auggod MF000849 : siaugi MF000850 : kuyoue MF000851 : xiuxui MF000852 : uyoahi MF000853 : gnijei MF000854 : uhznus MF000855 : iaceyr MF000856 : gnaila MF000857 : hehuag MF000858 : zhongh MF000859 : baicai MF000860 : paigut MF000861 : woguju MF000862 : huoxia MF000863 : tuanji MF000864 : haican MF000865 : xiaipp MF000866 : yueyin MF000867 : rongne MF000868 : xincha MF000869 : diansn MF000870 : tupo7h MF000871 : weigna MF000872 : ufizwi MF000873 : uwhand MF000874 : hshiqi MF000875 : ztaita MF000876 : mingsh MF000877 : nasoug MF000878 : inpnil MF000879 : utzhen MF000880 : oulngw MF000881 : qintia MF000882 : ianaij MF000883 : snauth MF000884 : caiouh MF000885 : uyiuak MF000886 : ufiaci MF000887 : nijigh MF000888 : gnayie MF000889 : munaix MF000890 : ihsonz MF000891 : adafij MF000892 : ihzuoy MF000893 : gnahci MF000894 : ixuohs MF000895 : nainil MF000896 : uloabe MF000897 : oagite MF000898 : gnehcg MF000899 : iusanl MF000900 : iatoat MF000901 : naijes MF000902 : aqdi96 MF000903 : fylou7 MF000904 : iewmig MF000905 : iabhui MF000906 : xtdgw7 MF000907 : drhyb4 MF000908 : wushax MF000909 : caihyc MF000910 : ylplwm MF000911 : u3idjj MF000912 : ekejqq MF000913 : newwin MF000914 : tntevv MF000915 : xo0laa MF000916 : smihhr MF000917 : elppas MF000918 : imoaim MF000919 : riuxjj MF000920 : t0umwq MF000921 : v8betr MF000922 : psjvat MF000923 : ko0lrq MF000924 : tvuqz9 MF000925 : kl3hzz MF000926 : uleysh MF000927 : yksetn MF000928 : baina1 MF000929 : joyckm MF000930 : tengua MF000931 : kuooyn MF000932 : disjmw MF000933 : bsyang MF000934 : ynzjzy MF000935 : spwywd MF000936 : kdlj09 MF000937 : exprss MF000938 : shiuyn MF000939 : jiyun8 MF000940 : hepeiu MF000941 : gyqyzz MF000942 : zahgnj MF000943 : lycwyi MF000944 : guihua MF000945 : qiujia MF000946 : ojiexi MF000947 : nxinci MF000948 : sehngi MF000949 : yzierw MF000950 : eijiaj MF000951 : ieshui MF000952 : zhilin MF000953 : qizhew MF000954 : enfeng MF000955 : zuoxia MF000956 : ngyuec MF000957 : aomuyo MF000958 : ubenxi MF000959 : nheqiu MF000960 : mrzhei MF000961 : nljcbh MF000962 : djdqu2 MF000963 : ltaoj3 MF000964 : qgflrw MF000965 : 4glxbg MF000966 : rendsh MF000967 : sgzlcb MF000968 : lsck6g MF000969 : jtopan MF000970 : jq7qdx MF000971 : jsruha MF000972 : ysdshj MF000973 : yxgjdn MF000974 : x9qcjl MF000975 : xozyf0 MF000976 : ysgjin MF000977 : txjqlf MF000978 : fyanme MF000979 : ggsh3y MF000980 : dqyxwo MF000981 : zshhua MF000982 : rsrume MF000983 : yzhljy MF000984 : yulinn MF000985 : hcqqie MF000986 : dctinw MF000987 : zouycx MF000988 : dmzywx MF000989 : lnuchu MF000990 : lzcfao MF000991 : zsxkly MF000992 : jwuyny MF000993 : nianqq MF000994 : qliyab MF000995 : makcct MF000996 : dqzigs MF000997 : gnkllq MF000998 : qjjxjx MF000999 : yliuan MF001000 : zqsrrt MF001001 : zymxhh MF001002 : yikout MF001003 : suowei MF001004 : zhexue MF001005 : fanfln MF001006 : gaikuo MF001007 : suanzo MF001008 : lantuu MF001009 : tangji MF001010 : daraog MF001011 : yuzgjn MF001012 : hduxfu MF001013 : xfeyiz MF001014 : dijhlu MF001015 : jsjedw MF001016 : kmjyoy MF001017 : whatbo MF001018 : lgsndx MF001019 : xrxcfz MF001020 : xzwlie MF001021 : jcxchi MF001022 : thzyxj MF001023 : bzjdnm MF001024 : ddygzw MF001025 : ywxzfn  MF001026 : qlsncn MF001027 : tzjzsb MF001028 : jymnia MF001029 : ztrhei MF001030 : bafjxn MF001031 : ncxyyl MF001032 : zhqijz MF001033 : ktxjrs MF001034 : fyuqis MF001035 : zyzwyj MF001036 : ygfbls MF001037 : zdtiyh MF001038 : xianys MF001039 : tuncjg MF001040 : hhaoss MF001041 : hwjiya MF001042 : zhuixy MF001043 : qixwqn MF001044 : czyylz MF001045 : dguany MF001046 : qrzsby MF001047 : rzbtwx MF001048 : njxxia MF001049 : qianks MF001050 : dhyclw MF001051 : hstzhu MF001052 : cycize MF001053 : duoqzy MF001054 : zdrsbd MF001055 : yxlmol MF001056 : bukecg MF001057 : zukclr MF001058 : xydezz MF001059 : dusbai MF001060 : ykqbdh MF001061 : szyits MF001062 : mlipin MF001063 : uikmjh MF001064 : cskjkf MF001065 : doingk MF001066 : losimg MF001067 : zuozly MF001068 : tdaisr MF001069 : sbuzgo MF001070 : yuxzmn MF001071 : sbzshe MF001072 : ylozli MF001073 : sislsh MF001074 : wiewdx MF001075 : thsjlu MF001076 : cserlq MF001077 : txyhru MF001078 : wlwbad MF001079 : keytsq MF001080 : yuejji MF001081 : wszzle MF001082 : wanblx MF001083 : nynzgl MF001084 : kzyhlz MF001085 : thyuji MF001086 : jityzg MF001087 : wulinr MF001088 : enbuyu MF001089 : yxixin MF001090 : wlzyji MF001091 : hufthl MF001092 : jansbb MF001093 : facxme MF001094 : loybfe MF001095 : yurshy MF001096 : fuqian MF001097 : yuqion MF001098 : ljshyn MF001099 : bdeyis MF001100 : zippsz MF001101 : zicumx MF001102 : xmax7d MF001103 : zwtji4 MF001104 : luloyx MF001105 : zntqle MF001106 : xnsywz MF001107 : qzexhz MF001108 : wlebjz MF001109 : yyyeky MF001110 : jxmfzy MF001111 : 5mcszo MF001112 : cyxxhd MF001113 : gglcct MF001114 : sgyxlb MF001115 : wsbscl MF001116 : cfnsjr MF001117 : ycsjnx MF001118 : gdxtxx MF001119 : ybmzzz MF001120 : bxtzqn MF001121 : qjjiub MF001122 : jbjhez MF001123 : rsdyxj MF001124 : tswcby MF001125 : qjsjhf MF001126 : ghqgss MF001127 : cahwxc MF001128 : sdqmcd MF001129 : yqhcfz MF001130 : wrzslz MF001131 : skzjpg MF001132 : hfxqin MF001133 : jpgyqy MF001134 : yhnwrt MF001135 : molewr MF001136 : wqyemo MF001137 : jztxry MF001138 : sfjrze MF001139 : wbogsw MF001140 : srwbww MF001141 : yrchey MF001142 : luyytb MF001143 : clxjex MF001144 : jrzyjg MF001145 : hgzbdu MF001146 : enothr MF001147 : zpoojg MF001148 : yzaywg MF001149 : xmalay MF001150 : jeckma MF001151 : sixtyj MF001152 : school MF001153 : teache MF001154 : eventh MF001155 : workno MF001156 : timeth MF001157 : tomqoo MF001158 : goodlu MF001159 : someby MF001160 : mornin MF001161 : hievre MF001162 : wechat MF001163 : weixin MF001164 : sleepi MF001165 : beerur MF001166 : kingdm MF001167 : intern MF001168 : explor MF001169 : autocd MF001170 : dwfvie MF001171 : wz67fx MF001172 : azxmxx MF001173 : mfllxt MF001174 : preytx MF001175 : ynyght MF001176 : uryoqp MF001177 : niupoh MF001178 : dsc32m MF001179 : hyptgl MF001180 : jh50mt MF001181 : aefiej MF001182 : tszqul MF001183 : kutgxi MF001184 : oyxesc MF001185 : qyksdj MF001186 : zjwili MF001187 : sxgjsi MF001188 : dnuiat MF001189 : xesell MF001190 : coggss MF001191 : cfenop MF001192 : cquiut MF001193 : yunxi6 MF001194 : hwjerz MF001195 : azjlgy MF001196 : kiuznv MF001197 : fnwedb MF001198 : hystyu MF001199 : zkwjmm MF001200 : cxgcha MF001201 : dbjsjh MF001202 : hzqtxy MF001203 : zyqien MF001204 : ylahyz MF001205 : qwendn MF001206 : yqjyxp MF001207 : msdoii MF001208 : huijin MF001209 : luohua MF001210 : qibost MF001211 : hjxzzj MF001212 : lhnuyy MF001213 : lqsymz MF001214 : cgjuzu MF001215 : cpwing MF001216 : xlebzq MF001217 : rnh6dz MF001218 : srto0b MF001219 : opjsty MF001220 : b2clvy MF001221 : wjyle2 MF001222 : pinche MF001223 :yxlmgj MF001224 : zoheym MF001225 : souyan MF001226 : zidgyh MF001227 : cvmhco MF001228 : jslsdy MF001229 : jiugui MF001230 : gkscq6 MF001231 : zsoa23 MF001232 : dsqtai MF001233 : yuti77 MF001234 : hyclgl MF001235 : xxrzjs MF001236 : gfuxzi MF001237 : peixbn MF001238 : tbddgl MF001239 : gdzicg MF001240 : alizid MF001241 : zippyu MF001242 : hdluoy MF001243 : kkuyn7 MF001244 : sqzfu8 MF001245 : i1yrdw MF001246 : joyume MF001247 : qiie90 MF001248 : 2pslj7 MF001249 : wlkecg MF001250 : ddwli6 MF001251 : cvs5id MF001252 : amazen MF001253 : iso9yn MF001254 : z7ogfl MF001255 : gtj3pa MF001256 : jian66 MF001257 : wzryho MF001258 : z77mfg MF001259 : i504er MF001260 : tbke50 MF001261 : ptx8j2 MF001262 : cd88kl MF001263 : lmti1v MF001264 : d50kva MF001265 : sxtrli MF001266 : xsbkei MF001267 : xcuns2 MF001268 : ttwgzj MF001269 : zynhr2 MF001270 : wsliba MF001271 : sebtoq MF001272 : u72mcc MF001273 : g29jbb MF001274 : gpplr4 MF001275 : ztw7fj MF001276 : 9sro0l MF001277 : nesvec MF001278 : speed8 MF001279 : gnn3j6 MF001280 : yapohn MF001281 : msike0 MF001282 : cjilxh MF001283 : bozgqp MF001284 : hblexy MF001285 : xmayi3 MF001286 : xzhucm MF001287 : wxmofc MF001288 : libaih MF001289 : fgqhng MF001290 : lanya6 MF001291 : jixmic MF001292 : xrcody MF001293 : hejind MF001294 : sicgun MF001295 : tkodzg MF001296 : fangka MF001297 : xcmobi MF001298 : mmdodz MF001299 : qiniuy MF001300 : dlmedz MF001301 : byuyix MF001302 : jbhuxs MF001303 : cshpvi MF001304 : lujppi MF001305 : wxqqlg MF001306 : slnvpk MF001307 : zxzibo MF001308 : canglp MF001309 : apsdji MF001310 : jwhiao MF001311 : zyspki MF001312 : bgzxdj MF001313 : kutiky MF001314 : sjghsi MF001315 : hlsxbe MF001316 : lsxgdm MF001317 : yiwqlf MF001318 : dyazim MF001319 : tanchs MF001320 : yiqtxz MF001321 : baoshi MF001322 : 5shqsj MF001323 : zphai2 MF001324 : plnxqc MF001325 : xexshl MF001326 : saylxj MF001327 : xwsmfu MF001328 : xjidvy MF001329 : fwapwn MF001330 : wijyub MF001331 : zxrsjc MF001332 : hsc5vl MF001333 : zyjuhi MF001334 : xiqfyu MF001335 : yemeis MF001336 : faizha MF001337 : xzdjjs MF001338 : ljmpdi MF001339 : jqieyg MF001340 : iumoba MF001341 : dxyzmt MF001342 : jstxim MF001343 : mkckej MF001344 : fxqidz MF001345 : chongz MF001346 : dxiuzb MF001347 : jijian MF001348 : erciyu MF001349 : ssbblt MF001350 : fgniha MF001351 : qiwatm MF001352 : bpdxhm MF001353 : dxhzkx MF001354 : wmaiir MF001355 : msdcxt MF001356 : fxctou MF001357 : zywsdb MF001358 : zidcji MF001359 : ruoxia MF001360 : bendis MF001361 : jihnhc MF001362 : qlvbix MF001363 : yiyuzn MF001364 : zhifub MF001365 : esyiyh MF001366 : bbqnae MF001367 : fangka MF001368 : gongshi MF001369 : jiauoy MF001370 : wangzh MF001371 : zximms MF001372 : yixuet MF001373 : haoguo MF001374 : bymdwg MF001375 : zocdiy MF001376 : datoke MF001377 : jxcprt MF001378 : yghaox MF001379 : xczjib MF001380 : ysdriz MF001381 : yinyeu MF001382 : zidong MF001383 : dshizb MF001384 : fengsg MF001385 : zuocai MF001386 : bastng MF001387 : zygglm MF001388 : wiqgmh MF001389 : astfgh MF001390 : glinmu MF001391 : langrg MF001392 : yisqmi MF001393 : weipan MF001394 : wzdhlt MF001395 : zwucsm MF001396 : sjzibo MF001397 : xuanho MF001398 : ziudby MF001399 : taitan MF001400 : sjmigh MF001401 : mzanum MF001402 : osijsq MF001403 : jietuo MF001404 : zbopxi MF001405 : kuquyc MF001406 : fuwaah MF001407 : xjdkpo MF001408 : katsjb MF001409 : miaojl MF001410 : wahjin MF001411 : duanxb MF001412 : fldide MF001413 : jiukuw MF001414 : daoaui MF001415 : wxnuoc MF001416 : buyujj MF001417 : zoupye MF001418 : sheioj MF001419 : cswiln MF001420 : renscb MF001421 : yunbao MF001422 : xwasic MF001423 : dsjcug MF001424 : qzwhus MF001425 : wberoi MF001426 : aikeon MF001427 : yingsi MF001428 : weikeb MF001429 : fujikl MF001430 : zizhut MF001431 : scqisc MF001432 : wtaolk MF001433 : diancu MF001434 : hujyn2 MF001435 : lianmg MF001436 : baijia MF001437 : qmizob MF001438 : zehwuj MF001439 : zheiyr MF001440 : wivimu MF001441 : amatpq MF001442 :obyilt MF001443 : ricgne MF001444 : iahidj MF001445 : kanaup MF001446 : zxbaqn MF001447 :afexno MF001448 :mengde MF001449 :tupxcx MF001450 :lvsewd MF001451 : xybbqy MF001452 : cjihbo MF001453 : snuayv MF001454 : gloufg MF001455 : lyzndk MF001456 : gcmuxl MF001457 : hlwyqj MF001458 : jianfe MF001459 : tkmyud MF001460 : weimei MF001461 : kuchun MF001462 : jiaoca MF001463 : tybisj MF001464 : haidis MF001465 : yishut MF001466 : cryisg MF001467 : ecscwu MF001468 : youlin MF001469 : r8isbn MF001470 : dds2jn MF001471 : meitan MF001472 : meijia MF001473 : fmxmly MF001474 : flyple MF001475 : qyefkd MF001476 : wjiudn MF001477 : weiket MF001478 : zhihui MF001479 : jindno MF001480 : xnmyiu MF001481 : fanqie MF001482 : kaisgo MF001483 : tcpcxx MF001484 : xyssch MF001485 : daohng MF001486 : mendih MF001487 : fwoutw MF001488 : xcjtho MF001489 : qlikja MF001490 : meibud MF001491 : wixnkj MF001492 : maiwia MF001493 : cyjing MF001494 : dyxixg MF001495 : zhajnh MF001496 : infgjh MF001497 : taikgo MF001498 : wuliuq MF001499 : tiaowu MF001500 : hetsys MF001501 : mofapa MF001502 : cspiid MF001503 : dyhcsp MF001504 : fczjie MF001505 : htglxm MF001506 : naguan MF001507 : qiyejs MF001508 : gaotyz MF001509 : jdstbu MF001510 : dicnga MF001511 : giu76r MF001512 : xyi9oq MF001513 : zognew MF001514 : xysqey MF001515 : kmijis MF001516 : qidnkh MF001517 : jibirx MF001518 : jqiugb MF001519 : hoysc7 MF001520 : xanguk MF001521 : huiju8 MF001522 : yioali MF001523 : yckqgz MF001524 : btzspo MF001525 : cunta8 MF001526 : zhansg MF001527 : quanhu MF001528 : dsiuvc MF001529 : qcs5dm MF001530 : jiaow5 MF001531 : uijeyt MF001532 : nujqsv MF001533 : fnauyx MF001534 : sfhzsb MF001535 : iuhtpt MF001536 : msisxt MF001537 : wyebsc MF001538 : hujbzx MF001539 : shiwuz MF001540 : smcimj MF001541 : fdczlg MF001542 : flvdni MF001543 : tiuklg MF001544 : qrnjie MF001545 : fawivv MF001546 : zcgbok MF001547 : henitn MF001548 : hnaoct MF001549 : xuespq MF001550 : jzzsds MF001551 : hejiop MF001552 : imhuts MF001553 : tuzidm MF001554 : neidna MF001555 : shitxb MF001556 : dnpunm MF001557 : pyjsai MF001558 : kabann MF001559 : xssqze MF001560 : nertwo MF001561 : sendng MF001562 : chomhv MF001563 : nerner MF001564 : ebvwdr MF001565 : diczds MF001566 : iylmup MF001567 : parkpp MF001568 : dsxufu MF001569 : wssgpp MF001570 : nanuag MF001571 : rrqsib MF001572 : chdaox MF001573 : qugunq MF001574 : fancan MF001575 : ipoast MF001576 : qslbug MF001577 : hcnbon MF001578 : zpsidq MF001579 : zxketn MF001580 : xpwdos MF001581 : 5music MF001582 : jpgscg MF001583 : gumptt MF001584 : gonses MF001585 : ggmyrt MF001586 : shibum MF001587 : migica MF001588 : qpxycx MF001589 : jdlesg MF001590 : sdenwl MF001591 : lagnmi MF001592 : yinuey MF001593 : xytaos MF001594 : junwhu MF001595 : uitgjh MF001596 : irfumt MF001597 : yxsbok MF001598 : txzumn MF001599 : beding MF001600 : cemybq MF001601 : cugecp MF001602 : ptskmm MF001603 : 6jehyp MF001604 : fmdtah MF001605 : baimok MF001606 : timian MF001607 : mschot MF001608 : wiexud MF001609 : gleona MF001610 : hcxcuu MF001611 : wscxgn MF001612 : qishic MF001613 : jtcwug MF001614 : caoihs MF001615 : ctsgl8 MF001616 : zaikao MF001617 : jzmsct MF001618 : geblog MF001619 : mcssol MF001620 : movies MF001621 : gfxcux MF001622 : qicshp MF001623 : bgsdku MF001624 : snsoll MF001625 : lvyoux MF001626 : jsdytt MF001627 : xyshib MF001628 : yilzui MF001629 : qiuntt MF001630 : jaxiqu MF001631 : dongke MF001632 : xuejio MF001633 : zaixan MF001634 : peidan MF001635 : yuance MF001636 : zmaidx MF001637 : doubnv MF001638 : ceouto MF001639 : soulou MF001640 : cmsaij MF001641 : liiacu MF001642 : ctisxy MF001643 : wluotn MF001644 : xnlcai MF001645 : xpbmpd MF001646 : godlls MF001647 : xiguas MF001648 : qxgzlg MF001649 : pakerc MF001650 : shfuwu MF001651 : douyin MF001652 : suiniy MF001653 : wmubpi MF001654 : iiymcr MF001655 : lriyuc MF001656 : gerenk MF001657 : tuplog MF001658 : ihsxpv MF001659 : maiklh MF001660 : shzuna MF001661 : fdouyu MF001662 : wxzdin MF001663 : mifeng MF001664 : youqnh MF001665 : hhbirt MF001666 : yunqcj MF001667 : maoqui MF001668 : zhikao MF001669 : oliveo MF001670 : msc76q MF001671 : bishen MF001672 : 78wmre
摘 要II Abstract III 第一章 引言 1 1.1 课题背景 1 1.2 课题目的和意义 1 1.3 本结构 1 第二章 系统应用的关键技术 2 2.1 JSP技术介绍 2 2.1.1 JSP的概述 2 2.1.3 JSP的强势与劣势 3 2.1.4 JSP与ASP的比较 3 2.2 Java组件JavaBeans 4 2.2.1 什么是JavaBeans 4 2.2.2 JSP与JavaBeans的关系 4 2.3 J2EE概述 4 2.4关于Struts 5 2.4.1 Struts简介 5 2.4.2 Struts的主要功能 5 2.4.3 Struts工作原理 6 2.5 关于Spring 7 2.5.1 Spring简介 7 2.5.2 为什么需要Spring 8 2.5.3 Spring带给我们什么 8 2.6 关于B/S开发模式 9 2.6.1为什么引入B/S开发模式 9 2.7.1 mysql的特点 9 2.7.2 mysql的安装和配置(部分截图)[12] 10 2.8 Tomcat服务器 12 2.8.1 Tomcat 服务器简介 12 2.8.2 Tomcat的特点 12 2.8.3 Tomcat的优势 12 2.8.4 Tomcat服务器的安装和配置 12 小结 13 第三章 系统需求分析和总体设计 14 3.1 系统功能需求 14 3.2 系统角色及其功能分析 14 3.2.1 系统的2个角色: 14 3.2.2 系统角色的功能 14 3.3 总体设计思想概述 15 3.4 数据库设计 16 3.4.1 E-R图 16 3.4.2数据表的设计 16 3.5 系统的类设计 18 3.5.1 DAO类设计 18 3.5.2 connDB类设计(部分) 18 3.5.3 过滤器类设计 19 3.5.4 监听器类设计 19 3.6系统的用例图 20 3.6.1 总体用例分析 20 3.6.2 用户管理用例分析 21 3.6.3 考试管理用例分析 21 3.6.4 考试题目管理用例分析 22 3.6.5 成绩管理用例分析 22 小结 22 第四章 系统的详细设计 23 4.1 数据库与connDB类映射的实现 23 4.2 主要模块的设计说明与界面 24 4.2.1用户管理模块 24 4.2.2考试管理模块 29 4.2.3 题目管理模块 31 4.3 系统的测试 37 小结 38 第五章 总结与展望 38 5.1 工作总结 38 5.2 后续工作展望 39 参考献 40 录 41 致谢 44
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广西千灵通网络科技有限公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值