在线考试系统

news2024/11/23 17:25:53

项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给在家介绍一篇在线考试系统的设计与实现 。

功能需求

在线考试系统现在应用非常广泛,能适用于大、中、小学的学生考试以及试卷的批改和成绩的统计分析中,相对于计算机和外语学科非常实用。但是现在普遍学校还是以笔试为考量学生学习情况的方式,不能借助在线考试系统便利教学,以此提高教育质量。

我们坚信在以后这一系列的学校考试将会走向网络化考试的。这样才是符合信息技术发展的方向。我们要给不同的考试同一个好的解决方案。这个方案在技术上来讲我们是采用B/S模式。 在windows/Linux平台上,使用IE浏览器,完成抽题、考试、交卷等考试任务。方便,简单的完成各科不同形式的考试,这也是我们的目的所在。

考点模块通过网络获取题库,按照题库中的抽题策略,自动给每个考生生成一份试卷,考生在线作答,考试结果数据通过网络回收,系统自动进行判分,生成考试成绩和统计数据。“在线考试系统”是集合现代考试理论、方法和现代信息技术手段的智能化网上考试系统,为学生个性化学习提供“灵活、方便、科学、公平”的“个别化考试服务”,是终结性评价系统。学生可以随时、随地进行课程结业考试。

具备以下功能:

本文内文研究的是通过构建在线考试系统利用学校的教师笔试进行管理化,通过调查和分析现在系统考试相关信息,综合评价了我国考试现状和以及今后的发展趋势,进而提出了比较好的在线考试系统策略和方案。
学生模块:
(1)登录注册:实现学生可以在本系统进行实名注册并且能直接登录。
(2)答题考试:历史考试查看、在线考试、考试科目查看选择。
(3)个人信息:重置密码、个人基本信息修改。
管理员模块:
(1)登录注册:实现管理老师可以在本系统进行实名注册并且能直接登录。
(2)系统设置:角色管理、系统日志、系统信息查看。
(3)考试管理:管理员可以增加考试增加、删除、编辑、查看等
(4)学科管理:对学科信息增加、删除、修改等。
(5)学生管理:对学生账号管理、考生可以随时查看成绩、信息查看等。
(6)成绩管理:学生成绩查看、试卷的批阅、成绩统计分析。

系统功能模块框架图

在这里插入图片描述

部分效果图

登录注册界面:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据库设计

系统中用到了5张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。
(1)用户信息表

在这里插入图片描述

(2)学科信息表
在这里插入图片描述

(3)购物信息表
在这里插入图片描述
(4)试卷信息表
在这里插入图片描述
(5)成绩数据表
在这里插入图片描述

部分代码


