如何构建模仿topcoder,codingbat等的软件?

时间:2011-11-06 20:47:18

标签: java

我想构建一个可下载的桌面软件,向用户显示一个带有示例问题的GUI。

enter image description here

然后,用户继续编写解决方案并将其粘贴到空白屏幕。

程序对其进行评估并为用户提供分数。用户进入下一级别。

我的问题是,这些网站如何评估程序的正确性?我不是要衡量绩效。

他们是编写自己的编译器还是解析文本并将其提供给javac并提取输出以及在代码中搜索一些必需的关键字。

2 个答案:

答案 0 :(得分:1)

您应该使用标准编译器编译代码,然后运行程序,为其提供预定义(或动态生成)的输入,并验证输出是否与来自已提供的已知工作解决方案的输出相同。问题的创造者。

答案 1 :(得分:0)

嗯,问题陈述总是有明确定义的输入和输出格式。 你应该:

  • 编译代码
  • 使用您的输入
  • 运行它
  • 获取输出
  • 将其与您的输出(具有该程序的正确答案)进行比较

请注意,您有输入和正确的输出。

另外,请注意您可以使用diff,这是一个带有2个文件并输出差异的unix程序(在diff的输出中有任何内容意味着程序不正确)。

另外,请注意您应该为程序设置超时并清理它。这可以通过禁止一些库和系统调用来完成(编写一个在代码中查找它们的程序,这并不难)。

希望有所帮助。