我正在写这个学期的最后一个课程,我想得到一些意见。我将创建一个GUI,让用户尝试解决基本的数学问题。我在考虑使用hashmap,因为它包含一个键和一个值。我的想法是我可以为用户显示问题,然后将其与给出的答案进行比较。问题必须随机出现。所以你们认为散列图是要走的路还是你认为可能有更好的方法来实现它? 感谢
答案 0 :(得分:1)
我认为最好使用存储问题和答案的类,而不是列出它们。因此,您还可以封装例程来测试答案是否正确以及您需要的任何其他内容。
答案 1 :(得分:1)
如果您想测试用户的基本数学问题,我建议动态提出问题数据(评估答案也是如此)。如果您有不同类型的问题(例如,除法,指数,对数等),您应该为这些问题编写类。所有这些都可以从一个抽象的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,您可以实例化几种不同类型的问题对象并将它们存储在列表中。由于每个对象都包含问题和答案,并扩展了抽象question
类,因此您将拥有一个适当且易于使用的界面。
这当然只是一个建议。关于这种方法会有几种不同的意见。