用来实现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万+

Halcon像素比例标定(误差大)-相机标定

一种简易标定: 像素比例标定,如果需要精确一些则需要在高度和宽度上都需要计算,然后求出比例系数。需要高精度标定板和相机,以及多次标定才能达到稳定的状态,这种标定简单,但是误差大。 read_image (Img0008, 'D:/00项目代码/000视觉软件/02Halocn算法20190501/04测量20190424/07_比例计算测量标定/IMG0008.jpg') rgb1_to_...

SSSS的博客 3984

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

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

Charles Liu 4795

灰度重心法实战:从原理到MATLAB代码实现激光条纹中心线提取

本文详细介绍了激光条纹中心线提取的核心方法——灰度重心法。通过物理类比阐释其原理,并提供从图像预处理到MATLAB代码实现的完整实战教程。文章重点解析了算法流程、关键参数调整及常见问题避坑指南,帮助读者快速掌握这一机器视觉与三维测量中的基础且高效的技术。

cake8的博客 459

极路由 极1s J1S hc5661 刷padavan固件

极路由1S刷机指南 准备工作: 下载Breed不死固件 通过WinSCP上传或直接wget获取 执行mtd命令写入Breed 关键步骤: 进入Breed控制台(按住Reset键开机) 备份原厂固件和密钥 下载Padavan固件(RT-N14U-GPIO-12-xiaodu-ji1S-128M.trx) 刷机过程: 在Breed控制台更新固件 等待自动重启完成 初始设置: 管理地址:192.168.123.1 默认账号:admin/admin 无线名称:PCDN 无线密码:1234567890 注意事项:切勿

SimonLiu的博客 1302

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

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

weixin_30340819的博客 437

对称加密中GCM和CBC俩种加密模式的区别

**CBC(Cipher Block Chaining)** 和 **GCM(Galois/Counter Mode)** 是两种常见的对称加密模式。它们的主要区别体现在加密方式、性能和安全性上。

闲人 1107

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

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

2301_79199219的博客 1807

如何对TBSS的结果进行统计学的分析,已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析??

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1439

SAP BOM批量反查代码分享

SAP BOM反查批量查询代码分享

我小时候很黑的博客 4967

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

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

2401_82484471的博客 1291

uni-app开发-第6篇:uni-app 样式与主题

在 uni-app 开发中,样式与主题的管理是关键部分。样式分为全局样式和局部样式,全局样式在 App.vue 中定义,适用于整个应用,而局部样式在单个 .vue 文件中定义,仅对当前页面生效。局部样式优先级高于全局样式,内联样式优先级最高。样式属性如 font-family 和 color 可被子元素继承。要覆盖全局样式,可在局部样式中重新定义相同规则。主题切换通过 CSS 变量和类名实现,动态切换主题可通过修改元素的类名来完成。例如,定义浅色和深色主题,并通过按钮点击切换主题样式。这些方法帮助开发者灵活

无 369

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

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

一个人的战争 5556

Android Input——输入系统介绍(一)

Input 系统对于提供流畅、灵敏和一致的用户交互体验至关重要,它需要在不同的设备、场景和应用中保证输入事件的正确性、及时性和安全性。Android 输入系统是一个复杂但高效的设计,旨在处理来自各种输入设备(如触摸屏、键盘等)的用户交互,并将这些交互转换为应用程序可以理解和响应的形式。EventHub:输入系统的最底层,直接与硬件通信,监听和读取输入设备的原始事件。:从 EventHub 获取原始输入事件,对其进行解析,转化为更高层次的事件,以便上层应用或服务能够理解。

小旭的专栏 1710

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

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

weixin_30615767的博客 400

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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

我们都有光明的未来 800

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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、付费专栏及课程。

余额充值