以文本方式查看主题

-  趣题之家  (http://qthome.org/bbs/index.asp)
--  评测系统  (http://qthome.org/bbs/list.asp?boardid=53)
----  自动评测程序生成器(bat格式) (更新:11.20~21)  (http://qthome.org/bbs/dispbbs.asp?boardid=53&id=216)

--  作者:趣题之主
--  发布时间:11/20/2004 5:34:06 PM

--  自动评测程序生成器(bat格式) (更新:11.20~21)


点击浏览该文件


2004.11.21主要更新内容:


去掉了批处理运行过程中无用的输出,并增加输出测试点编号。


2004.11.20主要更新内容:


如果程序输入文件名为 可执行程序名+".in",输出文件名为 可执行程序名+".out" ,则可以在输入程序读入/输出文件时回车略过。


将来考虑用time和重定向实现输出运行时间。


卡时仍然是一个问题,我没有掌握这项技术,希望有能力者一同参与到这个小程序的设计中来。


使用说明:


自动评测程序生成器(bat格式) 使用说明
原理:本程序根据您输入的有关题目的输入输出数据文件名及相关信息,生成.bat文件,把标准的输入数据文件复制,并更名为程序读入的文件,执行程序,并将运行结果与标准的输出运用 fc 命令进行比对。
优点:很多人都运用写bat的方法利用现有数据简单评测自己的程序,但是即便在bat文件中应用了循环命令,bat程序的设计仍然比较复杂,浪费了许多时间。而现在的一些评测软件编写配置文件困难,且运行平台有限制,多数评测软件在Windows 98下不能用,而这个生成器和他生成的.bat文件在Dos和Windows下都能运行(其实是用Pascal写的很短的程序),配置一个.bat文件只需6步,大大节省了时间。
使用方法:
    本程序使用方法简单,下面举例来说明该程序的使用方法:
  例: 现有题目,要求生成的可执行文件为 abcd.exe ,程序从abcd.in读入数据,结果输出到 abcd.out。在相对路径为 data 的目录中存放着测试数据。测试数据的输入文件名为 abcd1.in abcd2.in abcd3.in ... abcd9.in,与之对应的标准输出文件为 abcd1.out abcd2.out abcd3.out ... abcd9.out。
    现在就可以应用本程序建立用于评测的批处理程序了。
       (1)运行本程序。 (建议您在命令行状态下运行此程序,当然,即便在Windows中直接运行,该程序也能正常工作。
       (2)现在屏幕显示Step 1(不要看程序给的说明和提示,鄙人英语水平有限,还没有规范提示),在这一步,你需要输入要可执行文件名。如例中的情况,此步应该输入 abcd (最好不要加上.exe,以方便使用下面的默认选项) ,回车。
       (3)现在你进入Step 2,这一步需要你给出程序读入数据的文件名,例中应该输入 abcd.in(如果你的输入文件名为可执行程序名+.in,您可以直接按回车,使用默认选项)
       (4)回车进入 Step 3,你应该给出程序输出的文件名,例中应该输入 abcd.out(如果你的输入文件名为可执行程序名+.out,您可以直接按回车,使用默认选项)
       (5)进入Step 4后,你需要给出测试数据输入文件名的模版,把标准输入文件名中表示序号的一位变为%。例子中的情况此处应该输入 data\\abcd%.in
       (6)输入合法数据并回车,进入Step 5,与上部类似,该步输出标准输出文件文件名,同样用%替换序号。例: data\\abcd%.out
       (7)下面就是最后一步了,你只需要输入你的测试数据序号从几开始,到几结束,比如例子中的情况你应该输入 1 (回车) 9 (回车)。这样,程序自动退出,在当前目录下生成 makeout.bat 文件,表明生成成功。
     生成的makeout.bat文件使用方法:
       (1)makeout.bat 可以直接运行,结果将被输出到屏幕。
       (2)如果你需要将结果输出到文件,你可以应用重定向方式,即使用>号。例如,如果想将结果输出到 result.txt ,你需要在命令行状态下输入 makeout.bat > result.txt
       (3)输出说明:
            输出文件内容包含程序执行情况,fc命令结果。为了保证不影响原测试数据,该批处理文件将复制输入文件,如果文件成功,会反馈 1 file(s) copied.,随后执行程序,如果程序执行发生错误,下面会报告发生的错误,否则会显示fc命令的结果,如果输出FC: no differences encountered ,表明你的程序正确,否则fc将自动提示你出错的位置。


由于这个生成器刚刚编写,还没有经历过较多测试,运行中可能会出现一些意想不到的问题,如果您遇到问题或对该程序的使用还有其他问题,请您到趣题之家论坛(http://www.qthome.org/bbs/)提出。


当然,尽管Pascal编写应用程序对应用程序的功能造成了较大限制,但是利用现有的 Turbo Pascal 还可以编写出功能相对强大的生成器,我们将尽可能编写更方便、更强大的程序,请您关注此程序的更新。


有关此程序的问题和建议可以到趣题之家论坛提出。
论坛访问方式:       http://www.qthome.org/bbs/


趣题之家 保留所有版权  最后更新 2004.11.21


[此贴子已经被作者于2004-11-20 23:07:51编辑过]

--  作者:悠游
--  发布时间:11/23/2004 3:59:54 PM

--  

按要求制作,评测效果不错,最好在命令行模式下,否则评测结果会一闪而过。


--  作者:趣题之主
--  发布时间:11/23/2004 7:53:44 PM

--  自动评测程序生成器(bat格式) (更新:11.20~21)
推荐您使用重定向啦,输出到文件方便查看。


网上贸易 创造奇迹! 阿里巴巴 Alibaba

Powered By Dvbbs Version 7.1.0
Copyright ©2003 - 2006 QTHome.Org
页面执行时间 00.10938 秒, 3 次数据查询
本论坛采用阿里巴巴支付宝网上银行支付系统,安全、可靠、便捷