计算机毕业设计选题推荐-网上考试系统-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
文章目录
- 一、前言
- 二、开发环境
- 三、系统界面展示
- 四、部分代码设计
- 五、论文参考
- 六、系统视频
- 结语
一、前言
在线考试系统作为教育信息化发展的产物,正逐渐改变传统的考试模式。随着互联网技术的普及和应用,在线考试系统以其便捷性和低成本的优势,满足了现代社会对教育灵活性和个性化的需求。据资料显示,世界各国对教育信息化给予了高度的关注,试图在未来的信息社会中让教育处于优势地位 。
尽管在线考试系统提供了许多优势,但在实际应用中仍存在一些问题。例如,题库录入操作复杂,初次使用时搭建题库不便;考试的作弊行为需要更有效的控制手段;主观题目的阅卷工作仍需人工进行;部分题型在线上作答存在困难 。这些问题限制了在线考试系统的广泛应用和效果。
本课题旨在设计并实现一个功能齐全、用户友好、安全可靠的在线考试系统。系统将提供简化的题库录入方式、智能阅卷功能以及良好的用户体验设计,以解决现有系统中存在的问题,并提高在线考试的效率和公正性 。
在网上考试系统中,管理员负责用户账户的创建与维护、新闻资讯与公告信息的发布与更新、试卷与试题的管理和维护、考试记录的查看与分析;教师可以管理试卷、创建和发布考试、查看学生考试记录并进行评分;学生用户能够查看考试信息、参加在线考试、查看自己的考试记录和成绩。系统通过这些功能模块的整合,旨在提供一个公正、便捷的在线考试环境。
本课题的研究具有重要的理论意义和实际意义。从理论角度来看,它为在线教育领域提供了新的研究思路,即如何利用信息技术优化考试流程。从实际角度来看,在线考试系统的应用将有助于提高考试的便捷性和高效性,降低教育成本,提升教育质量,促进教育公平 。同时,系统的推广应用还将推动教育信息化进程,促进教育现代化的发展。
二、开发环境
- 开发语言:Java/Python
- 数据库:MySQL
- 系统架构:B/S
- 后端:SpringBoot/SSM/Django/Flask
- 前端:Vue
三、系统界面展示
- 网上考试系统界面展示:
试卷管理:
试题管理:
在线考试:
查看考试记录:

