基于 Servlet WebSocket MySQL 实现的网络在线考试系统
1.开发工具选择:
采用一个开放源代码的、基于 Java的可扩展开发平台 eclipse 作为主要开发工具,以及一个大型关系数据库管理系统 MySQL 作为数据管理工具,MySQL workbench 数据库可视化工具协助管理数据库。
2.开发环境:
开发系统:Win10
JDK 环境:jdk1.8.0_251
开发工具:Eclipse for Java EE4.7(Oxygen)
Web 服务器:apache-tomcat-9.0.36
Web 开发技术:eclipse2019
数据库:mysql-8.0.20-winx64
浏览器:最佳为 Google Chrome 浏览器
分辨率:最佳效果为 1440*900 像素
3.本报告的主要内容:
本报告详细的介绍了网络在线考试系统的开发过程,主要涉及到的工作如下:考试的一些重要功能,如:数据库设计、考试计时模块设计、考试科目模块设计,系统运行与测试。
功能要求:
1.学生用户注册
- 学生用户登录
- 学生查看个人考试科目
- 学生选择考试科目,选择考试试卷,进入考试
- 考试时间倒计时,查看答题卡
- 学生交卷,倒计时结束自动交卷,执行非法动作自动交卷
- 系统自动评分
- 学生查询成绩
4.关系型数据库
关系数据库由表组成。一个关系是由一个二维表来定义的:表的行保存事物的一组属性数据,表的列定义了事物的属性。
5.创建数据库表
设计如下所示的实体和属性的定义:
试卷信息(试卷 ID,试卷名称,创建时间,答题时间,科目 ID)
考试答案信息(考试 ID,问题答案,创建时间,问题 ID)
考试问题信息(问题 ID,问题标题,问题类型,创建时间,试题答案 ID,分数,试卷 ID)
考试科目信息(考试 ID,考试科目,创建时间)
学生登录信息(ID,用户名,密码,真实姓名,email)
成绩信息(ID,用户名,分数,试卷 ID)
6.系统总体结构及功能模块划分
6.1 需求分析
问题陈述
现有的大部分学生无法在线下参与考试。在设计初始考虑到的问题不够全面,仅仅用于处理事务比较简单,功能模块较少,系统不够完美。
在线考试系统在设计之初必须考虑到用户的多元化,各个用户的用户需求有所不同,应充分考虑用户需求,定制适合用户使用的功能模块,更贴心的服务于用户。
E-R 图:
1 学生注册/登录信息
2 成绩信息
3 考试科目信息
4 考试问题信息
5 试卷信息
6 总体 E-R 图
6.2 用例建模包括用例设计,用例规约等
数据库用例描述
描述项 | 说明 | |
---|---|---|
用例名称 | 数据库管理 | |
参与者 | 管理者 | |
用例描述 | 用例主要功能是修改答案,修改考试科目,登录管理,成绩修改 | |
前置条件 | 登录账号进入系统界面 | |
后置条件 | 若有修改数据,需确认保存 | |
基本操作流程 | 参与者动作 | 系统响应 |
1、通过账号密码登录 2、修改题库答案 | 1、查询该账号是否存在数据库且密码是否正确。若不存在则登录失败 |
考试科目用例描述
描述项 | 说明 | |
---|---|---|
用例名称 | 考试科目管理 | |
参与者 | 管理者 | |
用例描述 | 用例主要功能是科目管理,题库管理 | |
前置条件 | 登录账号进入系统界面 | |
后置条件 | 若有修改数据,需确认保存 | |
基本操作流程 | 参与者动作 | 系统响应 |
1、通过账号密码登录 2、修改题库信息 | 1、查询该账号是否存在数据库且密码是否正确。若不存在则登录失败 2、判断页面下拉,刷新题库信息,显示最新数据 |
6.3 系统整体架构设计,架构图
6.4 类图
数据库类图
考试计时模块类图:
6.5 设计模式
数据库模块
试卷信息(试卷 ID,试卷名称,创建时间,答题时间,科目 ID)
考试答案信息(考试 ID,问题答案,创建时间,问题 ID)
考试问题信息(问题 ID,问题标题,问题类型,创建时间,试题答案 ID,分数,试卷 ID)
考试科目信息(考试 ID,考试科目,创建时间)
学生登录信息(ID,用户名,密码,真实姓名,email)
成绩信息(ID,用户名,分数,试卷 ID)
考试计时功能模块
考试时间计算方式是,本地倒计时与服务器端同时计时,这样做考虑到网络延迟因素,不单方面的依赖任何一端的计时。计时终止时试卷提交。
运用到 WebSocket 相关知识。
简单介绍 WebSocket:(介绍图来自网上)
相关运用:
在开始的时候借助 http 请求建立连接,获得从服务器发过来的信息。开始计时。
在 WebSocket 的协议中有四个事件:
连接成功触发 open 事件
接受到服务器信息后触发 emssage
发生异常触发 error
断开触发 close
相关路径:
mySocket 就是一个映射,指向 MySocket.java 文件
考试科目模块设计
网络在线考试系统的后台首页是管理员对网站信息进行管理的首页面。在该页面中,管理员可以清楚地了解网站后台管理系统包含的基本操作。
1.考生信息管理:主要包括查看注册考生信息列表和删除已注册的考生信息。
2.考生成绩查询:主要用于根据考试 ID、考试课程或考试时间查询考生成绩。
3.套题信息管理:主要包括查看套题信息列表、添加套题信息、修改套题信息
和删除套题信息。
4.考试题目管理:主要包括查看考试题目列表、添加考试题目、修改考试题目
和删除考试题目。
学生登录系统后,单击“在线考试”,进入到查看考试科目页面, 选择考试科目后获取并显示指定考试科目的所有试卷最后获取并显示试题及答案。
6.6 顺序图
6.7 测试过程
1、学生用户能否正常 注册,登录。 (可以,符合要求,通过测试)
注册:
登录:
2、学生能否正常 选择考试科目,参加科目考试。 (可以,符合要求,通过测试)
显示可选科目(正常)
显示各科目监考老师(正常)
显示所选科目可选试卷(正常)
3、考试题答案单选、多选运行是否 (可以,符合要求,通过测试)
4、考试途中计时器倒计时功能、答题卡功能是否正常(可以,符合要求,通过测试)
5、考试成绩情况能否正常的被记录存储,学生能否正常 查看考试成绩。(可以,符合要求,通过测试)
总结
通过这次课程设计,是我们灵活应用所学 javaweb 知识,结合 javaweb 理论知识,编写程序实现系统所需功能。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法分析和解决问题的能力;并用系统的的观点进行系统设计,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的编程风格。进一步加深对 Servlet WebSocket MySQL 框架的知识的理解,并能够利用 JAVAweb 知识实现网络考试系统。同时在这学期的实验中,培养了以专业的眼光去对待我们系统中的每一段代码,这算是一次不可多得的实践机会。在这一次的实践过程中,个人动手能力,方方面面都得到了一定程度的提高。在这个过程中,我学会了很多学习的方法。而这是日后最实用 也是最宝贵的。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。通过这次课程设计使我们明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。
参考文献
- 基于.NET技术的在线考试系统设计与实现(电子科技大学·蔡夏璐)
- 基于J2EE的远程网络教育系统研究与实现(电子科技大学·陈南荪)
- 基于ASP.NET在线考试系统设计与实现(电子科技大学·林栩)
- 网上考试和查分系统设计与实现(国防科学技术大学·王腾)
- 达州职业技术学院网上考试系统的设计与实现(电子科技大学·谷潇)
- 基于Flex与J2EE的在线考试系统的设计与实现(电子科技大学·罗建明)
- 基于JSP/XML考试系统的设计与实现(华侨大学·朱达欣)
- 基于Java EE架构的在线考试系统设计与实现(西安电子科技大学·龚尚映)
- 基于B/S结构的网络考试系统设计与实现(黑龙江大学·宗垚)
- 基于B/S架构的税务考试管理系统的设计与实现(西安电子科技大学·刘斌)
- 基于Flex与J2EE的在线考试系统的设计与实现(电子科技大学·罗建明)
- 基于JSP技术在线考试系统的开发(武汉理工大学·龙保江)
- 网络在线考试系统的设计与实现(云南大学·熊国铨)
- 网络在线考试系统的设计与实现(西安电子科技大学·雷晓敏)
- 基于ASP.NET的在线考试系统设计与实现(吉林大学·吴树德)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码项目助手 ,原文地址:https://m.bishedaima.com/yuanma/35941.html