我想构建一个可下载的桌面软件,向用户显示一个带有示例问题的GUI。
然后,用户继续编写解决方案并将其粘贴到空白屏幕。
程序对其进行评估并为用户提供分数。用户进入下一级别。
我的问题是,这些网站如何评估程序的正确性?我不是要衡量绩效。
他们是编写自己的编译器还是解析文本并将其提供给javac并提取输出以及在代码中搜索一些必需的关键字。
答案 0 :(得分:1)
您应该使用标准编译器编译代码,然后运行程序,为其提供预定义(或动态生成)的输入,并验证输出是否与来自已提供的已知工作解决方案的输出相同。问题的创造者。
答案 1 :(得分:0)
嗯,问题陈述总是有明确定义的输入和输出格式。 你应该:
请注意,您有输入和正确的输出。
另外,请注意您可以使用diff
,这是一个带有2个文件并输出差异的unix程序(在diff的输出中有任何内容意味着程序不正确)。
另外,请注意您应该为程序设置超时并清理它。这可以通过禁止一些库和系统调用来完成(编写一个在代码中查找它们的程序,这并不难)。
希望有所帮助。