前言:
HZNUOJ是杭州师范大学ACM程序设计竞赛实验室几位大佬在HUSTOJ基础上开发的一个OJ平台,界面比较友好,在Github基于GPL协议开放项目源代码。本教程介绍管理端关于试题和比赛创建修改的操作说明。
1.登陆管理端
使用具有助教权限以上的账号登陆HZNUOJ,点击Admin进入管理后端,选择Problems中的Add Problem添加题目


2.创建试题
编写试题的标题,题目描述,时间内存限制,输入描述,输出描述,点击Add a sample可以添加一个新的样例数据,Remove the last sample可以移除最后一个样例数据,show after trying可以设置这个样例在几次尝试后会被展示(一般是某些题目的不容易被想到的坑点,非必须),如果是 0 的话表示直接出现在题目当中,更多的测试数据可以不在这里写,而是等到题目创建后继续添加。


当需要有题目描述的提示或者对样例的解释可以在Hint中编写(非必需),当题目是special judge时将special judge选择为Y。题目作者一般为你的姓名,Source相同的题目会放在一个题目集当中,可以把一场比赛/考试的新题目命名为同一个Source。

点击Submit就可以创建这个试题了。
3.添加题目测试数据
当创建题目完成后,可以进入题目界面点击Test Data继续添加题目的数据,测试数据的命名为 *.in,*.out,二者一一对应,不可重复,为了便于后续的验题,建议命名为数字递增的形式,如第一个测试数据输入命名为test1.in,输出命名为test2.out,同时为了便于学生对于不同层次的数据反馈的错误找到自己的代码的BUG,建议将简单、数据范围小的数据放在前面,将含有特殊边界条件、数据量大的数据放在后面。在输入框中输入文件名点击Create创建一个测试数据的输入/输出,并将你出的数据输入/输出复制到对应的文件当中保存。



4.完善题目
对于一个题目来说,少不了验题来保证其正确与严谨,当在创建题目后要修改题目描述可以点击Edit进入编辑界面,这时的界面显示和创建题目(第二部分)时一样,编辑完成后选择Submit提交更新。当发现测试数据有误需要修改可以执行与上面第三部分相同的操作流程。

5.Special Judge
暂未编写,可以参考其他使用Special Judge题目的判题编写方式编写题目,数据与测试程序。
6.放置题目or创建比赛
新出的题目默认是 Reserved 状态,意味着没有出题权限的账号是无法查看提交这些题目,这是为了避免比赛的题目外泄或者没有出好的题目就被AC。当一个题目已经检查无误并且确认不是比赛用题可以在后台改变题目状态Change Status将它放到公开的题目集当中。

当题目创建好之后就可以用它来添加比赛了(需要使用有这个权限的账号)。在后台点击Contest-Add a Contest创建一场新的比赛,编写比赛标题,开始结束时间,比赛类型(查看FAQ后选择),比赛描述创建一场新的比赛。比赛题目要在创建完成之后才能添加。

比赛题目点击+号按钮新增,并填写正确的题号,合理的题目分数,可以使用的语言。添加完成后点击Submit提交更新。

已经创建好的比赛也可以在比赛界面点击Edit修改,编辑界面操作与上图相同。

PS:
当使用管理权限的账号时请注意自己的操作,权限越大意味着责任越大,合理使用,不要随意滥用,不可将账号未经授权外借或用于作弊,否则将被收回权限。