cena評測系統

cena評測系統

Cena評測系統,最受歡迎的信息學競賽離線評測系統。

它是開放源程式的信息學競賽評測系統,能滿足大多數程式設計競賽的測評需求。

其體積很小,0.8.1版大小僅6.8MB。

特色功能,注意事項,自定義校驗器,版本,

特色功能

通過區域網路自動收取選手程式。
高效率的數據檔案配置工具。
自動選用對應的編譯器來編譯選手程式,也能使用解釋器或直接評測執行檔。
能準確測出選手程式的運行時間和記憶體使用量,並可加入對運行時間和記憶體使用的限制。
自動比較選手程式的輸出和標準輸出的差異,並能將兩者出現差異的具體位置告訴評測者。
支持使用自定義校驗器,可評測有多解的試題。
可對評測結果進行統計分析。
可將評測結果以各種樣式列印或導出。

注意事項

Cena 0.8.1 安裝程式: cena-0.8.1-20110710-setup.exe。如果它崩潰,就用這個補丁 cena-0.8.2-patch.zip 里的檔案覆蓋到安裝目錄。

自定義校驗器

Cena評測軟體提供了使用自定義校驗器進行評分的功能。可以使用C++或者Pascal進行編寫,其中Pascal需要載入軟體所提供的運行庫。
C++自定義校驗器(SPJ)參考代碼:
#include <iostream>#include <cstdio>#define Dataname Name//評測題目的檔案名稱(不含後綴)using namespace std;FILE *fscore,*freport,*fstd,*fin,*fout;int Judge(){    int re=0;//用於返回得分    //在此補充評測代碼,下面為NOI2011Day1T2智慧型車比賽的SPJ代碼    double x,y,dif;    fscanf(fstd,"%lf",&x);    fscanf(fout,"%lf",&y);    dif=(x>y)?(x-y):(y-x);    re=dif<=0.000001;    re*=10;    fprintf(freport,"Std:%.10lf\nYourAns:%.10lf\nDiffer:%.10lf\n",x,y,dif);    //返回評測後對話框顯示內容,可無內容    return re;}int main(int argc,char* argv[]){    fscore=fopen("score.log","w");//打開得分檔案    freport=fopen("report.log","w");//打開報告檔案    fstd=fopen(argv[2],"r");//打開測試點標準輸出檔案    int score=atoi(argv[1]);//取得測試點的分數    fin=fopen(DataName".in","r");//原始數據    fout=fopen(Dataname".out","r");//用戶輸出    fprintf(fscore,"%d",Judge());//返回分數    fclose(fscore);//關閉得分檔案    fclose(freport);//關閉報告檔案        return 0;}

版本

2011-08-21 發布0.8.2版本。但願它不再崩潰。(截止2013年8月1日最新版)
2011-07-10 發布0.8.1版本,不再誤報為病毒
2011-07-02 發布0.8版本,解決Windows 7卡死的問題和多核CPU測時間不準確的問題
2008-05-12 發布0.6.3版本
200?-??-?? 發布0.6.2版本
200?-??-?? 發布0.6.1版本
2006-11-29 發布0.6版本
2006-06-11 發布0.5.3版本
2005-05-24 發布0.5.2版本
2005-??-?? 發布0.5.1版本
2005-??-?? 發布0.5版本
2004-12-20 發布0.3.3版本
2004-??-?? 發布0.3.2版本
2004-??-?? 發布0.3.1版本
2004-??-?? 發布0.3版本
2004-??-?? 重新設計用戶界面,並開放原始碼
2004-??-?? Initial release

相關詞條

熱門詞條

聯絡我們