Cena代码评测软件系列之三:让选手实时查询评测结果

上篇文章讲到约定源文件注释格式来提取正确文件名从而使用Cena评测Java代码,这篇文章分享使用php解析Cena生成的xml评测结果文件的方法从而使得选手能够在一轮评测后查看自己的成绩。

首先我们发现Cena把评测结果放在/试题/src/机器号/result.xml文件里,而且Cena查看成绩那个界面就是根据这个xml文件展示成绩的。

Cena评测结果窗口
Cena评测结果窗口

根据枚举测试我发现了status代表的含义,写在了下面的php代码里。所以我们只要解析这个xml并把各个值呈现出来就可以实现我们的目的了。
下面是主要的php代码:

这是两个辅助html文件:

这个页面效果起来是这个样子的:(如果你觉得界面好丑的话请无视之)

首页:注意事项及查询入口
首页:注意事项及查询入口

查询界面
查询界面
查询结果
查询结果

注意:由于是php实现的所以需要一个php环境,机房电脑都是同一个局域网,我使用xampp结果由于机器操作系统不符合啊什么的原因不能安装,幸好我机智早就准备了好几个php环境,以致于我忘记了当时用的是phpstudy还是appserv。。。
可能javascript也可以实现解析xml,那样的话就不需要php环境了,更方便些。

Cena是一个本地评测工具,本来就不适合在线用嘛。在线评测环境怎么搭建呢,PC2、OpenJudge…有待研究……


“Cena代码评测软件系列之三:让选手实时查询评测结果”的5个回复

Loading...
  1. 代码全看了一遍,感觉你下次直接把HTML部分去了,展示核心PHP函数方法就行了。
    XML文档内容没有给出,不过大概看懂了。
    Javscript可以实现,不用PHP环境。

发表评论

电子邮件地址不会被公开。 必填项已用*标注