2023年11月29日发(作者:)
ACM在线判题系统(OJ)的判题实现(java+python)
学院⼀直是有⼀个⾃⼰的oj的,但是由于最近判题崩了,需要修复⼀下,拿到判题代码,打开却是⼀⼿,让我⼀个搞Java的
着实懵逼,因为以前学过点js,摸清判题逻辑,⼀步⼀步来调bug,最后还是太复杂,把⼼态调崩了。最后想了了想判题就是那
个流程,还是⾃⼰写⼀个吧,⽽且以前的判题只⽀持python2,现在谁要⽤python2啊。
好吧,直接开始开发:判题需要⼏个步骤:
1.在linux搭建编译器环境:gcc g++ java python2 python3 pascal
2.根据源码的类型创建相应的源⽂件(.c .cpp .java 等)
3.编译对应的源⽂件
4.运⾏程序,使⽤测试⽤例测试得出时间消耗和内存消耗。
这⾥最棘⼿的还是第四步:怎么知道内存和时间消耗?我再⽹上不断的查资料,后来发现⼏乎没有,找了很久找到⼀个前辈有⼀篇开
发oj的博客,纯⽤python写的。由于⾃⼰对于python仅仅是⼊门语法,纯⽤python开发对于我来讲确实有点难度。但是思路是可以借鉴
import sys
if __name__ == '__main__':
if len() != 6:
print('Usage:%s srcfile testdata_pth testdata_total'%len())
}
}
}
}
@Data
@AllArgsConstructor
@Log4j
private static String complie(int compilerId, String path) {
/**
* '1': 'gcc','g++', '3': 'java', '4': 'pascal', '5': 'python',
@Log4j


发布评论