Java项目:在线考试系统

作者主页:Java毕设网

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

一、项目介绍

在线考试系统是利用Java web技术开发设计的。数据库是基于Mysql设计的。学生可以在线考试,系统实现自动阅卷,管理员可以管理学生信息,试卷信息,题目信息等;本系统分前台和后台两部分,前台实现功能有:学生登录,在线考试,成绩查询,修改密码等;后台实现功能有:管理员登录,考生信息管理,考生成绩查询,试卷管理,题目管理等;

二、环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

5.数据库:MySql 5.7版本;

6.是否Maven项目:否;

三、技术栈

1. 后端:spring+spring mvc+hibernate

2. 前端:JSP+Javascript+Bootstrap

四、使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
2. 将项目中hibernate.cfg.xml配置文件中的数据库配置改为自己的配置;

五、运行截图


六、相关代码

考试管理控制器

/**
 * 考试Action类
 * @author Administrator
 *
 */
public class ExamAction extends ActionSupport implements ServletRequestAware{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private ExamDao examDao=new ExamDao();
	private QuestionDao questionDao=new QuestionDao();
	
	private HttpServletRequest request;
	
	private String mainPage;
	
	private Exam exam;
	private Exam s_exam;
	
	private List<Exam> examList;
	
	private String page;
	private int total;
	private String pageCode;

	public String getMainPage() {
		return mainPage;
	}

	public void setMainPage(String mainPage) {
		this.mainPage = mainPage;
	}

	public Exam getExam() {
		return exam;
	}

	public void setExam(Exam exam) {
		this.exam = exam;
	}
	
	public List<Exam> getExamList() {
		return examList;
	}

	public void setExamList(List<Exam> examList) {
		this.examList = examList;
	}
	
	public Exam getS_exam() {
		return s_exam;
	}

	public void setS_exam(Exam s_exam) {
		this.s_exam = s_exam;
	}
	
	public String getPage() {
		return page;
	}

	public void setPage(String page) {
		this.page = page;
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}

	public String getPageCode() {
		return pageCode;
	}

	public void setPageCode(String pageCode) {
		this.pageCode = pageCode;
	}

	/**
	 * 计算/添加考试成绩
	 * @return
	 * @throws Exception
	 */
	public String add()throws Exception{
		Map<String, String[]> keyMap = new HashMap<String, String[]>();
        keyMap = request.getParameterMap();
        Iterator<Entry<String,String[]>> it2 = keyMap.entrySet().iterator();
        int totalScore=0;
        int singleScore=0;
        int moreScore=0;
        while (it2.hasNext()) {
            Entry<String, String[]> entry = it2.next();  
            String keyStr=entry.getKey();
            String values[]=entry.getValue();
            String key;
            String value="";
            if(keyStr.equals("exam.student.id")||keyStr.equals("exam.paper.id")){
            	continue;
            }
            if(keyStr.split("-")[1].equals("r")){  // 单选
            	key=keyStr.split("-")[2];
            	value=values[0];
            	singleScore+=this.calScore(key, value, "1");
            }else{  // 多选
            	key=keyStr.split("-")[2];
            	for(String s:values){
            		value+=s+",";
            	}
            	value=value.substring(0,value.length()-1);
            	moreScore+=this.calScore(key, value, "2");
            }
        }
        totalScore=singleScore+moreScore;
        exam.setSingleScore(singleScore);
        exam.setMoreScore(moreScore);
        exam.setScore(totalScore);
        //exam.setExamDate(new Date());
        examDao.saveExam(exam);
		mainPage="exam/examResult.jsp";
		return SUCCESS;
	}
	

试卷管理控制器

/**
 * 试卷Action类
 * @author Administrator
 *
 */
public class PaperAction extends ActionSupport{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private PaperDao paperDao=new PaperDao();
	private QuestionDao questionDao=new QuestionDao();
	
	private String mainPage;
	private String paperId;
	
	private List<Paper> paperList=new ArrayList<Paper>();
	private List<Question> squestionList=new ArrayList<Question>();
	private List<Question> mquestionList=new ArrayList<Question>();
	
	private String title; // 标题
	

	private Paper paper;
	
	public List<Paper> getPaperList() {
		return paperList;
	}

	public void setPaperList(List<Paper> paperList) {
		this.paperList = paperList;
	}
	
	

	public List<Question> getSquestionList() {
		return squestionList;
	}

	public void setSquestionList(List<Question> squestionList) {
		this.squestionList = squestionList;
	}

	public List<Question> getMquestionList() {
		return mquestionList;
	}

