Online Judge 开发实例
本专栏从零开始介绍如何开发一个程序在线评测系统。以LPOJ为例。Demo:www.lpoj.cn
LP_Cong
Python, Qt C++ Developer ACMer https://github.com/Linzecong
展开
-
LPOJ 开发教程(一)引言
引言原创 2019-04-28 21:47:05 · 2350 阅读 · 0 评论 -
LPOJ 开发教程(二)程序在线评测系统架构
LPOJ网址:www.lpoj.cnLPOJ文档:docs.lpoj.cn以下摘自我的毕业论文什么是OJ测评机和测评服务器测评技术原创 2019-04-28 22:20:48 · 2381 阅读 · 2 评论 -
LPOJ 开发教程(三)部署OJ
LPOJ网址:www.lpoj.cnLPOJ文档:docs.lpoj.cn环境说明判题机需部署在Linux环境下!我使用的环境是:前端: Ubuntu 18.10 + Nginx后端: Ubuntu 18.10 + Python 3.7判题服务器: Ubuntu 18.10 + Python 3.7判题机: Ubuntu 18.10 + Python 3.7 (必须Linux系统...原创 2019-04-30 17:51:00 · 2079 阅读 · 0 评论 -
LPOJ 开发教程(四)Docker部署
LPOJ网址:www.lpoj.cnLPOJ文档:docs.lpoj.cn原创 2019-05-07 20:00:37 · 776 阅读 · 0 评论 -
LPOJ 开发教程(五)后端开发教程
LPOJ网址:www.lpoj.cnLPOJ文档:docs.lpoj.cn后端开发后端的开发比前端的开发要简单很多,因为开发者只需专注于数据的呈现即可,不必关心显示的逻辑。在众多后端框架中,我选择了开发和学习成本较低的Python语言中的Django框架,同时Python语言与我们的判题程序又相辅相成,因此是一个很好的选择。Django是一个开源的Web框架,整体采用MVC的设计模式。但是在...原创 2019-05-29 18:35:16 · 1929 阅读 · 0 评论 -
LPOJ 开发教程(六)前端开发
LPOJ网址:www.lpoj.cnLPOJ文档:docs.lpoj.cn本节主要介绍前端使用的技术,和如何二次开发本OJ前端开发Vue.js 介绍Vue.js是一个构建 Web 界面的成熟的渐进式框架。它的目标是通过尽可能简单的接口来实现响应式的数据绑定和组合的视图组件,然后再将这些组件组合起来。它不仅上手容易,而且还便于与第三方库或既有项目整合。本系统将采用它进行开发,而且学习起来非...原创 2019-05-30 22:34:28 · 1110 阅读 · 0 评论 -
LPOJ 开发教程(七)判题服务器开发
判题服务器开发判题服务器非常的简单,几乎无需做任何修改。采用TCP技术来通知判题机。架构详解测评模块仅提供了安全稳定的程序运行稳定,但是并不能判断程序是否通过,因此还要自己完成许多的逻辑工作。本系统的测评模块分为两部分,一部分是测评服务器,负责分发测评任务,另一部分是测评机,负责运行程序和提交测评结果。程序在运行过程中难免会消耗系统资源,如果只有一个判题程序在判题,如果判题时间较长,会导致后...原创 2019-06-22 21:55:47 · 1364 阅读 · 1 评论 -
LPOJ 开发教程(八)判题机开发
判题机开发测评机,测评机的功能就是进行判题,在收到判题服务器发送过来的判题消息后,会对该提交在沙盒中进行评测。具体过程如下图所示:测评机向数据库查询代码,将代码生成文件,然后编译。如果编译通过会进行程序运行。程序运行成功后,会将输出的文件和正确的输出文件进行比较,如果完全一致,则返回代码通过,否则不通过。同时将测试数据也一并截取保存到数据库中测评机安装安装过程结果解释WAITING...原创 2019-06-22 21:57:11 · 3356 阅读 · 3 评论 -
LPOJ 开发教程(九)实用工具
LPOJ网址:www.lpoj.cnLPOJ文档:docs.lpoj.cn其他工具CrawlingServer在管理员页面设置好爬虫信息后,可以启动爬虫机器人进行爬虫。主要可以爬取的信息是 各OJ做题数,博客,和近期比赛列表启动python main.py源码解析main.pyTools这个文件夹中,包含了各种实用的工具!查重脚本 duplication_checking...原创 2020-03-22 19:39:37 · 580 阅读 · 0 评论 -
LPOJ 开发教程(十)用户使用文档
LPOJ网址:www.lpoj.cnLPOJ文档:docs.lpoj.cn网站的基础使用这里会介绍一些常用的功能Status说明点击自己的提交可以看到错误信息和具体的每一个样例说明(前提是管理员设置了)Setting在右上角可以修改自己的密码Classes在右上角可以进入班级管理页面可以加入班级然后点击我的班级查看班级作业!比赛中功能比赛有很多功能,接下来一一介绍Clo...原创 2020-03-22 19:40:50 · 622 阅读 · 0 评论 -
LPOJ 开发教程(十一)模板题与Special Judge原理
LPOJ网址:www.lpoj.cnLPOJ文档:docs.lpoj.cn判题机功能说明Special Judge如果要使用Special Judge,请在提交数据的时候,把特判程序一同上传如果没有一同上传,判题机会把题目视为一般题目。如果上传了spj.cpp,无论你在添加题目时有没有把题目设置为spj,判题机都会认为是spj题目。特判程序命名为 spj.cpp所以你的数据文件夹内应...原创 2020-03-22 19:41:44 · 754 阅读 · 0 评论 -
LPOJ 开发教程(十二)结束语
LPOJ网址:www.lpoj.cnLPOJ文档:docs.lpoj.cn结束语现在LPOJ的版本是3.0,这个是一个稳定的版本,开发者已经毕业啦!所以也没有太多的时间去维护啦!从1月6日的第一个提交到现在已经将近半年的时间了,从1.0的啥功能都没有到现在3.0基本功能齐全,敲了多多少少十万行代码,这当中真的学到了许多。稍微总结一下,实际上就是让我了解了整个网站的开发过程,从后端到前端到运...原创 2019-06-22 22:20:25 · 675 阅读 · 3 评论