2014-11-20 75 views
0

我需要的援助,(使用NetBeans 7.4)需要帮助编译用户输入的代码

我创建一个编程小程序,我想最终用户来回答一些问题,我会在小程序。

有没有什么办法可以让用户输入“代码”(回答问题)通过GUI编译和打印出来。 (用户输入回答,提交,汇编,和我的应用程序打印,如果它是正确的还是错误的)

示例:用户需要回答

How do I print out "Hello" in java? 

,他们将不得不把

"System.out.println("Hello");" 

任何帮助将是非常美妙的,

谢谢你在前进,

+1

答案是“是的,这是可能的”,但这是一个令人难以置信的广泛问题。它最终取决于你如何制定出承认“正确”的答案,这个讨论对于诸如堆栈溢出之类的地方来说过于宽泛。 – Makoto 2014-11-20 17:44:03

+0

值得让用户输入答案,并且将它与预制字符串进行比较? – 2014-11-20 17:49:07

回答

0

那么它是可能的,但你需要定义一套针对每个问题的有效答案,比如你点

System.out.println("Hello"); 

为有效的答案,但

System.out.print("Hello"); 

System.out.printf("%s", "Hello"); 

只是提一些,从代码编译的角度来看也是有效的。

此外,您还需要清楚地定义什么是正确的或错误的答案,例如输出结果是否有新行,即printlnprint

这些只是一些复杂而广泛的问题。更不用说人类对于正确答案的理解了。

为了尽量减少这种复杂性,我建议要问的问题准确和代码提交编译和运行比较预期的结果。把你的例子,我会问

如何在Java打印出“你好”,以标准输出

然后,您将不得不在单独的进程中运行代码,只要编译正确,并阅读该进程的stdout。之后,您可以选择修剪结果并与预期结果进行比较。如果匹配,则使用者输入“代码”,该代码产生为有效输出。

这样,您的程序将验证上述所有打印语句是否正确。

要编译用户输入的代码,您可以使用Interface to invoke Java™ programming language compilers from programs

要编译除java之外的其他代码,您还需要安装它们的编译程序,如果您要验证C代码,则需要安装代码(例如GCC),您也可以从java程序运行它们的编译程序。

+0

我目前只是写它的Java语言课程,所以它只是 'System.out.println(“你好”)' 如果我只想从他们的答案编译的代码是可能的? 如果我要求他们回答上述问题,他们会回答:'System.out.println(“Hello”)',它会编译并说出代码是否正确,如果有什么意义? – 2014-11-20 23:26:39

+0

我想我会设置它有多个答案,如你在评论中提到的,谢谢你的时间,我会记住这一点,并回复,如果我需要帮助:) – 2014-11-21 00:25:02

+0

@MarkLang是的,有可能从java程序中编译Java代码,请查看我发布的链接,还必须确保您以可以编译它的方式包装答案,例如答案System。 out.println(“Hello”)需要一个分号来完成一个有效的语句,然后,单独的有效语句不能被成功编译,你将需要一个本身需要一个封闭类的封闭方法。如果您在编译过程中遇到问题,请使用目前为止的代码发布一个新问题,您将获得帮助。 – A4L 2014-11-21 22:01:39