	public void setMquestionList(List<Question> mquestionList) {
		this.mquestionList = mquestionList;
	}

	public void setPaper(Paper paper) {
		this.paper = paper;
	}
	

	public Paper getPaper() {
		return paper;
	}

	

	public String getPaperId() {
		return paperId;
	}

	public void setPaperId(String paperId) {
		this.paperId = paperId;
	}

	public String getMainPage() {
		return mainPage;
	}

	public void setMainPage(String mainPage) {
		this.mainPage = mainPage;
	}

	
	
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * 获取所有试卷
	 * @return
	 * @throws Exception
	 */
	public String list()throws Exception{
		paperList=paperDao.getPapers();
		mainPage="exam/selectPaper.jsp";
		return SUCCESS;
	}
	
	/**
	 * 获取所有试卷(管理)
	 * @return
	 * @throws Exception
	 */
	public String paperList()throws Exception{
		paperList=paperDao.getPapers();
		mainPage="paper/paperList.jsp";
		return SUCCESS;
	}
	
	/**
	 * 通过id获取试卷实体
	 * @return
	 * @throws Exception
	 */
	public String getPaperById()throws Exception{
		paper=paperDao.getPaper(paperId);
		mainPage="paper/paperSave.jsp";
		return SUCCESS;
	}
	
	/**
	 * 保存预操作
	 * @return
	 * @throws Exception
	 */
	public String preSave()throws Exception{
		if(StringUtil.isNotEmpty(paperId)){
			paper=paperDao.getPaper(paperId);
			title="修改试卷";
		}else{
			title="添加试卷";
		}
		mainPage="paper/paperSave.jsp";
		return SUCCESS;
	}
	
	/**
	 * 保存试卷
	 * @return
	 * @throws Exception
	 */
	public String savePaper()throws Exception{
		if(StringUtil.isNotEmpty(paperId)){
			paper.setId(Integer.parseInt(paperId));
		}else{
			paper.setJoinDate(new Date());			
		}
		paperDao.savePaper(paper);
		return "save";
	}

七、如果也想学习本系统,下面领取。关注并回复:106ssh

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java在线考试系统是一个常见的课程设计项目,它可以帮助学生进行在线考试,并提高教学效果。以下是一个基本的Java在线考试系统的设计方案。 1. 系统需求分析 - 系统应该能够管理不同的考试科目和试题。 - 学生应该能够注册、登录和参加考试。 - 考试应该有一定的时间限制,超时后自动提交。 - 学生应该能够查看自己的考试成绩和历史记录。 - 教师应该能够添加、修改和删除考试科目和试题,并查看学生的成绩和历史记录。 2. 系统设计 - 数据库设计 - 学生表:id、用户名、密码、邮箱、真实姓名、班级、注册时间。 - 考试科目表:id、科目名称、考试时间、考试时长、总分数。 - 试题表:id、科目id、题目类型、题目内容、选项、答案、分值。 - 考试记录表:id、学生id、科目id、得分、考试时间。 - 系统日志表:id、操作人员、操作时间、操作内容。 - 系统架构设计 - 前端采用HTML、CSS、JavaScript等技术实现。 - 后端采用Java技术实现,使用Spring框架、MyBatis框架等开发环境。 - 数据库采用MySQL关系型数据库。 3. 系统实现 - 系统登录 - 学生登录:输入用户名和密码,验证成功后进入学生主页。 - 教师登录:输入用户名和密码,验证成功后进入教师主页。 - 学生主页 - 显示学生信息和历史考试记录。 - 显示可参加的考试科目和考试时间。 - 参加考试:进入考试页面,开始考试。 - 查看成绩:显示该科目的考试成绩。 - 教师主页 - 显示教师信息和管理权限。 - 管理考试科目:添加、修改和删除考试科目信息。 - 管理试题:添加、修改和删除试题信息。 - 查看成绩:查看学生的考试成绩和历史记录。 - 考试页面 - 显示考试科目和考试时间。 - 显示考试试题和选项。 - 计时器:显示考试剩余时间。 - 提交按钮:考试时间到达后自动提交。 - 成绩页面 - 显示考试成绩和得分。 - 显示试题和正确答案。 - 显示考试历史记录。 4. 系统测试 - 单元测试:对系统中的各个模块进行单元测试,确保每个模块的功能正常。 - 集成测试:对整个系统进行集成测试,确保各个模块之间的协作正常。 - 系统测试:对整个系统进行系统测试,测试系统的性能、可靠性、安全性等。 以上是一个基本的Java在线考试系统的设计方案,具体实现可以根据需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值