《Java算术测试》由会员分享,可在线阅读,更多相关《Java算术测试(7页珍藏版)》请在金锄头文库上搜索。
1、 组件及事件处理1 实验1 算术测试一 ,实验目的 学习处理ActionEvent 事件。二 , 实验要求 编写一个算数测试小软件,用来训练小学生的算数能力。程序由3个类组成,其中Teacher类对象负责给出算数题目,并判断回答者的正确答案是否正确;ComputerFrame类对象负责为算术提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MailClass是软件的主类。 三 , 相关知识点简介 Java包含了许多支持GUI设计的类,如按钮,菜单,列表,文本框等组件类,同时它还包含窗口,面板等容器类。在学习处理事件时,必须很好
2、地掌握事件源,监视器,处理事件的接口这三个类。四 编写程序代码Teacher.javapublic class Teacherint numberOne,numberTwo;String operator=;boolean right;public int giveNumberOne(int n)numberOne =(int)(Math.random()*n)+1;return numberOne;public int giveNumberTwo(int n)numberTwo=(int)(Math.random()*n)+1;return numberTwo;public String g
3、iveOperator()double d=Math.random();if(d=0.5) operator=+; else operator=-; return operator;public boolean getRight(int answer)if(operator.equals(+)if (answer=numberOne+numberTwo)right=true;else right=false;else if(operator.equals(-)if (answer=numberOne-numberTwo)right=true;elseright=false;return rig
4、ht;ComputerFrame.javaimport java.awt.*;import java.awt.event.*;public class ComputerFrame extends Frame implements ActionListenerTextField textOne,textTwo,textResult;Button getProblem,giveAnwser;Label operatorLabel,message;Teacher teacher;ComputerFrame(String s)super(s);teacher=new Teacher();setLayo
5、ut(new FlowLayout();textOne=new TextField(10);textTwo=new TextField(10);textResult=new TextField(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(textRes
6、ult);add(giveAnwser);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);getProblem.addActionListener(this);giveAnwser.addActionListener(this);textResult.addActionListener(this);setBounds(100,100,450,100);setVisible(true);validate();addWindowListener(new Wind
7、owAdapter()public void windowClosing(WindowEvent e)System.exit(0););public void actionPerformed(ActionEvent e)if(e.getSource()=getProblem)int number1=teacher.giveNumberOne(100);int number2=teacher.giveNumberTwo(100);String operator=teacher.giveOperator();textOne.setText(+number1);textTwo.setText(+nu
8、mber2);operatorLabel.setText(operator);message.setText(请回答);textResult.setText(null);if(e.getSource()=giveAnwser)String answer=textResult.getText();tryint result=Integer.parseInt(answer);if(teacher.getRight(result)=true)message.setText(你回答正确);elsemessage.setText(你回答错误);catch(NumberFormatException ex)message.setText(请输入数字字符);textResult.requestFocus();validate();MainClass.javapublic class MainClass public static void main(String args)ComputerFrame frame;frame=new ComputerFrame(算术测试); 五, 运行并截图六 ,实验小结1,三个Java文件一定要放在同一个文件中,然后只需编译MainClass类并运行就可以了2,此次使用Eclipse,此前没用过,不应该盲目的进入然后做这个实验,会导致很多不必要的小错误。