java网上考试系统的框架,基于 SSM框架下的JAVA在线考试系统,源码分享

每天记录学习,每天会有好心情。*^_^*

今天记录的项目是在线考试系统,这个项目是这么回事:基于Java的在线考试系统旨在实现考试的无纸化管理,提高考试的便利性、安全性、公平性,许多考试科目的考试可以通过互联网或局域网进行,这样既方便考试的组织和考务的管理,也方便了考生,尤其适合考生分布广、难于集中的远程教育和全校、全省乃至全国性大规模的考试项目。本系统包括在线考试、在线制作试卷、考生管理、考生成绩查询、试卷审批、系统管理等功能。。

做这个项目的时候,我们需要用到SSM(MYECLIPSE)框架,开发工具选用最拿手的MYECLIPSE。

在线考试系统项目是一个 后台项目。

开发系统时,需求分析是必不可少的一个环节。在线考试系统拥有的登录角色包括了管理员、考生。

每个账号设置身份、账号、密码是必不可少的,管理员、考生中都包含这些登录角色该有的字段。

为了完成系统的功能需要为考生、考试设置成绩表,记录成绩信息。在成绩表中定义了两者的关联关系,其中成绩的考生与考生的mingzi字段对应、成绩的考生id与考生的id字段对应、成绩的考试与考试的mingcheng字段对应、成绩的考试id与考试的id字段对应.

总结得出该系统所有数据为:管理员(admin)、考生(kaosheng)、考试(kaoshi)、成绩(chengji)、题目(timu)

管理员表

字段名 | 类型 | 属性 | 描述

id | INT(11) | PRIMARY KEY | 管理员id

username | VARCHAR(255) | | 账号

password | VARCHAR(255) | | 密码

考生表

字段名 | 类型 | 属性 | 描述

id | INT(11) | PRIMARY KEY | 考生id

mingzi | VARCHAR(255) | | 名字

username | VARCHAR(255) | | 账号

password | VARCHAR(255) | | 密码

nianling | VARCHAR(255) | | 年龄

考试表

字段名 | 类型 | 属性 | 描述

id | INT(11) | PRIMARY KEY | 考试id

mingcheng | VARCHAR(255) | | 名称

kemu | VARCHAR(255) | | 科目

shijian | VARCHAR(255) | | 时间

didian | VARCHAR(255) | | 地点

成绩表

字段名 | 类型 | 属性 | 描述

id | INT(11) | PRIMARY KEY | 成绩id

kaosheng | VARCHAR(255) | | 考生

kaoshengid | VARCHAR(255) | | 考生id

kaoshi | VARCHAR(255) | | 考试

kaoshiid | VARCHAR(255) | | 考试id

fenshu | VARCHAR(255) | | 分数

题目表

字段名 | 类型 | 属性 | 描述

id | INT(11) | PRIMARY KEY | 题目id

biaoti | VARCHAR(255) | | 标题

neirong | VARCHAR(255) | | 内容

cankaodaan | VARCHAR(255) | | 参考答案

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- ----------------------------

-- Table structure for ggzaixiankaoshi

-- ----------------------------

DROP TABLE IF EXISTS `t_admin`;

CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员';

-- ----------------------------

DROP TABLE IF EXISTS `t_kaosheng`;

CREATE TABLE `t_kaosheng` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '考生id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`nianling` VARCHAR(255) DEFAULT NULL COMMENT '年龄',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='考生';

-- ----------------------------

DROP TABLE IF EXISTS `t_kaoshi`;

CREATE TABLE `t_kaoshi` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '考试id',`mingcheng` VARCHAR(255) DEFAULT NULL COMMENT '名称',`kemu` VARCHAR(255) DEFAULT NULL COMMENT '科目',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',`didian` VARCHAR(255) DEFAULT NULL COMMENT '地点',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='考试';

-- ----------------------------

DROP TABLE IF EXISTS `t_chengji`;

CREATE TABLE `t_chengji` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '成绩id',`kaosheng` VARCHAR(255) DEFAULT NULL COMMENT '考生',`kaoshengid` INT(11) DEFAULT NULL COMMENT '考生id',`kaoshi` VARCHAR(255) DEFAULT NULL COMMENT '考试',`kaoshiid` INT(11) DEFAULT NULL COMMENT '考试id',`fenshu` VARCHAR(255) DEFAULT NULL COMMENT '分数',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='成绩';

-- ----------------------------

DROP TABLE IF EXISTS `t_timu`;

