类似千图网的素材网站,网站开发软件 d,品牌建设的四条主线,wordpress iis7 伪静态规则网络的广泛应用给生活带来了十分的便利。所以把在线考试管理与现在网络相结合#xff0c;利用java技术建设在线考试系统#xff0c;实现在线考试的信息化管理。则对于进一步提高在线考试管理发展#xff0c;丰富在线考试管理经验能起到不少的促进作用。
在线考试系统能够通…
网络的广泛应用给生活带来了十分的便利。所以把在线考试管理与现在网络相结合利用java技术建设在线考试系统实现在线考试的信息化管理。则对于进一步提高在线考试管理发展丰富在线考试管理经验能起到不少的促进作用。
在线考试系统能够通过互联网得到广泛的、全面的宣传让尽可能多的教师和学生了解和熟知在线考试系统的便捷高效不仅为高校考试提供了服务而且也推广了自己。对于在线考试而言若拥有自己的系统通过系统得到更好的管理同时提升了形象。
本系统设计的现状和趋势从需求、结构、数据库等方面的设计到系统的实现分别为管理员、学生和教师的实现。论文的内容从系统的设计、描述、实现、分析、测试方面来表明开发的过程。本系统根据现实情况来选择一种可行的开发方案借助java编程语言和MySQL数据库等实现系统的全部功能接下来对系统进行测试测试系统是否有漏洞和测试用户权限来完善系统最终系统完成达到相关标准。 关键字在线考试系统javaMySQL数据库
基于SpringBoot的在线考试系统源码和论文305
演示视频 基于SpringBoot的在线考试系统源码和论文 Abstract The wide application of the network has brought great convenience to life. Therefore, the online examination management is combined with the current network, and the online examination system is constructed by using java technology to realize the information management of the online examination. It can play a role in further improving the development of online examination management and enriching online examination management experience.
The online examination system can be widely and comprehensively publicized through the Internet, so that as many teachers and students as possible can understand and be familiar with the convenience and efficiency of the online examination system, which not only provides services for college examinations, but also promotes itself. For online exams, if you have your own system, you can get better management through the system and improve your image.
The current situation and trend of the system design, from the design of requirements, structure, database, etc. to the realization of the system, are the realization of administrators, students and teachers. The content of the paper shows the development process from the aspects of system design, description, implementation, analysis and testing. The system selects a feasible development plan according to the actual situation, realizes all the functions of the system with the help of java programming language and MySQL database, etc., and then tests the system to test whether there are loopholes in the system and test user permissions to improve the system, and finally the system Complete to meet relevant standards. Keywords: Online text correcting system; Java; MySQL database package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.XueshengEntity;
import com.entity.view.XueshengView;import com.service.XueshengService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;/*** 学生* 后端接口* author * email * date 2022-03-18 10:34:29*/
RestController
RequestMapping(/xuesheng)
public class XueshengController {Autowiredprivate XueshengService xueshengService;Autowiredprivate TokenService tokenService;/*** 登录*/IgnoreAuthRequestMapping(value /login)public R login(String username, String password, String captcha, HttpServletRequest request) {XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xueshengzhanghao, username));if(usernull || !user.getMima().equals(password)) {return R.error(账号或密码不正确);}String token tokenService.generateToken(user.getId(), username,xuesheng, 学生 );return R.ok().put(token, token);}/*** 注册*/IgnoreAuthRequestMapping(/register)public R register(RequestBody XueshengEntity xuesheng){//ValidatorUtils.validateEntity(xuesheng);XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xueshengzhanghao, xuesheng.getXueshengzhanghao()));if(user!null) {return R.error(注册用户已存在);}Long uId new Date().getTime();xuesheng.setId(uId);xueshengService.insert(xuesheng);return R.ok();}/*** 退出*/RequestMapping(/logout)public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok(退出成功);}/*** 获取用户的session用户信息*/RequestMapping(/session)public R getCurrUser(HttpServletRequest request){Long id (Long)request.getSession().getAttribute(userId);XueshengEntity user xueshengService.selectById(id);return R.ok().put(data, user);}/*** 密码重置*/IgnoreAuthRequestMapping(value /resetPass)public R resetPass(String username, HttpServletRequest request){XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xueshengzhanghao, username));if(usernull) {return R.error(账号不存在);}user.setMima(123456);xueshengService.updateById(user);return R.ok(密码已重置为123456);}/*** 后端列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params,XueshengEntity xuesheng,HttpServletRequest request){EntityWrapperXueshengEntity ew new EntityWrapperXueshengEntity();PageUtils page xueshengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xuesheng), params), params));return R.ok().put(data, page);}/*** 前端列表*/IgnoreAuthRequestMapping(/list)public R list(RequestParam MapString, Object params,XueshengEntity xuesheng, HttpServletRequest request){EntityWrapperXueshengEntity ew new EntityWrapperXueshengEntity();PageUtils page xueshengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xuesheng), params), params));return R.ok().put(data, page);}/*** 列表*/RequestMapping(/lists)public R list( XueshengEntity xuesheng){EntityWrapperXueshengEntity ew new EntityWrapperXueshengEntity();ew.allEq(MPUtil.allEQMapPre( xuesheng, xuesheng)); return R.ok().put(data, xueshengService.selectListView(ew));}/*** 查询*/RequestMapping(/query)public R query(XueshengEntity xuesheng){EntityWrapper XueshengEntity ew new EntityWrapper XueshengEntity();ew.allEq(MPUtil.allEQMapPre( xuesheng, xuesheng)); XueshengView xueshengView xueshengService.selectView(ew);return R.ok(查询学生成功).put(data, xueshengView);}/*** 后端详情*/RequestMapping(/info/{id})public R info(PathVariable(id) Long id){XueshengEntity xuesheng xueshengService.selectById(id);return R.ok().put(data, xuesheng);}/*** 前端详情*/IgnoreAuthRequestMapping(/detail/{id})public R detail(PathVariable(id) Long id){XueshengEntity xuesheng xueshengService.selectById(id);return R.ok().put(data, xuesheng);}/*** 后端保存*/RequestMapping(/save)public R save(RequestBody XueshengEntity xuesheng, HttpServletRequest request){xuesheng.setId(new Date().getTime()new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(xuesheng);XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xueshengzhanghao, xuesheng.getXueshengzhanghao()));if(user!null) {return R.error(用户已存在);}xuesheng.setId(new Date().getTime());xueshengService.insert(xuesheng);return R.ok();}/*** 前端保存*/RequestMapping(/add)public R add(RequestBody XueshengEntity xuesheng, HttpServletRequest request){xuesheng.setId(new Date().getTime()new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(xuesheng);XueshengEntity user xueshengService.selectOne(new EntityWrapperXueshengEntity().eq(xueshengzhanghao, xuesheng.getXueshengzhanghao()));if(user!null) {return R.error(用户已存在);}xuesheng.setId(new Date().getTime());xueshengService.insert(xuesheng);return R.ok();}/*** 修改*/RequestMapping(/update)public R update(RequestBody XueshengEntity xuesheng, HttpServletRequest request){//ValidatorUtils.validateEntity(xuesheng);xueshengService.updateById(xuesheng);//全部更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Long[] ids){xueshengService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/RequestMapping(/remind/{columnName}/{type})public R remindCount(PathVariable(columnName) String columnName, HttpServletRequest request, PathVariable(type) String type,RequestParam MapString, Object map) {map.put(column, columnName);map.put(type, type);if(type.equals(2)) {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);Calendar c Calendar.getInstance();Date remindStartDate null;Date remindEndDate null;if(map.get(remindstart)!null) {Integer remindStart Integer.parseInt(map.get(remindstart).toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate c.getTime();map.put(remindstart, sdf.format(remindStartDate));}if(map.get(remindend)!null) {Integer remindEnd Integer.parseInt(map.get(remindend).toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate c.getTime();map.put(remindend, sdf.format(remindEndDate));}}WrapperXueshengEntity wrapper new EntityWrapperXueshengEntity();if(map.get(remindstart)!null) {wrapper.ge(columnName, map.get(remindstart));}if(map.get(remindend)!null) {wrapper.le(columnName, map.get(remindend));}int count xueshengService.selectCount(wrapper);return R.ok().put(count, count);}}package com.controller;import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.MatchRequest;
import com.baidu.aip.util.Base64Util;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.service.CommonService;
import com.service.ConfigService;
import com.utils.BaiduUtil;
import com.utils.FileUtil;
import com.utils.R;
/*** 通用接口*/
RestController
public class CommonController{Autowiredprivate CommonService commonService;private static AipFace client null;Autowiredprivate ConfigService configService; /*** 获取table表中的column列表(联动接口)* param table* param column* return*/IgnoreAuthRequestMapping(/option/{tableName}/{columnName})public R getOption(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName,String level,String parent) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(column, columnName);if(StringUtils.isNotBlank(level)) {params.put(level, level);}if(StringUtils.isNotBlank(parent)) {params.put(parent, parent);}ListString data commonService.getOption(params);return R.ok().put(data, data);}/*** 根据table中的column获取单条记录* param table* param column* return*/IgnoreAuthRequestMapping(/follow/{tableName}/{columnName})public R getFollowByOption(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName, RequestParam String columnValue) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(column, columnName);params.put(columnValue, columnValue);MapString, Object result commonService.getFollowByOption(params);return R.ok().put(data, result);}/*** 修改table表的sfsh状态* param table* param map* return*/RequestMapping(/sh/{tableName})public R sh(PathVariable(tableName) String tableName, RequestBody MapString, Object map) {map.put(table, tableName);commonService.sh(map);return R.ok();}/*** 获取需要提醒的记录数* param tableName* param columnName* param type 1:数字 2:日期* param map* return*/IgnoreAuthRequestMapping(/remind/{tableName}/{columnName}/{type})public R remindCount(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName, PathVariable(type) String type,RequestParam MapString, Object map) {map.put(table, tableName);map.put(column, columnName);map.put(type, type);if(type.equals(2)) {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);Calendar c Calendar.getInstance();Date remindStartDate null;Date remindEndDate null;if(map.get(remindstart)!null) {Integer remindStart Integer.parseInt(map.get(remindstart).toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate c.getTime();map.put(remindstart, sdf.format(remindStartDate));}if(map.get(remindend)!null) {Integer remindEnd Integer.parseInt(map.get(remindend).toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate c.getTime();map.put(remindend, sdf.format(remindEndDate));}}int count commonService.remindCount(map);return R.ok().put(count, count);}/*** 单列求和*/IgnoreAuthRequestMapping(/cal/{tableName}/{columnName})public R cal(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(column, columnName);MapString, Object result commonService.selectCal(params);return R.ok().put(data, result);}/*** 分组统计*/IgnoreAuthRequestMapping(/group/{tableName}/{columnName})public R group(PathVariable(tableName) String tableName, PathVariable(columnName) String columnName) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(column, columnName);ListMapString, Object result commonService.selectGroup(params);SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);for(MapString, Object m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put(data, result);}/*** 按值统计*/IgnoreAuthRequestMapping(/value/{tableName}/{xColumnName}/{yColumnName})public R value(PathVariable(tableName) String tableName, PathVariable(yColumnName) String yColumnName, PathVariable(xColumnName) String xColumnName) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(xColumn, xColumnName);params.put(yColumn, yColumnName);ListMapString, Object result commonService.selectValue(params);SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);for(MapString, Object m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put(data, result);}/*** 按值统计时间统计类型*/IgnoreAuthRequestMapping(/value/{tableName}/{xColumnName}/{yColumnName}/{timeStatType})public R valueDay(PathVariable(tableName) String tableName, PathVariable(yColumnName) String yColumnName, PathVariable(xColumnName) String xColumnName, PathVariable(timeStatType) String timeStatType) {MapString, Object params new HashMapString, Object();params.put(table, tableName);params.put(xColumn, xColumnName);params.put(yColumn, yColumnName);params.put(timeStatType, timeStatType);ListMapString, Object result commonService.selectTimeStatValue(params);SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);for(MapString, Object m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put(data, result);}/*** 人脸比对* * param face1 人脸1* param face2 人脸2* return*/RequestMapping(/matchFace)IgnoreAuthpublic R matchFace(String face1, String face2,HttpServletRequest request) {if(clientnull) {/*String AppID configService.selectOne(new EntityWrapperConfigEntity().eq(name, AppID)).getValue();*/String APIKey configService.selectOne(new EntityWrapperConfigEntity().eq(name, APIKey)).getValue();String SecretKey configService.selectOne(new EntityWrapperConfigEntity().eq(name, SecretKey)).getValue();String token BaiduUtil.getAuth(APIKey, SecretKey);if(tokennull) {return R.error(请在配置管理中正确配置APIKey和SecretKey);}client new AipFace(null, APIKey, SecretKey);client.setConnectionTimeoutInMillis(2000);client.setSocketTimeoutInMillis(60000);}JSONObject res null;try {File path new File(ResourceUtils.getURL(classpath:static).getPath());if(!path.exists()) {path new File();}File upload new File(path.getAbsolutePath(),/upload/);File file1 new File(upload.getAbsolutePath()/face1);File file2 new File(upload.getAbsolutePath()/face2);String img1 Base64Util.encode(FileUtil.FileToByte(file1));String img2 Base64Util.encode(FileUtil.FileToByte(file2));MatchRequest req1 new MatchRequest(img1, BASE64);MatchRequest req2 new MatchRequest(img2, BASE64);ArrayListMatchRequest requests new ArrayListMatchRequest();requests.add(req1);requests.add(req2);res client.match(requests);System.out.println(res.get(result));} catch (FileNotFoundException e) {e.printStackTrace();return R.error(文件不存在);} catch (IOException e) {e.printStackTrace();} return R.ok().put(score, com.alibaba.fastjson.JSONObject.parse(res.getJSONObject(result).get(score).toString()));}
}