1.算术测试。
² 实验要求:
编写一个算书测试小软件,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MainClass是软件的主类。
package lzy;
public class MainClass
{ public static void main(String args[])
{
ComputerFrame frame;
frame=new ComputerFrame("算术测试 ");//创建窗口,其标题为:算术测试
}
}
package lzy;
import java.awt.*;
import java.awt.event.*;
public class ComputerFrame extends Frame implements ActionListener
{
TextField textOne,textTwo,textResult;
Button getProblem,giveAnwser;
Label operatorLabel,message;
Teacher teacher;
ComputerFrame(String s)
{ super(s);
teacher=new Teacher();
setLayout(new FlowLayout());
textOne=new TextField(10); //创建textOne,其可见字符长是10
textTwo=new TextField(10); //创建textTwo,其可见字符长是10
textResult=new TextField(10); //创建textResult,其可见字符长是10
operatorLabel=new Label("+");
message=new Label("你还没有回答呢");
getProblem=new Button("获取题目");
giveAnwser=new Button("确认答案");
add(getProblem);
add(textOne);
add(operatorLabel);
add(textTwo);
add(new Label("="));
add(textResult);
add(giveAnwser);
add(message);
textResult.requestFocus();
textOne.setEditable(false);
textTwo.setEditable(false);
getProblem.addActionListener(this); //将当前窗口注册为getProblem的ActionEvent事件监视器
giveAnwser.addActionListener(this); //将当前窗口注册为giveAnwser的ActionEvent事件监视器
textResult.addActionListener(this); //将当前窗口注册为textResult的ActionEvent事件监视器
setBounds(100,100,450,100);
setVisible(true);
validate();
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==getProblem) //判断事件源是否是getProblem
{
int number1=teacher.giveNumberOne(100);
int number2=teacher.giveNumberTwo(100);
String operator = teacher.giveOperator();
textOne.setText(""+number1);
textTwo.setText(""+number2);
operatorLabel.setText(operator);
message.setText("请回答");
textResult.setText(null);
}
if(e.getSource()==