CREATE TABLE `t_timu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '题目id',`biaoti` VARCHAR(255) DEFAULT NULL COMMENT '标题',`neirong` VARCHAR(255) DEFAULT NULL COMMENT '内容',`cankaodaan` VARCHAR(255) DEFAULT NULL COMMENT '参考答案',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='题目';

添加题目模块:

系统中存在添加题目功能,通过点击添加题目可以跳转到该功能模块,在该功能模块中,填写对应的题目信息。题目包含信息标题,内容,参考答案,填写完所有信息后,通过post方法将数据提交到tianjiatimu.action中,该地址将在服务器中timuController类中的tianjiatimuact方法中进行响应。响应结果为,获取所有的题目信息,封装一个timu类,使用timuController类中定义的timudao的insert方法,将题目数据插入到数据库的timu表中。并给出用户提示信息,添加题目成功,将该信息保存到request的message中,该信息将在页面中进行展示。该部分核心代码如下:

通过timudao的insert方法将页面传输的题目添加到数据库中 timudao.insert(timu);

将添加题目成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加题目成功");

返回题目管理界面

return "forward:/tianjiatimu.action";

查询题目模块:

在后台timuguanli方法中,通过selectByexample方法获取所有的数据信息。将其保存到request中,在页面中通过foreach方法

进行循环展示到table中。完成题目查询操作。具体代码如下:

生成题目样例类,通过example定义查询条件 TimuExample example = new TimuExample();

通过timudao的selectByExample方法查询出所有的题目信息 List timuall = timudao.selectByExample(example);

将题目信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("timuall", timuall);

返回题目管理界面

return "forward:/timuguanli.action";

修改题目模块:

在页面完成题目的修改信息填写后,将该部分数据传入xiugaitimu.action地址,并通过post进行提交。提交后在timuController中通过xiugaitimu进行接收,将所有字段封装为一个题目实体。并将该实体传入timudao中的updateByPrimaryKeySelective方法中,在该方法中定义了通过题目id更新其余题目的字段,该部分字段包括标题,内容,参考答案,该部分核心代码如下所示:

通过timudao的修改方法根据id修改对应的题目 timudao.updateByPrimaryKeySelective(timu);

将修改题目成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改题目信息成功");

返回题目管理界面

return "forward:/timuguanli.action";

删除题目模块:

在页面中通过a标签,shanchutimu?id=将id传入到后台中,通过shanchutimu接收题目id。使用deleteByid的方法

删除该题目,完成删除操作。定义删除成功提示信息,删除题目成功,并保存到request中,该部分代码如下:

通过timudao的删除方法根据id删除对应的题目 timudao.deleteByPrimaryKey(id);

将删除题目成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除题目成功");

返回题目管理界面

return "forward:/timuguanli.action";

%E6%9F%A5%E8%AF%A2%E8%AE%BE%E5%A4%87%E8%B5%84%E4%BA%A7%E7%94%A8%E4%BE%8B%E5%9B%BE-300x50.png

%E6%9F%A5%E8%AF%A2%E7%94%A8%E6%88%B7%E6%B4%BB%E5%8A%A8%E5%9B%BE-%E5%89%AF%E6%9C%AC-1-300x217.png

如需源码,请留下邮箱或联系站长

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用到的技术:redis、amcharts、maven、html5、ajax、js、jquery以及css,关系型数据库采用的是mysql。 文件夹中有可以直接导入使用的数据库,以及可以导入试卷的excel表格格式. 该项目分为学生模块,和教师模块。 教师模块:教师可以通过导入Excel表格的方式进行添加试卷,如果Excel表中有不合法的数据,会在前台提醒哪一行哪一列出了什么问题,添加试卷后,教师可以发布试卷,试卷发布后,学生就可以答题,每张试卷都有作答时长,作答时间结束,将会自动提交试卷。考试结束后,教师可以发布答案。对于修改试卷,教师可以先选择所要修改的试卷,对于试卷可以修改试卷的名称以及考试时长,要想修改试题可以点击编辑试题,进行批量修改。 学生模块:注册登录进入学生考试平台,选择考卷,进行作答,试卷分为单选题、多选题以及判断题,分值各不相同,对于多选题错答不得分,漏答得一半的分。在作答期间,学生可以先保存,保存的内容存储在Redis中。若点击提交,提交后直接显示成绩。提交后就不能再进入考试。要想看正确答案,得等到考试结束,教师发布成绩后,才可以看到。 学生可以看到自己的作答历史,每道题之前学生的答案以及该题正确的答案都很清晰的标注出来。为了方便学生统计自己的成绩,本系统采用了amcharts技术根据学生的历次成绩制作了柱状图和折线图结合的图表。学生可以很直观地看到自己成绩的波动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值