java - 如何为儿童数学测验计划提出 10 个随机数学问题?
问题描述
我正在尝试为一个提出 10 个问题的学校项目为孩子们创建一个数学程序。我无法找出在我的代码中应用循环的方式和位置。我试图在我的 enterbtnListener 和 startBtnListener 中使用 for 循环,但不幸的是没有一个工作。这是程序的输出。program_OUTPUT
这是 startBtnListener 的代码
class startBtnListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (add.isSelected()) {
ansBtn.setEnabled(true);
input.setEditable(true);
result = num1 + num2;
question = ("What is " + num1 + " + " + num2 + " = ");
questionTOP.setVisible(false);
questionHERE.setText(question);
questionHERE.setVisible(true);
input.setVisible(true);
add.setEnabled(false); //disables buttons until END button is clicked
subtract.setEnabled(false);
multiply.setEnabled(false);
beginner.setEnabled(false);
intermediate.setEnabled(false);
advanced.setEnabled(false);
} else if (subtract.isSelected()) {
ansBtn.setEnabled(true);
input.setEditable(true);
result = num1 - num2;
question = ("What is " + num1 + " - " + num2 + " = ");
questionTOP.setVisible(false);
questionHERE.setText(question);
questionHERE.setVisible(true);
input.setVisible(true);
add.setEnabled(false); //disables buttons until END button is clicked
subtract.setEnabled(false);
multiply.setEnabled(false);
beginner.setEnabled(false);
intermediate.setEnabled(false);
advanced.setEnabled(false);
} else if (multiply.isSelected()) {
ansBtn.setEnabled(true);
input.setEditable(true);
result = num1 * num2;
question = ("What is " + num1 + " * " + num2 + " = ");
questionTOP.setVisible(false);
questionHERE.setText(question);
questionHERE.setVisible(true);
input.setVisible(true);
add.setEnabled(false); //disables buttons until END button is clicked
subtract.setEnabled(false);
multiply.setEnabled(false);
beginner.setEnabled(false);
intermediate.setEnabled(false);
advanced.setEnabled(false);
} else {
ansBtn.setEnabled(false);
input.setEditable(false);
JOptionPane.showMessageDialog(null, "You need to choose below!", "PLEASE NOTE", JOptionPane.WARNING_MESSAGE);
}
}
}
这是 enterBtnListener 的代码
class enterListener implements KeyListener {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
if (beginner.isSelected()) {
num1 = (int) (Math.random() * 11);
num2 = (int) (Math.random() * 11);
} else if (intermediate.isSelected()) {
num1 = (int) (Math.random() * 9 + 11);
num2 = (int) (Math.random() * 9 + 11);
} else if (advanced.isSelected()) {
num1 = (int) (Math.random() * 17 + 13);
num2 = (int) (Math.random() * 17 + 13);
}
// checking answer is correct or wrong
while (true) {
double doubleOfInput = Double.parseDouble(input.getText()); // getting string to double
if (doubleOfInput == result) {
JOptionPane.showMessageDialog(null, "correct");
input.setText(" "); // clearing input after user entered answer
break;
} else {
JOptionPane.showMessageDialog(null, "Wrong, Try Again!");
input.setText(" ");
}
}
//generating formula
if (add.isSelected()) {
result = num1 + num2;
question = ("What is " + num1 + " + " + num2 + " = ");
} else if (subtract.isSelected()) {
result = num1 - num2;
question = ("What is " + num1 + " - " + num2 + " = ");
} else if (multiply.isSelected()) {
result = num1 * num2;
question = ("What is " + num1 + " * " + num2 + " = ");
} else {
result = num1 + num2;
question = ("What is " + num1 + " + " + num2 + " = ");
}
questionHERE.setText(question);//setting new question
}
}
如果有人可以帮助我,我将不胜感激。谢谢。
解决方案
看起来不错!我的意见是有一个设计
一个
start button
-> 听众将发起这个数学测验。A
next button
-> 监听器将有一个迭代类(实例级别)变量,你可以拥有它直到它达到你想要的计数(10 说)-> 侦听器
End button
将终止此数学测验,并可能发布结果。可能有此终止并在单独的方法中显示结果逻辑并在此处调用。(方法名:terminateQuiz(说))
下一个按钮的监听器大致如下,
class nextBtnListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
//count++;
//when count reaches 10 (say) it should call terminateQuiz
}
}
其他一切看起来都很好。。
注意: Next 按钮的原因提供了比 Enter 键更好的外观和感觉。
//快乐学习!
推荐阅读
- typescript - 具有未知键的属性的 Io-ts 接口
- python - 如何将表示为字符串的二进制数拆分为子字符串
- regex - 如何在 VSCode 的搜索和替换中匹配不包含字符串的字符串?
- react-native - Expo 无法识别 .d.ts 文件
- node.js - 用数据库中的产品组织尺寸/颜色的最佳方法
- sql - 在 SQL Server Express 中获取 SQL 实例返回错误
- python - django url dispatcher 的问题,无法解析 url
- python-3.x - 熊猫减去列匹配的数据框
- ruby-on-rails - React Rails Uncaught SyntaxError: Unexpected token '!'
- python - np.ufunc.at 和 np.ix_ 的 Numpy 多维索引