|
查看: 648|回复: 22
|
[PC]
考试、练习系统 v1.0.0 - 适用于离线环境
[复制链接]
|

UID4
贡献9 点
钻石99 个
C币8 个
|
🚀 在线考试系统 v1.0.0 —— 题库 / 考试 / 练习 / 成绩统计一套搞定
纯内网部署 · Web 在线考试 · 随机组卷 · 自动判分 · Excel 导入导出 · 错题练习 · 成绩统计 · 全程审计
前端 Vue 3,后端 .NET 8,数据库 SQL Server 2019。
不整花里胡哨的概念,主要就是想把单位内部考试、培训、练习这一套流程做得简单点。
-------------------------
📌 软件介绍
最近折腾了一个 在线考试系统,主要面向公司、单位内部培训考试、知识竞赛、日常练习之类的场景。
最开始的想法也比较简单:
题库能批量导入 → 人员能批量导入 → 管理员出考试 → 员工直接浏览器答题 → 系统自动判分 → 后台看统计。
后来边写边加,最后把题库、考试、补考、练习、错题本、培训档案、成绩统计、操作审计这些东西基本都整进去了。
整个系统按照 纯内网环境 来设计,不依赖外网资源,没有 CDN、在线字体之类的东西,服务器部署完以后,局域网里的电脑直接浏览器访问即可。
当前版本:
技术栈:
后端:.NET 8 / ASP.NET Core
ORM:Entity Framework Core 8
数据库:SQL Server 2019
前端:Vue 3 + TypeScript
UI:Element Plus
图表:ECharts
部署:Windows Service + Inno Setup
-------------------------
✨ 主要功能
📚 一、题库管理
支持:
单选题
多选题
判断题
自定义题库分类
题目图片
Excel 批量导入
Excel 题库模板下载
手工新增 / 修改 / 删除
重复题目自动识别并跳过
导入时会按照:
题型 + 分类 + 题干
进行重复判断,避免一张表导几次以后题库直接“繁殖”。
-------------------------
👨💼 二、人员管理
考试人员可以后台手动维护,也可以直接通过 Excel 批量导入。
支持:
姓名
工号
部门
批量导入
手工新增
删除人员
重置密码
考生自行修改密码
人员重复导入时会自动判断:
姓名 + 部门
重复人员不会再次创建。
-------------------------
📝 三、考试管理
后台可以直接创建考试,并设置考试基本信息和组卷规则。
支持:
新建考试草稿
修改考试
指定考试时间
设置考试时长
设置及格分数
指定参考人员
按部门指定参考范围
发布考试
结束考试
补考
实时查看考试状态
整个流程大致就是:
创建考试
↓
配置组卷规则
↓
选择人员 / 部门
↓
发布考试
↓
考生答题
↓
自动判分
↓
成绩统计
-------------------------
🎲 四、随机组卷
考试不是简单把所有题一股脑塞进去。
可以按照:
题库分类
+
题目类型
+
抽题数量
进行随机抽题。
每个考生进入考试后都会生成自己的 个人试卷快照,题目确定以后不会因为后台题库发生变化而影响已经开始的考试。
题型按照:
单选题 → 多选题 → 判断题
固定顺序显示。
不同考生可以抽到不同题目,比较适合内部考试使用。
-------------------------
💾 五、答题实时保存
考试过程中答案会实时保存。
也就是说:
考生重新登录后,可以继续之前没有完成的考试。
同时系统会记录考试 IP,并使用服务器时间进行考试时间校验,尽量避免依赖客户端电脑时间。
-------------------------
⏰ 六、自动交卷
支持考试倒计时。
考试时间结束后,即使考生没有主动点击交卷,后台也会进行超时处理并自动提交。
同时对重复提交做了幂等处理,避免:
疯狂点交卷
=
疯狂生成成绩
这种喜闻乐见的情况。
-------------------------
✅ 七、自动判分
系统目前主要面向客观题,因此可以直接自动判分。
支持:
单选题
答对得分,答错不得分。
判断题
自动识别并判分。
多选题
支持两种判分方式:
方式一:
全部选对才得分
方式二:
少选且没有错选,可得一半分数
可以根据实际考试要求进行配置。
-------------------------
📊 八、成绩统计
考试结束以后后台可以直接查看统计情况。
包括:
参考率
平均分
及格率
成绩排名
分数段统计
题目正确率
年度考试数据
考试成绩明细
图表使用 ECharts 展示,比对着 Excel 一行一行瞪眼睛舒服一点。
同时支持成绩数据导出 Excel,方便后续归档、打印或者再加工。
-------------------------
🧠 九、练习中心
除了正式考试,也做了一套练习功能。
考生可以进入练习中心,根据题库进行日常练习。
支持:
分类练习
全屏答题
错题记录
错题重新练习
正式考试之前可以自己刷刷题。
-------------------------
❌ 十、错题本
答错的题目可以进入错题本。
考生后续可以针对错题再次练习,不需要满题库到处翻。
比较适合:
培训 → 练习 → 考试 → 找错题 → 再练
这一整套流程。
-------------------------
📁 十一、培训档案
系统会保留人员相关的考试、成绩等记录,可以作为内部培训档案使用。
不用每次考试结束以后再单独手工整理一份成绩表。
-------------------------
🔐 十二、后台权限
后台不是所有账号都一个权限。
目前包含不同管理角色,例如:
管理员
审计员
只读账号
不同角色访问不同功能。
其中审计账号主要用于查看系统审计记录,不能直接操作正常管理业务。
-------------------------
🕵️ 十三、操作审计
这个功能我个人觉得内部系统还是挺有必要的。
系统会记录包括:
考生登录
考生退出
浏览
修改密码
管理员新增数据
删除数据
重置密码
数据导出
后台管理操作
等相关行为。
谁在什么时候干了什么,后面至少有地方能查。
-------------------------
🛡️ 十四、登录安全
后台登录增加了失败锁定机制。
避免有人在登录页面:
admin
123456
admin
admin
admin
888888
……
一路硬试到下班。
-------------------------
💻 运行环境
服务端
推荐环境:
操作系统:Windows Server 2016 及以上
系统架构:64 位
数据库:SQL Server 2019
程序正式发布采用:
win-x64
Self-Contained
单文件发布
因此正常部署以后,服务器 不需要额外安装:
.NET Runtime
Node.js
IIS
Java
SQLCMD
程序自身已经包含运行所需组件。
-------------------------
🌐 客户端
客户端不需要安装软件,浏览器打开即可。
推荐:
Microsoft Edge
Google Chrome
360 浏览器 Chrome 内核版本
前端生产构建目标为:
Chrome 90+
Windows 7 环境可以使用 Chrome 109 或对应 Chrome 内核浏览器访问。
-------------------------
🗄️ 数据库
默认数据库:
ExamSystem
默认使用:
SQL Server 2019
支持:
Windows 集成认证
SQL Server 身份认证
正常情况下程序首次运行会自动创建数据库和相关数据表。
如果单位数据库账号没有建库权限,也提供了:
db-init.sql
可以让 DBA 手工执行初始化。
-------------------------
🌐 部署方式
系统按 Windows 服务器环境设计。
正式部署以后后台程序会注册为:
Windows Service
服务名称:
HuaboExamSystem
默认 Web 端口:
5188
访问方式:
http://服务器IP:5188/
例如:
http://192.168.1.100:5188/
局域网里的电脑直接浏览器打开即可。
-------------------------
🛠️ 源码编译
如果只是研究源码,可以分别编译前后端。
前端
cd client
pnpm install
pnpm run build
后端
dotnet test HuaboExamSystem.slnx -c Release
dotnet publish src\HuaboExamSystem.Server\HuaboExamSystem.Server.csproj `
-c Release `
-r win-x64 `
--self-contained true `
-p ublishSingleFile=true
源码中同时保留了:
Inno Setup 安装脚本
Windows 服务安装脚本
数据库初始化脚本
自签 HTTPS 证书生成脚本
一页纸部署手册
自动化测试
有需要的可以自己继续折腾。
-------------------------
🧪 当前版本测试情况
源码中保留了一份自测报告。
目前完成的自动化测试包括:
✓ Release 编译
✓ 判分引擎
✓ 多选题半分规则
✓ 随机组卷
✓ 题库不足检测
✓ 考试超时自动交卷
✓ 重复交卷检测
✓ Excel 题库导入
✓ Excel 人员导入
✓ 重复数据过滤
✓ 人员认证
✓ 权限隔离
✓ 操作审计
✓ Vue / TypeScript 类型检查
✓ 前端生产构建
✓ 离线资源检查
✓ Inno Setup 安装脚本编译
当前源码自测共:
不过毕竟是 v1.0.0,第一版不敢说什么“稳定如老狗”“吊打商业软件”。
自己使用和测试下来主要流程已经能跑通,肯定也还有没覆盖到的边边角角。
有问题欢迎回帖交流。
-------------------------
📷 软件截图
01 · 考生登录页面
2026-8-23 17:00 上传[/quote]
-------------------------
02 · 管理登录页面
2026-8-23 17:00 上传[/quote]
-------------------------
📦 源码目录
大概结构如下:
在线考试系统_v1.0.0_源码
│
├─ client
│ └─ Vue 3 前端源码
│
├─ src
│ └─ HuaboExamSystem.Server
│ └─ .NET 8 后端源码
│
├─ tests
│ └─ 自动化测试
│
├─ deploy
│ ├─ 数据库初始化脚本
│ ├─ Windows 服务脚本
│ ├─ HTTPS 证书脚本
│ └─ Inno Setup 安装脚本
│
├─ docs
│ ├─ 一页纸部署手册
│ └─ 自测报告
│
└─ README.md
-------------------------
📥 下载
在线考试系统 v1.0.0 源码
https://thebzk.lanzouu.com/b00q1nph2b---密码:cpdw">https://thebzk.lanzouu.com/b00q1nph2b 密码:cpdw
最后说两句:
这个项目主要还是按照自己实际碰到的内部考试需求写的,没有搞微服务、Redis、MQ 那一大套“技术全家桶”。
对这种局域网内部几百号人考个试的系统来说,能装、能用、好维护,比架构图画得像地铁线路图更重要。
源码发出来给坛友参考,有兴趣的可以自行修改、二开。
如果发现 BUG,也欢迎反馈,能改的继续改。 |
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
|
|
|
|
|
|
|
|
|
|
发表于 2026-8-25 05:59:04
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-8-26 10:43:58
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-8-28 02:11:29
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-8-29 17:39:00
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-8-31 00:39:11
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-9-1 03:25:42
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-9-1 22:18:43
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-9-3 08:24:55
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-9-4 02:27:12
|
显示全部楼层
|
|
|
|
|
|
|
|
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!