Skip to content
lanrongqi edited this page Dec 24, 2020 · 2 revisions

目录说明

题目工作目录说明

题目的工作目录,以配置文件所在的目录为根目录。推荐你按照以下格式建立题目,也可以用init命令直接生成:

.
├── answers                   # 存放题目的参考答案代码
│   └── answer.c
│   └── ...
├── bin                       # 存放题目的二进制编译文件,无须手动存放内容
│   ├── checker
│   ├── g_echo
│   └── validator
├── cases                     # 存放题目的测试数据,判题机规定每个测试样例都必须有in和out文件
│   ├── 0.in
│   ├── 0.out
├── codes                     # 存放题目的工作源代码,比如testlib的chekcer、interactor和validator等
│   ├── checker.cpp
│   └── validator.cpp
├── generators                # 存放testlib的generator源代码
│   └── echo.cpp
└── problem.json              # 题目的配置文件

项目目录说明

.
├── client
│   ├── generate.go         # generate命令入口文件
│   ├── package.go          # package命令入口文件
│   ├── packmgr             # 提供problem和package命令的代码
│   │   ├── checker.go
│   │   ├── compile.go
│   │   ├── generator.go
│   │   ├── package.go
│   │   └── validator.go
│   ├── problem.go          # problem命令入口文件
│   ├── run                 # 提供run命令的代码
│   │   ├── benchmark.go
│   │   ├── common.go
│   │   ├── judge.go
│   │   └── main.go
│   ├── run.go              # run命令入口文件
│   └── test.go
├── data
│   ├── codes               # 测试用的被测代码
│   │   ├── APlusB
│   │   ├── WJ2012
│   │   ├── WJ2018
│   │   └── hello.c
│   ├── problems            # 题目配置
│   │   ├── APlusB
│   │   ├── APlusB2
│   │   ├── WJ2012
│   │   └── WJ2018
├── executor                # 判题内核代码
│   ├── analysis.go         # 进程分析
│   ├── checker.go          # 答案比对
│   ├── compile.go          # 编译代码
│   ├── dispatch.go         # 评测调度
│   ├── runtime.go          # 进程调度
│   ├── structs.go
│   └── utils.go
├── lib                     # lib文件夹,存放testlib
│   ├── bits
│   │   └── stdc++.h
│   └── testlib.h
│   └── example							# 生成题目数据的模板,题包文件
│   │   └── a+b							
├── main.go                 # 主程序入口
└── test                    # 单元测试
    ├── a_plus_b_test.go
    ├── language_test.go
    ├── util.go
    ├── wj2012_test.go
    └── wj2018_test.go

Clone this wiki locally