我正在编写本学期的期末计划,我想就某些事情征求意见。我将创建一个 GUI,让用户尝试解决基本的数学问题。我正在考虑使用 HashMap ,因为它包含一个键和一个值。我的想法是我可以向用户显示问题,然后将其与给出的答案进行比较。问题必须是随机出现的。那么你们认为 hashmap 是可行的方法还是您认为可能有更好的方法来实现它? 谢谢
最佳答案
如果您想测试用户的是基本数学问题,我建议动态地提出问题数据(评估答案也是如此)。如果您有不同类型的问题(例如除法、指数、对数等),您应该为这些问题编写类(class)。它们都可以从抽象 Question
类继承。
所以类似:
public abstract class Question{
// ... general question fields and methods.
String question;
double answer;
public boolean evaluate(double input){
if (input == this.answer) { return true; }
else { return false; }
}
}
public class LogarithmQ extends Question{
// Declare relevant fields such as x, y, ... , answer
// Define a constructor that generates random numbers to populate fields
// so that every question 'object' is different.
// also have an "evaluate()" method that
// takes as input the user's answer
// and returns true/false based on the correct answer value
}
public class AdditionQ extends Question{
// similar stuff here
}
如果您希望应用程序在每次运行时自动生成新数据,则此方法将非常有用。
现在对于 GUI,您可以实例化几种不同类型的问题对象并将它们存储在列表中。由于每个对象都包含问题和答案,并扩展了抽象问题
类,因此您将拥有一个正确且易于使用的界面。
当然,这只是一个建议。对于这种方法会有多种不同的意见。
关于java - 使用 hashmap 进行问答程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20133313/