项目简介
在线判题系统(Online Judge,简称OJ)用于在线评测编程题目代码。用户能选择题目、在线做题、编写并提交代码,系统会对提交代码进行编译、执行和评测,依据出题人预设答案判断结果是否正确。该系统的关键难点在于判题系统的设计与实现。
项目的主要特性和功能
核心功能
- 题目管理:管理员可创建、删除、修改题目;用户能搜索题目、在线做题并提交代码。
- 用户管理:管理员可进行用户注册、登录及管理操作。
- 判题系统:能提交判题,处理错误(如内存溢出、安全性、超时),有代码沙箱和开放接口。
- 判题规则:包括普通测评(管理员设置输入输出用例比对)、特殊测评(SPJ,用户答案>0或<2为正确)、交互测评(用户输入例子得输出结果)。
- 系统安全性:防止用户引入包、遍历、暴力破解,判题过程异步化,提交后生成含运行结果和信息的记录。
扩展功能
- 支持多种语言。
- 具备Remote Judge功能。
- 有完善评测功能,如普通测评、特殊测评、交互测评、在线自测、子任务分组评测、文件。
- 可统计分析用户判题记录。
- 有权限校验。
安装使用步骤
环境准备
- 确保安装JDK 11或更高版本的Java开发环境。
- 安装并配置MySQL数据库。
- 安装Node.js和Vue CLI的前端环境。
后端安装与配置
- 复制项目。
- 在
application.properties
文件中配置数据库连接信息:properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database spring.datasource.username=your_username spring.datasource.password=your_password
- 启动后端服务:
bash cd your-oj-project mvn spring-boot:run
前端安装与配置
- 进入前端目录:
bash cd your-oj-project/frontend
- 安装依赖:
bash npm install
- 启动前端服务:
bash npm run serve
访问系统
- 打开浏览器,访问
http://localhost:8080
。 - 注册新用户或使用已有账户登录。
- 在题目列表中选择一个题目进行练习。
- 编写代码并提交,系统会自动进行判题并返回结果。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】