本地 OI 评测工具

OJJudge 评测软件
一个目录,一键出分

把「编译 → 跑数据 → 比对输出 → 出分」整个流程自动化:单题评测、多题批量、对拍找 bug、随机数据生成,一个 exe 全包。数据不出本机。

v1.8 · 2026-10-24 · Windows 单文件免安装 · 需本机 g++(默认 C:\mingw64\bin\g++.exe,可改)
macOS / Linux 用户:下载源码版(需 Python 3 + clang++/g++)
SHA256 7934ab28…57d 复制完整校验值

界面示意 · 实际运行截图

九大功能,覆盖本地评测全流程

从写完代码到确认正确,中间的所有步骤都在一个窗口里完成。

单题评测

一个源码 + 一个数据目录,一键列出每组 AC / WA / TLE / 无输出、得分、用时、期望与实际输出。

多题评测

一次添加多道题批量跑,结果按题分组汇总;单题出错不中断后续,最后统一出总分。

对拍找 bug

主程序 vs 暴力/标程,随机数据逐轮比对;遇到分歧不中断,跑完全部轮一次性列出所有问题组。

造数据

用自己写的生成器批量产出 .in 与 .out,想控数据内容时用它。

随机数据

不会写生成器?填输入格式、范围、数量即可;附 AC 代码则顺带跑出 .out,留空只出 .in。

评测记录

单题 / 多题 / 对拍 / 造数据每次运行自动保存,软件内可回看历史,内置改动日志。

多编程语言

C++ / Python / Java 一键切换:g++ 编译、解释器直跑、javac + java 编译运行,选「浏览」时按扩展名自动识别。单题、多题、对拍、造数据全流程通用。

网页版也支持多语言

官网「对拍实验室」新增语言按钮:JavaScript 在浏览器内跑,C++ / Python / Java 走服务端真编译器,随机数据生成始终在本地浏览器,与桌面版行为一致。

中文 / English

底栏一键切换界面语言:标签页、按钮、表头、分区标题、状态提示整体切换,切回中文完全还原。

两种写法,都支持

不管你的题解是文件读写还是标准输入输出,直接丢进来就能测。

freopen 文件读写 传统 OJ 写法

程序用 freopen 读写固定文件名,评测时把每组数据复制为 <题名>.in,跑完拿写出的 <题名>.out 与期望比对。

freopen("calendar.in", "r", stdin);
freopen("calendar.out", "w", stdout);

cin / cout 标准输入输出 洛谷 / tarjano 写法

程序从 stdin 读、往 stdout 写。评测时自动把该组 .in 喂给程序,再捕获标准输出与期望比对。

cin >> n;
cout << ans << "\n";

两种写法同时存在时,优先采用程序写出的 <题名>.out;数据目录放 *.in 与同名 .out(优先)/ .ans 期望输出。

三步开始评测

下载并运行

下载 OJJudge评测.exe,双击即用,无需安装、无需 Python 环境。

准备数据目录

建一个文件夹,放入 *.in 输入和同名 .out / .ans 期望输出。

开始评测

选源码、选数据目录,点「开始评测」,逐组结果与总分立刻呈现。

软件实机截图

以下截图取自真实运行环境(Windows 11 + Edge),未做任何修饰。

OJJudge 软件主界面:顶部为单题、多题、对拍、造数据、随机数据、记录六个标签页,中部为源码与数据目录选择,下部为评测结果表格
主界面 · 单题评测:顶部六大功能标签,中部选择源码与数据目录,下部逐组列出状态、得分、用时、期望与实际
Edge 下载面板提示通常不会下载 OJJudge评测.exe,请在打开前确保信任
① 下载后面板提示「通常不会下载」——未签名 exe 的正常拦截
下载条目更多菜单,选择保留
② 点条目右侧「···」→「保留」,文件留在下载目录
Windows Defender SmartScreen 弹窗:Windows 已保护你的电脑,阻止了无法识别的应用启动,右下角为不运行按钮
③ 双击运行弹出 SmartScreen「Windows 已保护你的电脑」——未签名软件的正常提示
SmartScreen 详情页:应用 OJJudge评测.exe 发布者未知,点更多信息后出现仍要运行按钮
④ 点「更多信息」展开详情(应用:OJJudge评测.exe)→ 选「仍要运行」即可打开

常见问题

结果显示「无输出」怎么办?
确认程序确实有产出:freopen 写法请检查输出文件名是 <题名>.out(与源码同名);cin/cout 写法会被自动捕获。两者都没输出时才会判「无输出」。
结果显示「CE」?
编译失败,结果里会带上 g++ 的原始报错信息,按提示改源码即可。默认标准为 C++14,可在界面调整。
提示找不到编译器?
在界面「编译器」一栏填你本机 g++ 的完整路径,例如 C:\mingw64\bin\g++.exe,保存后长期生效。若本机还没有 g++,先下载 MinGW-w64 环境 并解压到 C:\mingw64。
评测会弄脏我的数据目录吗?
不会。评测临时文件(<题名>.in / <题名>.out)只产生在数据目录内,每次评测结束自动清理,不影响原始数据。
macOS / Linux 能用吗?
可以,用源码版:下载源码包后,需要本机 Python 3 和 C++ 编译器,运行 python3 ojjudge.py,并在界面把编译器路径改成 clang++(macOS)或 g++(Linux)。注意 Python 必须自带 tkinter(python.org 官方版有;报 No module named 'tkinter' 就换官方版,或用 exe)。完整步骤见使用说明 · macOS/Linux 源码版。
对拍时三个程序都要用标准输入输出吗?
是。生成器写 stdout,主程序与暴力/标程读 stdin 写 stdout。如果原程序用了 freopen 固定文件名,请先改成标准输入输出再对拍。

对拍实验室 · 实时预览

不用下载也能玩:浏览器里直接对拍,和桌面版「载入挑战」同源。选一个挑战,点「开始对拍」看埋好的 bug 现形。

上方为实时运行的网页版对拍实验室 · 打开完整页面

现在下载,下次写题直接一键出分

三个平台按需选择:Windows 开箱即用,macOS / Linux 用源码版。

WINDOWS OJJudge评测.exe

v1.8 · 12.29 MB · 单文件免安装

下载 exe
MACOS 源码版

33.2 KB · 需 Python 3 + clang++

下载源码包
LINUX 源码版

33.2 KB · 需 Python 3 + g++

下载源码包

Windows 没装 g++?下载 MinGW-w64 环境(解压到 C:\mingw64 即对应默认路径)
macOS 与 Linux 为同一源码包(Python 3 + tkinter,无第三方依赖),配置步骤见使用说明
校验值 · exe 7934ab28…57d(复制) | zip e02cf0db…9bef(复制)