四、部分代码设计
- 项目实战-代码参考:
@RestController
@RequestMapping("/examquestionbank")
public class ExamquestionbankController {@Autowiredprivate ExamquestionbankService examquestionbankService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,ExamquestionbankEntity examquestionbank,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {examquestionbank.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}EntityWrapper<ExamquestionbankEntity> ew = new EntityWrapper<ExamquestionbankEntity>();PageUtils page = examquestionbankService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, examquestionbank), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,ExamquestionbankEntity examquestionbank, HttpServletRequest request){EntityWrapper<ExamquestionbankEntity> ew = new EntityWrapper<ExamquestionbankEntity>();PageUtils page = examquestionbankService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, examquestionbank), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( ExamquestionbankEntity examquestionbank){EntityWrapper<ExamquestionbankEntity> ew = new EntityWrapper<ExamquestionbankEntity>();ew.allEq(MPUtil.allEQMapPre( examquestionbank, "examquestionbank")); return R.ok().put("data", examquestionbankService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(ExamquestionbankEntity examquestionbank){EntityWrapper< ExamquestionbankEntity> ew = new EntityWrapper< ExamquestionbankEntity>();ew.allEq(MPUtil.allEQMapPre( examquestionbank, "examquestionbank")); ExamquestionbankView examquestionbankView = examquestionbankService.selectView(ew);return R.ok("查询试题库表成功").put("data", examquestionbankView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){ExamquestionbankEntity examquestionbank = examquestionbankService.selectById(id);return R.ok().put("data", examquestionbank);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){ExamquestionbankEntity examquestionbank = examquestionbankService.selectById(id);return R.ok().put("data", examquestionbank);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody ExamquestionbankEntity examquestionbank, HttpServletRequest request){//ValidatorUtils.validateEntity(examquestionbank);String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {examquestionbank.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}examquestionbankService.insert(examquestionbank);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody ExamquestionbankEntity examquestionbank, HttpServletRequest request){//ValidatorUtils.validateEntity(examquestionbank);String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {examquestionbank.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}examquestionbankService.insert(examquestionbank);return R.ok();}/*** 获取用户密保*/@RequestMapping("/security")@IgnoreAuthpublic R security(@RequestParam String username){ExamquestionbankEntity examquestionbank = examquestionbankService.selectOne(new EntityWrapper<ExamquestionbankEntity>().eq("", username));return R.ok().put("data", examquestionbank);}/*** 修改*/@RequestMapping("/update")@Transactional@IgnoreAuthpublic R update(@RequestBody ExamquestionbankEntity examquestionbank, HttpServletRequest request){//ValidatorUtils.validateEntity(examquestionbank);examquestionbankService.updateById(examquestionbank);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){examquestionbankService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 前端智能排序*/@IgnoreAuth@RequestMapping("/autoSort")public R autoSort(@RequestParam Map<String, Object> params,ExamquestionbankEntity examquestionbank, HttpServletRequest request,String pre){EntityWrapper<ExamquestionbankEntity> ew = new EntityWrapper<ExamquestionbankEntity>();Map<String, Object> newMap = new HashMap<String, Object>();Map<String, Object> param = new HashMap<String, Object>();Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, Object> entry = it.next();String key = entry.getKey();String newKey = entry.getKey();if (pre.endsWith(".")) {newMap.put(pre + newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre + "." + newKey, entry.getValue());}}params.put("sort", "clicktime");params.put("order", "desc");PageUtils page = examquestionbankService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, examquestionbank), params), params));return R.ok().put("data", page);}}
@RestController
@RequestMapping("/examquestion")
public class ExamquestionController {@Autowiredprivate ExamquestionService examquestionService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,ExamquestionEntity examquestion,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {examquestion.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}EntityWrapper<ExamquestionEntity> ew = new EntityWrapper<ExamquestionEntity>();PageUtils page = examquestionService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, examquestion), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,ExamquestionEntity examquestion, HttpServletRequest request){EntityWrapper<ExamquestionEntity> ew = new EntityWrapper<ExamquestionEntity>();PageUtils page = examquestionService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, examquestion), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( ExamquestionEntity examquestion){EntityWrapper<ExamquestionEntity> ew = new EntityWrapper<ExamquestionEntity>();ew.allEq(MPUtil.allEQMapPre( examquestion, "examquestion")); return R.ok().put("data", examquestionService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(ExamquestionEntity examquestion){EntityWrapper< ExamquestionEntity> ew = new EntityWrapper< ExamquestionEntity>();ew.allEq(MPUtil.allEQMapPre( examquestion, "examquestion")); ExamquestionView examquestionView = examquestionService.selectView(ew);return R.ok("查询试题表成功").put("data", examquestionView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){ExamquestionEntity examquestion = examquestionService.selectById(id);return R.ok().put("data", examquestion);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){ExamquestionEntity examquestion = examquestionService.selectById(id);return R.ok().put("data", examquestion);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody ExamquestionEntity examquestion, HttpServletRequest request){//ValidatorUtils.validateEntity(examquestion);String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {examquestion.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}examquestionService.insert(examquestion);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody ExamquestionEntity examquestion, HttpServletRequest request){//ValidatorUtils.validateEntity(examquestion);String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("jiaoshi")) {examquestion.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}examquestionService.insert(examquestion);return R.ok();}/*** 获取用户密保*/@RequestMapping("/security")@IgnoreAuthpublic R security(@RequestParam String username){ExamquestionEntity examquestion = examquestionService.selectOne(new EntityWrapper<ExamquestionEntity>().eq("", username));return R.ok().put("data", examquestion);}/*** 修改*/@RequestMapping("/update")@Transactional@IgnoreAuthpublic R update(@RequestBody ExamquestionEntity examquestion, HttpServletRequest request){//ValidatorUtils.validateEntity(examquestion);examquestionService.updateById(examquestion);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){examquestionService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 前端智能排序*/@IgnoreAuth@RequestMapping("/autoSort")public R autoSort(@RequestParam Map<String, Object> params,ExamquestionEntity examquestion, HttpServletRequest request,String pre){EntityWrapper<ExamquestionEntity> ew = new EntityWrapper<ExamquestionEntity>();Map<String, Object> newMap = new HashMap<String, Object>();Map<String, Object> param = new HashMap<String, Object>();Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, Object> entry = it.next();String key = entry.getKey();String newKey = entry.getKey();if (pre.endsWith(".")) {newMap.put(pre + newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre + "." + newKey, entry.getValue());}}params.put("sort", "clicktime");params.put("order", "desc");PageUtils page = examquestionService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, examquestion), params), params));return R.ok().put("data", page);}}
五、论文参考
- 计算机毕业设计选题推荐-网上考试系统-论文参考:

六、系统视频
- 网上考试系统-项目视频:
计算机毕业设计选题推荐-网上考试系统-Java/Python
结语
计算机毕业设计选题推荐-网上考试系统-Java/Python项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:⬇⬇⬇
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
相关文章:
计算机毕业设计选题推荐-网上考试系统-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...
白骑士的Matlab教学基础篇 1.4 函数与脚本
系列目录 上一篇:白骑士的Matlab教学基础篇 1.3 控制流 函数和脚本是 MATLAB 编程中的基本组成部分,它们使得代码更加模块化、可重用和组织化。通过理解函数的定义与调用、参数与返回值,以及 MATLAB 脚本与批处理,可以显著提高编…...
Qt——多线程
一、QThread类 如果要设计多线程程序,一般是从QThread继承定义一个线程类,并重新定义QThread的虚函数 run() ,在函数 run() 里处理线程的事件循环。 应用程序的线程称为主线程,创建的其他线程称为工作线程。主线程的 start() 函数…...
技术周总结 08.05-08.11周日(scala git回滚)
文章目录 一、08.06 周二1.1) 问题01 mac安装 scala:1. 使用 Homebrew2. 使用 SDKMAN!其他注意事项1. 确认 Scala 安装位置2. 设置 PATH 环境变量对于 zsh (macOS Catalina 及更高版本默认使用 zsh):对于 bash (如果您使用的是 bash shell): 3. 验证安装 二、08.09 周五2.1&…...
ffmpeg 命令图片和视频转换
1、截图 ffmpeg -i d:\input.mp4 -ss 0:0:10 d:\output.jpg //指定输出分辨率 ffmpeg -i d:\input.mp4 -y -f image2 -ss 0:0:10 -vframes 1 -s 640x360 d:\output.jpg 2、视频分拆图片 ffmpeg -r 输入帧率 -i d:\input.mp4 -r 输出帧率 "d:\outputDir\frame_%04d.jp…...
力扣 | 动态规划 | 在字符串的应用 | 最长回文子串、最长回文子序列、单词拆分、编辑距离
文章目录 1.最长回文子串2.最长回文子序列3.单词拆分4.编辑距离5. 共同点和思路6. 各个问题的思路和扩展1. 最长回文子串2. 最长回文子序列3. 单词拆分4. 编辑距离 在解答字符串动态规划的应用时,我们需要非常注意一个问题: 有时候我们定义 d p [ i …...
【docker】docker容器部署常用服务
1、容器部署nginx,并且新增一个页面 docker run -d -p 81:80 --name nginx2 nginx docker exec -it nginx2 /bin/bashcd /usr/share/nginx/html/ echo "hello world">>hello.html2、容器部署redis,成功部署后向redis中添加一条数据 do…...
CentOS 7.6 安装 Weblogic
注:本教程是以虚拟机作为安装环境,如果您公司需要安装 Weblogic 服务器,请先以虚拟机模拟安装一遍,否则出现失误,概不负责😁。 一、环境 虚拟机:VMware Workstation 16 Linux:Cent…...
一键清除电脑隐私痕迹,Privacy Eraser助你轻松搞定!
前言 在数字时代,隐私就像是我们手中的细沙,不经意间就可能从指缝间溜走;你是否也曾担心,自己的每一次点击、每一次浏览,都可能成为别人眼中的“秘密”?别急,今天小江湖就要带你走进一款神秘的…...
火语言RPA桌面元素库使用方法
使用火语言RPA自动选取工具获得桌面中元素: 工具标识 桌面 分组下组件若有此标识,则包含选择元素工具,点击此标识会进行选择元素操作。 桌面元素库介绍 ① 根据元素名称筛选元素库中保存的元素 ② 元素库,显示已经保存的元素名…...
FTP.JBoss,Ldap,Rsync未授权访问漏洞(附带修复方法)
一.FTP未授权访问漏洞(匿名登陆) FTP 弱⼝令或匿名登录漏洞,⼀般指使⽤ FTP 的⽤户启⽤了匿名登录功能,或系统⼝令的⻓度太短、复杂度不够、仅包含数字、或仅包含字⺟等,容易被⿊客攻击,发⽣恶意⽂件上传或更严重的⼊侵⾏为。 漏…...
全新在线客服系统源码(pc+h5+uniapp+公众号小程序+抖音)附搭建接入教程
全新在线客服系统源码介绍 一、系统概述与优势 本系统是一款基于PHP的开源在线客服系统,支持PC端、移动端(小程序)、H5页面以及Uniapp多端接入。系统利用网络技术和人工智能技术,实现用户与客服人员的即时聊天沟通,有…...
为具有公网IPV6地址的服务器安装nextcloudAIO并使用NginxProxyManager配置反向代理
软件和硬件环境 ubuntu server 24.04,并已配置好ipv6公网地址,已安装好docker和docker-compose。一块单独的硬盘,用于单独存储nextcloud数据。(非必需)有一个能够正常解析的域名,并已配置好AAAA记录解析。…...
挖矿宝藏之TCP/IP
目录 一、TCP/IP简介 1.TCP自述 2.IP自述 二、TCP/IP 寻址 1.IP V6 2.域名 三、TCP/IP协议 一、TCP/IP简介 TCP/IP 指传输控制协议/网际协议(Transmission Control Protocol / Internet Protocol),是供已连接因特网的计算机进行通信的…...
略谈set与map的pair封装与进入哈希
引子:之前我们讲了红黑树的自实现,与小小的接口实现,那set与map的pair封装是如何实现的呢?,今天我们来一探究竟,而且我们也要进入新章节--哈希 对于operator--()的封装: 注意:牢记思…...
android13 串口编号修改 串口名修改
总纲 android13 rom 开发总纲说明 目录 1.前言 2.技术分析 别名定义的语法规则 3.修改示例 使用别名 注意事项 4.不生效分析 5.编译查看 6.其他方法 7.彩蛋 1.前言 更改Android设备的串口编号涉及对系统深层次的配置进行修改,通常是为了解决硬件兼容性问题或满足特…...
工作中常用的软件竟可直接下载0.5m卫星影像(Esri影像、天地图、星图)、DEM、土地覆盖数据...
之前我们有介绍过在ArcGIS通过插件、WTMS或者lyr添加谷歌影像、天地图等各种在线图源。今天我们就来再整理一套既方便查看又方便下载的教程,软件就是我们常用的Global Mapper,有点强。 这里我们整理了一些我们工作学习中常用的一些数据下载方法…...
1章3节:R 语言的产生与发展轨迹
R语言诞生于1990年代,由统计学家Ross Ihaka和Robert Gentleman在新西兰奥克兰大学开发,旨在提供一种免费开源、灵活强大的统计编程工具。R语言基于S语言的设计理念,并通过其开源社区的贡献迅速发展,形成了庞大的生态系统,包括CRAN、RStudio和Shiny等。R语言以其强大的统计…...
html常用标签
一、无序列表 ul li 注意事项:ul下面不可以嵌套其他标签,li下可以 二、有序列表 ol li 注意事项同无序列表 三、自定义列表 dd dt 注意事项同无序列表 四 、表格 table tr:行 th:表头 td:内容 4.1合并单元格 步骤 1.明确合并的目标 2.保留…...
选择文件鼠标右键自定义菜单
注册表路径 计算机\HKEY_CLASSES_ROOT\*\shell 效果 操作 1.定位 winr,输入regedit, 地址栏输入以下路径,并回车。 计算机\HKEY_CLASSES_ROOT\*\shell 2.在shell上右键,新建项 3右键新建字符串值,Icon,Position 4 右键新建c…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
