基于SSM实现在线考试系统

本文介绍了一个基于SSM(Spring、SpringMVC、MyBatis)框架开发的在线考试系统,具备用户管理、角色权限管理、试题与试卷管理等功能。系统包括管理员和学生两种角色,支持学生在线考试、交卷、查看成绩及试卷回顾等操作,管理员则能进行系统设置和管理。源码提供在文末。

作者主页:编程千纸鹤

作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师

主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享

收藏点赞不迷路  关注作者有好处

文末获得源码

项目编号:BS-GX-029

系统说明:

本系统基于SSM框架开发实现了一个在校学生考试系统,主要实现了用户管理、角色管理、权限管理、试题管理、试卷管理、考试管理、考试统计,学生在线考试,试卷回顾, 在线打分等功能。考试功能比较齐全,也比较全面,适合任意学校、企业的考试使用。另外系统有比较完备的权限管理系统,可以有效的进行权限管理。

系统分两个角色:

1,管理员   2,考试学生

学生端演示:

考试用户登陆:

http://localhost:8080/OnlineExam/home/login

用户注册

我的考试

开始考试:

考试交卷:查看成绩

回顾试卷:

修改账户信息

后台管理员登陆:  admin / admin

http://localhost:8080/OnlineExam/system/login

系统设置-菜单管理

角色管理:

系统用户管理

系统操作日志:

学科管理:

考生管理:

试题管理:

考试管理:

试卷管理:

答题管理

成绩统计:

相关代码展示:

ExamPaperService:

package com.ischoolbar.programmer.service.admin;

import java.util.List;

import java.util.Map;

import org.springframework.stereotype.Service;

import com.ischoolbar.programmer.entity.admin.ExamPaper;

/**

 * 试卷service类

 * @author Administrator

 *

 */

@Service

public interface ExamPaperService {

      public int add(ExamPaper examPaper);

      public int edit(ExamPaper examPaper);

      public List<ExamPaper> findList(Map<String, Object> queryMap);

      public int delete(Long id);

      public Integer getTotal(Map<String, Object> queryMap);

      public List<ExamPaper> findHistory(Map<String, Object> queryMap);

      public Integer getHistoryTotal(Map<String, Object> queryMap);

      public ExamPaper find(Map<String, Object> queryMap);

      public int submitPaper(ExamPaper examPaper);

      public List<Map<String,Object>> getExamStats(Long examId);

}

ExamPaperServiceImpl:

package com.ischoolbar.programmer.service.admin.impl;

/**

 * 试卷service实现类

 */

import java.util.List;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.ischoolbar.programmer.dao.admin.ExamPaperDao;

import com.ischoolbar.programmer.entity.admin.ExamPaper;

import com.ischoolbar.programmer.service.admin.ExamPaperService;

@Service

public class ExamPaperServiceImpl implements ExamPaperService {

      @Autowired

      private ExamPaperDao examPaperDao;

     

      @Override

      public int delete(Long id) {

           // TODO Auto-generated method stub

           return examPaperDao.delete(id);

      }

      @Override

      public Integer getTotal(Map<String, Object> queryMap) {

           // TODO Auto-generated method stub

           return examPaperDao.getTotal(queryMap);

      }

      @Override

      public int add(ExamPaper examPaper) {

           // TODO Auto-generated method stub

           return examPaperDao.add(examPaper);

      }

      @Override

      public int edit(ExamPaper examPaper) {

           // TODO Auto-generated method stub

           return examPaperDao.edit(examPaper);

      }

      @Override

      public List<ExamPaper> findList(Map<String, Object> queryMap) {

           // TODO Auto-generated method stub

           return examPaperDao.findList(queryMap);

      }

      @Override

      public List<ExamPaper> findHistory(Map<String, Object> queryMap) {

           // TODO Auto-generated method stub

           return examPaperDao.findHistory(queryMap);

      }

      @Override

      public Integer getHistoryTotal(Map<String, Object> queryMap) {

           // TODO Auto-generated method stub

           return examPaperDao.getHistoryTotal(queryMap);

      }

      @Override

      public ExamPaper find(Map<String, Object> queryMap) {

           // TODO Auto-generated method stub

           return examPaperDao.find(queryMap);

      }

      @Override

      public int submitPaper(ExamPaper examPaper) {

           // TODO Auto-generated method stub

           return examPaperDao.submitPaper(examPaper);

      }

      @Override

      public List<Map<String,Object>> getExamStats(Long examId) {

           // TODO Auto-generated method stub

           return examPaperDao.getExamStats(examId);

      }

}

StudentService:

package com.ischoolbar.programmer.service.admin;

import java.util.List;

import java.util.Map;

import org.springframework.stereotype.Service;

import com.ischoolbar.programmer.entity.admin.Student;

/**

 * 考生service类

 * @author Administrator

 *

 */

@Service

public interface StudentService {

      public int add(Student student);

      public int edit(Student student);

      public List<Student> findList(Map<String, Object> queryMap);

      public int delete(Long id);

      public Integer getTotal(Map<String, Object> queryMap);

      public Student findByName(String name);

}

StudentServiceImpl:

package com.ischoolbar.programmer.service.admin.impl;

/**

 * 考生service实现类

 */

import java.util.List;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.ischoolbar.programmer.dao.admin.StudentDao;

import com.ischoolbar.programmer.entity.admin.Student;

import com.ischoolbar.programmer.service.admin.StudentService;

@Service

public class StudentServiceImpl implements StudentService {

      @Autowired

      private StudentDao studentDao;

      @Override

      public int add(Student student) {

           // TODO Auto-generated method stub

           return studentDao.add(student);

      }

      @Override

      public int edit(Student student) {

           // TODO Auto-generated method stub

           return studentDao.edit(student);

      }

      @Override

      public List<Student> findList(Map<String, Object> queryMap) {

           // TODO Auto-generated method stub

           return studentDao.findList(queryMap);

      }

      @Override

      public int delete(Long id) {

           // TODO Auto-generated method stub

           return studentDao.delete(id);

      }

      @Override

      public Integer getTotal(Map<String, Object> queryMap) {

           // TODO Auto-generated method stub

           return studentDao.getTotal(queryMap);

      }

      @Override

      public Student findByName(String name) {

           // TODO Auto-generated method stub

           return studentDao.findByName(name);

      }

     

     

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

编程千纸鹤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值