用来实现OJ判题的windows批处理

HOJ项目部署(Windows版) 文章详细介绍一种HOJ纯windows部署方式,无需docker、服务器等 阅读详情

JAVA WEB的大作业想做一个简单的OJ,首先要实现的是拿到一份源代码后怎么去编译,获取编译错误信息,然后在时间限制内运行得到答案,最后比较答案和标准输出是否一致.我用的是windows的批处理程序,到时候用java调用这个程序得到结果.

第一步:

在d盘下建一个叫onlinejudge的文件夹,然后在这个文件夹下建5个文档,分别是a.cpp,answer.txt,in.txt,result.txt,time.txt,分别用来储存源程序,标准输出,输入,程序结果代码(0->AC,1->WA,2->TLE,3->RE,4->CE,TLE和PE还不知道怎么搞),程序运行时间,再建一个文件夹叫result.

第二步:

写一个command.bat的批处理程序,内容是

xcopy /y d:\onlinejudge\a.cpp d:\onlinejudge\result
xcopy /y d:\onlinejudge\in.txt d:\onlinejudge\result
xcopy /y d:\onlinejudge\answer.txt d:\onlinejudge\result
cd /d d:\onlinejudge\result
g++ a.cpp
if not exist a.exe (
	g++ a.cpp>error.txt 2>&1
	echo 4 >result.txt
	xcopy /y d:\onlinejudge\result\result.txt d:\onlinejudge
	del /f /s /q d:\onlinejudge\result
	exit
)
set /a start_time=(1%time:~9,2%-100)*10+(1%time:~6,2%-100)*1000
start d:/tmp.bat
type in.txt|a.exe >out.txt
set /a end_time=(1%time:~9,2%-100)*10+(1%time:~6,2%-100)*1000
set /a used_time=%end_time%-%start_time%
if %errorlevel% NEQ 0 (
	if %errorlevel% EQU 1 (echo 2 >result.txt) else (echo 3 >result.txt)
	echo %used_time% > time.txt
	xcopy /y d:\onlinejudge\result\result.txt d:\onlinejudge
	xcopy /y d:\onlinejudge\result\time.txt d:\onlinejudge
	del /f /s /q d:\onlinejudge\result
	exit
)
fc answer.txt out.txt
if %errorlevel% EQU 0 (echo 0 >result.txt) else (echo 1 >result.txt)
echo %used_time% > time.txt
xcopy /y d:\onlinejudge\result\time.txt d:\onlinejudge
xcopy /y d:\onlinejudge\result\result.txt d:\onlinejudge
del /f /s /q d:\onlinejudge\result
exit
还有一个tmp.bat用来控制时间的

echo off
cd /d d:/onlinejudge/result
choice /t 1 /d y /n >nul
tasklist /nh|find /i "a.exe"
if errorlevel 1 (echo success) else (taskkill /f /im a.exe)
exit

第三步:

java程序往a.cpp里写程序,再调用command.bat,然后读取result.txt和time.txt的值就可以了.

判题机(go-judge)环境搭建与实现 go-judge环境搭建与实现。OJ判题机的简单使用。 阅读详情

相关推荐

保姆级教程:在Windows/Mac上本地搭建SWUST OJ环境并调试99号Euclid‘s Game

本文提供了一份详细的教程,指导读者在Windows和Mac系统上本地搭建SWUST OJ环境,并以Euclid's Game为例,掌握C++调试的核心技巧。通过配置开发工具链、工程化改造算法代码、设置断点和设计测试用例,帮助开发者深入理解算法原理并提升调试效率。

weixin_30336061的博客 439

HUSTOJ的Windows版评判内核(一)

HUSTOJ的Windows版评判内核(一) 作者:游蓝海 个人主页:http://blog.youkuaiyun.com/you_lan_hai   2013.4.9 注:最新版本项目地址:https://github.com/NsLib/FreeJudger。新版FreeJudger,跟我之前写的这个已经完全不一样了,之前的这个废除。虽然现在工作忙,但我们会继续开发FreeJudger,直到功

游蓝海 的专栏 9269

基于windows的OJ系统判题核心-已编译成功

基于windows的OJ系统判题核心(FreeJudger)-已编译成功,点击debug中的FreeJudger.exe即可正常运行,亲测在win10系统下可以运行,下载之后一定要看说明

hustoj安装过程

如何在windows装hustoj,如张老师所说分两步走,第一步,把windows换成ubuntu;第二步,在ubuntu执行。 一、首先实现Ubuntu的搭建: 1.下载Ubuntu镜像文件和easybcd软件 Ubuntu镜像文件在Ubuntu官网下载即可,版本16.10(64位) easybcd软件下载地址:链接:...

weixin_34324081的博客 683

用于实现OJ后台的Windows批处理程序

此程序的功能是,自动编译链接C/C++源代码,在时间限制内运行程序并比较程序输出和标准输出是否一致.

在线评测系统、oj系统安装

