java - 使用 hashmap 进行问答程序?

标签 java user-interface hashmap

我正在编写本学期的期末计划,我想就某些事情征求意见。我将创建一个 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/

相关文章:

java - 如何在 iBatis 中获取排序后的结果?

android - android 中的 Spinner 和 hashmap

java - Comparator 的 compare() 函数从 Map 中删除重复项

java - maven未将依赖项打包到jar中

java - 谷歌眼镜语音识别

user-interface - 对象编辑和 isDirty() 标志

java - Java图形编程绘制图像错误

ios - 根据另一个的增长缩小 UITextField 的宽度

java - 遍历嵌套的 hashmap

java - Android Studio:“找不到声明去”