Arbiter系统使用说明Arbiter系统(以下简称系统)分为网络版和单机版两个部分。单机版不带网络功能,需要把选手的答案拷贝到评测机指定目录下统一评测单机版使用说明快速指南详细的说明文档见后面的说明,如果你想快速上手,又不想花太多的时间看后面的详细说明,那么就先看快速指南,以配置一场考试为例来说明单机版的使用。本场考试只有一个题,标题很经典,叫“打印字符”,要求把从输入文件读到的字符输出到输出文件,2个测试点,时间限制1秒。要求选手提交源代码,程序的基本名称就叫pchar先准备好标准答案和选手所需要的输入文件,这个题由于基本名称叫Hello,1个测试点必须对应1个输入文件和1个答案问件,本题有2个测试点,所以输入文件有2个,名为pchar1.in,pchar2.in,答案文件名为pchar1.ans,pchar2.ans也就是标准答案.测试点的含义就是用让选手的程序从输入文件读入1组数据,把结果输出到标准文件,然后把选手的输出和答案文件对比,由评测程序来判断选手在这个测试点的得分。评测程序在以前的版本中也叫评测插件如果你还不知道什么叫输入文件,什么叫答案文件,那么下面给出一个简单的解释:一个题可能有很多个测试点,每个测试点都需要有一个输入文件,给选手提供需要读取的信息(文件名为”程序基本名X.in”,X表示是第几个测试点),选手程序根据读取的信息把运算结果写入到输出文件中(文件名为“程序基本名.out”,如本题选手的输出文件就叫”pchar.out”),把选手的输出文件和答案文件(文件名为”程序基本名X..ans”,X表示是第几个测试点)对比,用来对比的程序叫”评测插件”,由这个程序给出的分数就是选手在这个测试点所得到的分数.简单的讲,就是对选手的程序,给出多个输入数据,把每个输出数据和对应的答案数据对比,以此判断选手程序的正误,测试点越多判断也就越精确。选手答题的时候,认为输入文件就叫程序基本名称.in,把结果写在程序基本名称.out中。评测系统在评测时会自动改变修改文件名,不管测试点有多少,选手程序只认为有1个输入文件,1个输出文件就行了进入Arbiter系统所在目录,运行./arbiter即可以运行系统,初始界面如下图选择文件新建比赛,可以看到以下界面选择”单机考试”,选择存储考试的目录,然后点“确定”,可以进入配置界面注意到“试题概要”区有大片的空白,在空白区单击右键,可以添加一天的比赛,在比赛名上点击右键,添加一道试题,默认试题标题名叫”unknow”,点击试题标题,就可以在右边的“详细信息”区可以配置相应的信息按照下图配置好“你好,世界”这个题,标题叫“打印字符”,基本名:pchar,提交方式:源文件,测试点数量:2,时间限制:1,允许使用的语言:都勾上,评测方式:字符串比较---单字符串行比较,编译选项都不填。之后进入选手管理页面,单击“添加”按键可以添加选手,添加2个选手,姓名和编号分别为star(AH-01),moon(GD-01),添加之后如下图所示,如果输入有误可以单击”删除”按键删除指定选手.“所属”项会自动添上,所属项信息没有意义,不影响评测结果在菜单栏中选择文件—保存,把刚才的配置信息都保存下来。我们准备好答案以后就可以开始评测了。每个选手的答案都必须存储在“答案存储目录”项提示的目录下.这个目录需要自行创建。以上star选手的答案如下,文件名是pchar.cstar答案如下,代表是正确答案#includestdio.h#includestdlib.h#defineINFILEpchar.in#defineOUTFILEpchar.out/*不管几个测试点,选手程序都只从以上文件读输入,写输出*/intmain(){FILE*fpin,*fpout;charc;fpin=fopen(INFILE,r);fpout=fopen(OUTFILE,w);if(!fpin||!fpout){perror(NULL);exit(1);}while((c=getc(fpin))!=EOF){putc(c,fpout);}fclose(fpin);fclose(fpout);return0;}monn随便提交个错误答案在每个选手存放答案的目录下再建个叫pchar(和试题基本名相同)的子目录,把他们的答案文件都放到那个目录下去把事先准备好的pchar1.in,pchar1.ans,pchar2.in,pchar2.ans都放到“比赛存储目录/evaldata”这个目录下,保证pchar1.inpchar1.ans内容一致,pchar2.in,pchar2.ans内容一致即可准备工作完成了,下面在“选手管理”页面,确定左上角那个“需要评测第X天的比赛”选项的地方,选择的是第“1”天,然后勾选需要评测的选手,点击“评测选定选手”键,出现的画面如下图所示点击确定,评测进度条显示当前评测选手的评测进度,某个评测完成以后“是否已评测”这个表项会变成绿灯,如下图所示等评测完所有选手,就可以进入“成绩统计”页面在表上勾选需要统计成绩的选手,然后点击“更新成绩图表”,可以看到成绩统计,选择“打印指定选手成绩”打印每个选手的成绩单,选择“打印总成绩”打印成绩总表,点击这两个键都可以选择打印到文件或是打印机。如果选择打印到文件,个人成绩单会默认打印到比赛存储目录/ps这个目录中,而总成绩单则需要指定打印到一个后缀名为ps的文件比赛目录结构简单说明需要注意的是这几个目录,其他目录和使用关系不大evaldata这个目录存放的是评测需要的输入和答案文件,输入文件以试题基本名X.in命名答案文件以试题基本名X.ans命名X表示是几个测试点需要的文件(如基本名为gift,那么第一个测试点的输入和答案文件分别命名为gift1.ingift1.ans)filter这个目录存放所有的评测程序,自行编写的评测程序也要放在这个目录下!!在比赛目录建立的时候系统会自动把标准插件都拷贝到这个目录中出题要求:系统只能评测符合出题要求的题选手提交程序的名称以程序基本名命名,如基本名为basin,选手可以使用C,C++,PASCAL语言,那么选手提交的程序就是basin.c,basin.cpp,basin.pas,要求选手从basin.in读取信息(如果需要读取的话),把结果写入basin.out.选手答案存储标准:答案都存在比赛目录/players/选手编号这个目录,这个目录需要自行创建,如编号为A的选手答案存在比赛目录/players/A/每个题的答案存在以基本名称命名的二级目录中,A选手的gift这个题的答案存在比赛目录/players/A/gift/.其他题以此类推比较方式可以使用标准方式,也可以自行编写评测插件,编写要求参考”插件编写规范”,要求插件统一放在比赛目录的filter目录下。