oj系统安装过程,所有命令需要手打,发出来仅仅是为了大家一起讨论,一起进步,如有侵权,请及时通知我,我会立刻将文件删除,敬请谅解,!

C++开源跨平台OJ系统判题核心—— FreeJudger(一)

C++开源跨平台OJ系统判题核心—— FreeJudger By 马冬亮(凝霜  Loki) 一个人的战争(http://blog.youkuaiyun.com/MDL13412) 项目背景 本项目是为作者所在学校搭建OJ系统时衍生出来的一个项目,由于我的学弟、学妹们对Linux系统不熟悉,为了我们这批人毕业了以后,有人能维护OJ系统,因此选用了可以运行在Windows平台的开源OJ系统。

一个人的战争 1万+

Linux内核模块开发实战指南(2025版)

2025年Linux内核模块开发迎来革命性突破!本文将从零开始手把手教你构建可动态加载的AI加速驱动模块,揭秘最新内核特性与开发技巧,更包含独家性能调优方案与跨架构移植秘籍。文末附赠价值百万的调试脚本,助你轻松突破开发瓶颈!

资深全栈架构师,乐于在 优快云 分享技术见解,与大家携手共进,共攀技术巅峰! 1807

洛谷P1914题解——(本地测试AC但是交题爆零全WA)使用getchar();

本题最大的坑在于: windows环境下的换行符为\r\n,linux环境的换行符为\n. 我们再来看看洛谷的部分OJ判题机数据和机制 常见“我在本地/xxOJ AC了、洛谷却不过”的原因 Linux中换行符是’\n’而Windows中是’\r\n’(多一个字符),有些数据在Windows中生成,而在洛谷评测机Linux环境下评测。这种情况在字符串输入中非常常见。 来源帮助-洛谷 所以我们要用...

Charles Liu 4795

pdf.js 移动端手势缩放功能实现与原生事件集成

本文详细解析了如何为pdf.js的viewer.html移动端页面实现流畅的双指捏合手势缩放功能。通过深入分析pdf.js的缩放机制,并利用原生触摸事件(touchstart、touchmove、touchend)进行集成,在不修改核心源码的前提下,为用户提供媲美原生应用的顺滑缩放体验,有效提升了移动端PDF阅读的专业性和用户满意度。

brandy的博客 488

机器学习系列(1)_逻辑回归初步

1、总述 逻辑回归是应用非常广泛的一个分类机器学习算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成对事件发生的概率进行预测。 2、由来     要说逻辑回归,我们得追溯到线性回归,想必大家对线性回归都有一定的了解,即对于多维空间中存在的样本点,我们用特征的线性组合去拟合空间中点的分布和轨迹。如下图所示:     线性回归能对连续值结果进行预测,

寒小阳 13万+

C++在线OJ负载均衡实战:从单体架构到高可用集群的设计与实现

负载均衡是构建高并发、高可用后端服务的核心技术,其核心原理在于将用户请求智能分发到多个后端服务器,以提升系统整体吞吐量和容错能力。在工程实践中,负载均衡技术能有效解决单点性能瓶颈,是实现服务弹性伸缩的关键。对于在线评测系统这类计算密集型、有状态且对实时性要求高的应用场景,通用的负载均衡器往往难以满足其细粒度的资源调度和业务协议需求。本文深入探讨了如何为C++在线OJ系统自研一个专用的负载均衡调度中心,通过实时收集判题服务器的CPU、内存及队列长度等负载指标,并基于最小负载优先等策略进行动态任务分发。项目采用

weixin_30340819的博客 437

(35)远程识别(又称无人机识别)(一)

Ardupilot官网关于《Peripheral Hardware》的翻译 —《(35) 远程识别(又称无人机识别)》。

无人机开发(开源Ardupilot) 4万+

OJhelper一款帮助你获取各大oj信息的软件

目前应用支持:查询、自定义、收藏各大oj比赛信息,跳转比赛界面。查询各大oj的Rating分以及题量,查看题量饼状图。

2301_79199219的博客 1807

airodump-ng、aircrack-ng使用教程

wifi破解、airodump-ng、aircrack-ng脚本

ssmbyss的博客 2231

国内网络环境下Calico v3.26.4安装避坑指南(附华为云镜像加速脚本)

本文为国内开发者提供Calico v3.26.4的高效部署指南,重点介绍如何通过华为云镜像加速服务解决Kubernetes集群网络插件镜像拉取问题。文章包含详细的镜像加速脚本、部署清单修改方法及深度排错技巧,帮助开发者快速完成Calico网络插件的安装与配置。

brown的博客 288

Windows——powershell批处理(io校验)

在刷题时,时常回想,OJ平台是如何校验竞赛队员提交的代码的,OJ平台并不看代码,而是使用“黑盒测试”,用测试数据来验证。对于每题,都事先设定了很多组输入数据(datain)和输出数据(dataout),OJ主要是看输入datain,看产生的输出是否与dataout一致。如果需要一次性知道自己的所有测试输入数据是否能得到正确输出,一个一个测试就太慢了,批处理操作就能很好解决这个问题。本篇文章主要介绍一下这个ioCode小项目,主要用于批处理校验输入输出,搭建本地的评测平台。

2401_82484471的博客 1291

Spring AI Alibaba Agent开发实战:DeepResearch Agent调度系统

智能Agent调度系统通过专业化分工解决传统AI系统的三大痛点:通用模型专业性不足、处理效率低下和资源浪费。系统采用分层架构设计,核心组件包括智能调度器、Agent选择辅助器和集成工具类,实现问题分类、专业Agent匹配和搜索策略优化的全流程自动化。系统特点包括:1)配置驱动的灵活扩展;2)分层回退的容错机制;3)支持工具调用与传统搜索的智能切换。该架构通过策略模式和依赖注入等技术,在保证稳定性的同时显著提升了研究质量和效率,为企业级多Agent协作提供了完整解决方案。(149字)

