[COGS] 编写评测插件

王者自由 在 2012-04-07 创建  开放分组:全部用户  上次编辑时间:2023-07-15 页面访问次数:426次

方法1:编写spj.c/cpp/cc/pas/pp,放置在测试数据目录下随测试数据一同上传(推荐),spj的返回值(0到100之间整数)表示该测试点得分。

方法2:使用Cena格式的评测插件cena.c/cpp/cc/pas/pp,放置在测试数据目录下随测试数据一同上传。

方法3:使用plugin.php评测插件,放置在测试数据目录下随测试数据一同上传,此插件在找不到上述插件时才会使用,返回0~1之间的一个实数表示得分。

所有判定的执行都是自动的。

例如,对题目BPlusA使用评测插件:

// C风格
#include <stdio.h>

int main(int argc, char* argv[]) 
{
    FILE *fin = fopen(argv[1],"r");//题目的读入文件
    FILE *fout = fopen(argv[2],"r");//选手的输出文件
    FILE *fans = fopen(argv[3],"r");//题目的输出文件
    int n, a, b;
    fscanf(fin, "%d", &n);
    fscanf(fout, "%d%d", &a, &b);
    if(a + b != n)
        return 0;
    fclose(fin);    
    fclose(fout);
    fclose(fans);
    return 100;
}
// C++风格
#include <fstream>
using namespace std;

int main(int argc, char* argv[])
{
    ifstream fin(argv[1]);//题目的读入文件
    ifstream fout(argv[2]);//选手的输出文件
    ifstream fans(argv[3]);//题目的输出文件
    int n, a, b;
    fin >> n;
    fout >> a >> b;
    if(a + b != n)
        return 0;
    fin.close();
    fout.close();
    fans.close();
    return 100;
}