//登录后台系统就行操作
@RequestMapping("/admin/exam")
@Controller
public class ExamController {
	@RequestMapping(value="/list",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, Object> list(
			@RequestParam(name="name",defaultValue="") String name,
			@RequestParam(name="subjectId",required=false) Long subjectId,
			@RequestParam(name="startTime",required=false) String startTime,
			@RequestParam(name="endTime",required=false) String endTime,
			Page page
			){
		Map<String, Object> ret = new HashMap<String, Object>();
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("name", name);
		if(subjectId != null){
			queryMap.put("subjectId", subjectId);
		}
		if(!StringUtils.isEmpty(startTime)){
			queryMap.put("startTime", startTime);
		}
		if(!StringUtils.isEmpty(endTime)){
			queryMap.put("endTime", endTime);
		}
		queryMap.put("offset", page.getOffset());
		queryMap.put("pageSize", page.getRows());
		ret.put("rows", examService.findList(queryMap));
		ret.put("total", examService.getTotal(queryMap));
		return ret;
	}
		){
		Map<String, Object> ret = new HashMap<String, Object>();
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("name", name);
		if(subjectId != null){
			queryMap.put("subjectId", subjectId);
		}
		if(!StringUtils.isEmpty(startTime)){
			queryMap.put("startTime", startTime);
		}
		if(!StringUtils.isEmpty(endTime)){
			queryMap.put("endTime", endTime);
		}
package com.ischoolbar.programmer.service.admin.impl;

import java.util.List;

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

import com.ischoolbar.programmer.dao.admin.AuthorityDao;
import com.ischoolbar.programmer.entity.admin.Authority;
import com.ischoolbar.programmer.service.admin.AuthorityService;
@Service
public class AuthorityServiceImpl implements AuthorityService {

	@Autowired
	private AuthorityDao authorityDao;
	
	@Override
	public int add(Authority authority) {
		// TODO Auto-generated method stub
		return authorityDao.add(authority);
	}

	@Override
	public int deleteByRoleId(Long roleId) {
		// TODO Auto-generated method stub
		return authorityDao.deleteByRoleId(roleId);
	}

	@Override
	public List<Authority> findListByRoleId(Long roleId) {
		// TODO Auto-generated method stub
		return authorityDao.findListByRoleId(roleId);
	}

public String imgAdvAdd()
	{
		Imgadv imgadv=new Imgadv();
		String hz = upFileFileName.substring(upFileFileName.lastIndexOf(".")+1);
		String imgurl = Info.getAutoId()+"."+hz;
		String filePath=ServletActionContext.getServletContext().getRealPath("upfile")+"/"+imgurl;
		File targetFile=new File(filePath);
		upLoadFile(upFile,targetFile);
		System.out.println("type=="+type);
			if(type.equals("HEAD")){
				ArrayList<Imgadv> ilist = (ArrayList<Imgadv>)commonDAO.findByHql(" from Imgadv where type='HEAD' ");
				if(ilist.size()==0){
					imgadv.setImgurl(imgurl);
					imgadv.setType(type);
					commonDAO.save(imgadv);
					suc="";
					return "success";
				}else{
					no="";
					return "erro";
				}
			}else{
				imgadv.setImgurl(imgurl);
				imgadv.setType(type);
				commonDAO.save(imgadv);
				suc="";
				return "success";
			}
	}
		Imgadv imgadv=new Imgadv();
		String hz = upFileFileName.substring(upFileFileName.lastIndexOf(".")+1);
		String imgurl = Info.getAutoId()+"."+hz;
		String filePath=ServletActionContext.getServletContext().getRealPath("upfile")+"/"+imgurl;
		File targetFile=new File(filePath);
		upLoadFile(upFile,targetFile);
		System.out.println("type=="+type);
			if(type.equals("HEAD")){
				ArrayList<Imgadv> ilist = (ArrayList<Imgadv>)commonDAO.findByHql(" from Imgadv where type='HEAD' ");
				if(ilist.size()==0){
					imgadv.setImgurl(imgurl);
					imgadv.setType(type);
					commonDAO.save(imgadv);
					suc="";
					return "success";
				}else{
					no="";
					return "erro";
				}
			}else{
				imgadv.setImgurl(imgurl);
				imgadv.setType(type);
				commonDAO.save(imgadv);

	//
	public String imgAdvEdit(){
		Imgadv imgadv = (Imgadv)commonDAO.findById(id, "Imgadv");
		if(!upFileFileName.equals("")){
			String hz = upFileFileName.substring(upFileFileName.lastIndexOf(".")+1);
			String imgurl = Info.getAutoId()+"."+hz;
			String filePath=ServletActionContext.getServletContext().getRealPath("upfile")+"/"+imgurl;
			File targetFile=new File(filePath);
			upLoadFile(upFile,targetFile);
			imgadv.setImgurl(imgurl);
		}
		commonDAO.update(imgadv);
		suc="";
		return "success";
	}
	//删除图片
	public String imgAdvDel(){
		commonDAO.delete(id, "Imgadv");
		suc="";
		return "success";
	}


安装部署需求

eclipse、idea运行启动

系统部署

系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在IDEA中编辑进行打包;
下载并配置Tomcat8.0服务器,配置系统服务,上传项目打包文件

本项目用到的技术和框架

1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL
4.框架:jsp+SSM

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 Eclipse/IDEA
语言 JDK1.8 、jsp、CSS、SSM
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;
需要源码点击这里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Prometheus邮件告警

一. 部署Alertmanager&#xff1a; 1. 解压Alertmanager压缩包&#xff1a; [rootnode5 ~]# tar xf alertmanager-0.24.0.linux-amd64.tar.gz -C /usr/local/ 2. 为解压后的文件做软连接&#xff1a; [rootnode5 ~]# ln -sv /usr/local/alertmanager-0.24.0.linux-amd64/ …

SSM整合(三)

redis之简单使用 1.准备工作 1.1 在resource资源文件夹下面创建redis.properties文件,并填写如下内容 #连接端口 redis.port6379 #连接地址 redis.host127.0.0.1 #超时时间&#xff1a;单位ms redis.timeout3000 #授权密码 redis.password #最大连接数&#xff1a;能够同时建…

GUI编程--PyQt5--QLineEdit

文章目录键盘文本输入框文本占位符密码显示与隐藏自动补全输入限制掩码字符光标移动设置文本区域常用编辑功能输入控件&#xff0c;用于捕获用户的信息键盘文本输入框 QLineEdit, 单行&#xff0c;纯文本输入框 # 实例化 文本输入框 le QLineEdit("默认值", windo…

Material Design之CoordinatorLayout 与AppbarLayout与CollapsingToolbarLayout

Material Design 之 CoordinatorLayout 第一次接触CoordinatorLayout 你可能有这些疑问&#xff0c;CoordinatorLayout 到底是个什么玩意儿呢&#xff1f;它到底能帮我们做什么&#xff1f;我们要了解它&#xff0c;肯定是先看官方文档了。文档的第一句话就非常醒目&#xff1a…

高职网络系统管理比赛实例

同一交换机不同端口配置不同vlan&#xff0c;实现同一交换机内不同业务部门隔离。 在路由器中配置斜面的内容 1 输入enableRuijie>enable 2 第一次使用该交换机时&#xff0c;需要设置密码&#xff0c;然后再次确认密码 Please Set the password:*** Please check the pass…

掌握这10个Pandas函数,助你彻底了解数据集

10个帮助你完全理解数据集的Pandas 函数 长按关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 扫码关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 Pandas是用于探索性数据分析 (EDA)的最佳 Python 模块。 许多初级数据科…

如何在liunx下实现一个简单的程序?

目录&#xff1a;安装nano写代码保存退出查看文件内容生成可执行程序控制台输出你的代码博后小知识&#xff08;gcc -g -o -c分别是什么意思&#xff1f;&#xff09;安装nano [rootVM-8-11-centos ~]# yum install -y nano 写代码 [rootVM-8-11-centos ~]# nano no_die.c 保存…

向量加权平均算法附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

【C++学习第八讲】简单变量(二)

目录&#xff1a;简单变量&#xff08;二&#xff09;一、无符号类型二、选择整型类型三、 char类型&#xff1a;字符和小整数一、无符号类型 前面介绍的4种整型都有一种不能存储负数值的无符号变体&#xff0c;其优点是可以增大变量能够存储的最大值。 例如&#xff0c;如果…

软件测试---

一 : 主要内容 二 : 什么是软件测试 在规定的条件下对程序进行操作&#xff0c;以发现程序错误&#xff0c;衡量软件质量&#xff0c;并对其是否能满足设计要求进行评估的过程.上面这是官话 . 在我们日常生活中 , 就有许多测试的行为 , 比如地铁站的金属检测仪 , 用于检测旅客…

深度学习——损失函数推导过程(三个方面诠释损失函数的由来意义)

三个维度诠释损失函数 我们在学习机器学习的过程中&#xff0c;通常利用损失函数来衡量模型所做出的预测离真实值之间的偏离程度。 损失函数大致分为3类方法 最小二乘法极大似然估计法交叉熵 1.最小二乘法 这个方法是最显而易懂的&#xff0c;假设x是真实值&#xff0c;y是…

【PyTorch】Neural Network 神经网络

文章目录四、Neural Network 神经网络1、Containers - Module2、Convolution Layers - functional.conv2d2.1 stride2.2 padding3、Convolution Layers - Conv2d3.1 in_channels out_channels4、Pooling layers - MaxPool2d4.1 ceil_mode4.2 TensorBoard5、Non-linear Activati…

Eclipse启动SpringBoot无法读取application.properties或者application.yml文件内容

原因 eclipse配置源代码excludes过滤掉了application.properties或application.yml造成的 解决 2.1 右键项目&#xff0c;选Build Path --> Configure Build Path 2.2 找到 Source --> resources --> Excluded&#xff0c;点击Edit 2.3 点击Edit 2.4 将**改成Non…

【Java八股文总结】之多线程

文章目录Java多线程一、线程1、什么是线程&#xff1f;什么是进程&#xff1f;二者的区别1、给线程起别名的3种方式2、this关键字3、守护线程和用户线程4、并发和并行的区别&#xff1f;5、线程间通信的方式2、synchronized关键字补充&#xff1a;snchronized底层实现原理3、vo…

如何用FMEA方法排除架构隐患

FMEA介绍 定义 FMEA&#xff08;Failure mode and effects analysis&#xff0c;故障模式与影响分析&#xff09;又称为失效模式与后果分析、失效模式与效应分析、故障模式与后果分析等&#xff0c;本文采用“故障模式与影响分析” 历史 FMEA 最早是在美国军方开始应用的&a…

2022-11-20-使用BeatuifulSoup进行页面内容的获取

一、什么是DOM树 DOM树是一种结构&#xff0c;树是由DOM元素和属性节点组成的&#xff0c;DOM的本质是把html结构化成js可识别的树模型&#xff0c;有了树模型&#xff0c;就有了层级结构&#xff0c;层级结构是指的是元素和元素之间的关系父子、兄弟。 实例&#xff1a; 标题…

Java语法之多态

上次给大家分享了Java的继承&#xff0c;今天小编给大家分享面向对象三大特性的第三大特性&#xff0c;也就是多态&#xff0c;fighting~~ 目录 &#x1f388;一. 多态 &#x1f388;1.1多态的概念 &#x1f388;1.2多态的实现条件 &#x1f388;1.3向上转型和向下转型 &a…

HDFS 的 shell操作

文章目录前言一、基本语法二、创建目录三、上传moveFromLocal-copyFromLocal-put-appendToFile四、下载-copyToLocal-get五、HDFS直接操作-ls-cat-chgrp、-chmod、-chown-mkdir-cp-mv-tail-rmrm -r-du-setrep前言 HDFS的shell操作很多跟linux的shell语法是比较相近&#xff0c…

Python学习基础笔记八——字典

字典&#xff1a; 1&#xff09;字典中的元素是通过键来存储的&#xff0c;而不是通过偏移来存取的。字典是唯一内置的映射类型&#xff08;键映射到值的对象&#xff09; 2&#xff09;是无序集合&#xff1b; 3&#xff09;字典是作为散列表&#xff08;支持快速检索的数据…

html网页设计期末大作业_网页设计平时作业(诗词网页 4页)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 茶文化网站 | 中华传统文化题材 | 京剧文化水墨风书画 | 中国民间年画文化艺术网站 | 等网站的设计与制作 | HTML期末大学生网页设计作业&#xff0c;…