wjianwei666的专栏 501

C++开源跨平台OJ系统判题核心FreeJudger(二)——logger设计

C++开源跨平台OJ系统判题核心FreeJudger(二)——logger设计 By 马冬亮(凝霜  Loki) 一个人的战争(http://blog.youkuaiyun.com/MDL13412) 前言 日志库在中等规模以上程序中的重要意义不必多说,特别在一些并行程序中,其起着“调试器”的作用。现在开源的日志库很多,下面列举其中一些著名的项目,并分析其特点: 由于

一个人的战争 5556

【ComfyUI】Wan2.2 + IndexTTS 图像数字人或动物口播视频生成

本文介绍了一个基于ComfyUI的数字人口播视频生成工作流,整合了IndexTTS和图像处理技术。该系统通过多模型协同工作,实现从形象图、文本和音频输入到自动生成口播视频的全流程。核心包含WanVideo系列模型,通过CLIP Vision、T5文本编码器和Wav2Vec语音模型分别处理视觉特征、语义理解和口型同步。工作流涵盖素材加载、特征提取、音频处理和视频生成等节点,支持人物、动物等多种主体的口播内容创作。该方案自动化程度高,适用于知识讲解、剧情旁白等多种场景,能帮助创作者高效产出高质量口播视频。

Mr数据杨 2050

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

东华OJ13-17题解析:算法与数据结构实战指南

算法与数据结构是计算机科学的核心基础,其原理与应用贯穿编程实践始终。从基础的数组操作到排序查找算法,这些技术构建了解决实际问题的通用框架。在编程竞赛和算法训练中,矩阵运算、二分查找等经典问题能有效锻炼逻辑思维与工程实现能力。东华OJ13-17题系列通过阶梯式设计,系统覆盖输入输出处理、数组应用、排序算法等关键知识点,特别适合作为算法入门的实践案例。通过调试技巧与性能优化方法的结合,开发者可以深入理解时间复杂度分析与空间效率优化的工程实践价值。

weixin_30615767的博客 400

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ACM题目中关于数据的生成以及OJ上Linux和Windows里回车和换行的处理

ACM题目中关于数据的生成以及OJ上Linux和Windows里回车和换行的处理 前言:都是一些浅层的理解,求各位大佬轻喷。 基本的随机数生成 一个好的题目需要有强大的数据来支撑,数据一般由两部分组成,一是边界数据,二是随机数据。对于前者,可能需要手写数据来生成,而后者可以借助rand()函数一次性生成多组随机数据。 因为rand()函数的内部是利用线性同余法实现的,周期较长导致随机性并不强,所以需要在main开始时借助srand()函数设置随机数种子,增强随机性。 代码: srand(time(0));

我们都有光明的未来 800

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OJ搭建详细

学校ACM部需要一个比赛的平台~于是找到hustoj架设方法如下:资料来源于:https://code.google.com/p/hustoj/wiki/ HUST JOL安装说明 by zhblue(newsclan@gmail.com) 方法二选一 1、下载安装程序 debian/ubuntu用户:sudo ap...

weixin_34212189的博客 317

Sublime Text3 配置C++(附oj刷题常用模板)

下载对应平台的sublime sublime最新版下载, 字体样式个人喜欢Consolas, 另附注册码: —– BEGIN LICENSE —– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA12C0 A37081C5 D0316412 4584D13

Sshpark的博客 1096

OJ在线评测系统 原生Java代码沙箱核心实现流程三 整理封装输出结果 拿到程序执行时间(stopwatch类) 和 运行内存

我们在之前的操作中已经拿到程序进行了编译和运行接下来我们要将我们的结果输出整理输出。这边使用的是spring的stopwatch类 来获取一段程序的执行时间接下来我们尝试去获得运行内存 这个非常麻烦 要借助第三方库 我们可以用windows自带的一个程序去计算 此处我们使用最大值来统计时间 便于后续判题服务计算程序是否超时

多多的博客 7万+
上一篇: 大视野1195: [HNOI2006]最短母串
下一篇: 大视野1079: [SCOI2008]着色方案
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值