实验四Java语言解决算法问题

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四Java语言解决算法问题(4学时)

一、实验目的

(1)熟悉Java图形用户界面GUI类;

(2)学习处理ActionEvent事件;

(3)掌握事件源、监视器、处理事件的接口这三个概念;

(4)使用Java语言解决算法问题。

二、实验学时:2学时

三、实验要求

(1)编写一个训练算术能力的测试软件;

(2)Teacher类对象给出题目,判断答案是否正确;ComputerFrame类对象提供题目GUI 视图;MainClass作为主类。

四、实验原理

(1)事件源指的是能够产生事件的对象,如文本框、按钮等;

(2)监视器指的是对事件源进行监视的对象,以便对发生的事件进行处理;

(3)Java语言使用接口回调技术设计了它的处理事件模式。事件源增加监视的方法addXXXListener(XXXListener listener)中的参数是一个接口,listener可以引

用任何实现了该接口的类所创建的对象,当事件源发生事件时,接口listener立

刻回调被类实现的接口中的某个方法。

五、实验内容

课堂实验任务:请按模板要求,将【代码】替换为Java程序代码。

1.题目一算术测试

模板代码:Teacher.java

public class Teacher

{ int numberOne,numberTwo;

String operator="";

boolean right;

public int giveNumberOne(int n)

{ numberOne=(int)(Math.random()*n)+1;

return numberOne;

}

public int giveNumberT wo(int n)

{ numberTwo=(int)(Math.random()*n)+1;

return numberTwo;

}

public String giveOperator()

{ 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;

else

right=false;

}

return right;

}

}

模板代码:ComputerFrame.java

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=【代码1】 //创建textOne,其可见字符长是10

textTwo=【代码2】 //创建textTwo,其可见字符长是10

textResult=【代码3】 //创建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);

【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视器

【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监视器

【代码6】//将当前窗口注册为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(【代码7】) //判断事件源是否是getProblem

{ int number1=teacher.giveNumberOne(100);

int number2=teacher.giveNumberTwo(100);

String operator=teacher.givetOperator();

textOne.setText(""+number1);

textTwo.setText(""+number2);

相关文档
最新文档