基于SpringBoot+Html+Javascript+ css 的在线考试系统
开发语言:Java
数据库:MySQL
技术:SpringBoot+MyBatis
工具:IDEA/Ecilpse、Navicat、Maven
一、项目背景
现在大家正处于互联网加的时代,这个时代它就是一个信息内容无比丰富,信息处理与管理变得越加高效的网络化的时代,这个时代让大家的生活不仅变得更加地便利化,也让时间变得更加地宝贵化,因为每天的每分钟,每秒钟这些时间都能让人们处理大批量的日常事务,这些场景,是之前的手工模式无法与之相抗衡的。对于试卷信息的管理来说,传统的通过纸质文档记录信息的方式已经落后了,依靠手工管理试卷信息,不仅花费较长的工作时间,在对记录各种信息的文档进行信息查询以及信息核对操作时,也不能及时保证信息的准确性,基于这样的办公低效率环境下,对于试卷信息的处理就要提出新的解决方案。因为这个时代的信息一直都在高速发展,要是不抱着发展的观念看待事情,极有可能被这个市场快速遗忘,甚至被无情地淘汰掉。所以尽早开发一款在线考试系统进行信息的快速处理,既跟上了时代的发展脚步,也能让自己的核心竞争力有所提升。
二、项目设计
在线考试系统并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的B/S结构。
在线考试系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理试卷信息,管理公告信息等内容。在线考试系统针对用户设置的功能有:查看并修改个人信息,查看试卷信息,查看公告信息等内容。
三、系统实现
1.系统登录
系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。下图就是管理员登录页面。
2. 试卷管理
项目管理页面提供的功能操作有:查看试卷,删除试卷操作,新增试卷操作,修改试卷操作。下图就是试卷管理页面。
3.公告信息管理
公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。下图就是公告信息管理页面。
4.公告类型管理
公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。下图就是公告类型管理页面。
四、数据库设计
四、代码示例
/*** 自定义异常*/
public class EIException extends RuntimeException {private static final long serialVersionUID = 1L;private String msg;private int code = 500;public EIException(String msg) {super(msg);this.msg = msg;}public EIException(String msg, Throwable e) {super(msg, e);this.msg = msg;}public EIException(String msg, int code) {super(msg);this.msg = msg;this.code = code;}public EIException(String msg, int code, Throwable e) {super(msg, e);this.msg = msg;this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}
/*** 答题详情表 服务实现类*/
@Service("examredetailsService")
@Transactional
public class ExamredetailsServiceImpl extends ServiceImpl<ExamredetailsDao, ExamredetailsEntity> implements ExamredetailsService {@Overridepublic PageUtils queryPage(Map<String,Object> params) {if(params != null && (params.get("limit") == null || params.get("page") == null)){params.put("page","1");params.put("limit","10");}Page<ExamredetailsView> page =new Query<ExamredetailsView>(params).getPage();page.setRecords(baseMapper.selectListView(page,params));return new PageUtils(page);}}}