littlebot
Published on 2025-03-28 / 2 Visits
0

【源码】基于C语言的在线编程题评测系统

项目简介

本系统基于C语言开发,用于在线编程题目的评测、比较和分析,尤其适用于OI/ACM等编程竞赛的评测需求,能为用户提供资源限制、模块化架构、评测结果报告等功能,并保障评测过程的安全性。

项目的主要特性和功能

  1. 资源限制:运用rlimit、rusage和pthread等技术,对进程的时间、内存和输出大小等资源使用进行全面限制与监控。
  2. 模块化架构:采用模块化设计,易于扩展,支持传统题、交互题和任意命令的执行。
  3. 评测结果报告:提供详细的评测报告,涵盖运行时间、CPU使用情况、内存使用情况等信息。
  4. 安全性:借助沙箱机制确保评测过程安全,防止恶意代码损害系统。
  5. 可扩展性:支持自定义评测策略,管理员可按需设置不同评测规则。

安装使用步骤

  1. 环境准备:确保Linux系统已安装make(GNU Make)、flex(the fast lexical analyser generator)、ausyscall(a program that allows mapping syscall names and numbers)、clang系列命令、gengetopt。
  2. 编译项目:在项目根目录执行make all进行编译。
  3. (可选)安装为系统命令:执行sudo make install
  4. 运行评测:使用yaoj-judger命令进行评测,具体使用方法可通过./yaoj-judger --detailed-help查看。
  5. 自定义配置:根据需求修改评测策略和资源限制配置,配置文件位于src/builtin_policy目录。

注意事项

  • 本项目仅支持在x86_64架构上运行。
  • 编译时,链接库文件需注意顺序,通常将-lyjudger放在最前面。
  • 更多使用方法和测试示例可参考tests/目录下的内容。

下载地址

点击下载 【提取码: 4003】