您的位置:首页 > 编程语言 > Java开发

JAVA--第十一周实验--编写一个算术测试小软件

2012-11-08 22:32 417 查看
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 编写一个算术测试小软件。

* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:程序组成:编写 一个Teacher类负责给出算术题目,随机给出两个整数并进行运算,并判断回答者的答案是否正确;
* 输入描述:编写一个GUI类ComputerFrame,回答者可以通过GUI看到题目并给出答案;编写一个程序执行入口运行该软件。
* 输入描述:GUI界面如下所示。
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
package ma;

public class TestMain {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

ComputerFrame frame = new ComputerFrame("算术测试");

}

}
   
package ma;

public class Teacher{

int numberone,numbertwo;

String operator="  ";

boolean right;

public int getnumberone()
{
numberone= (int) (Math.random()*100);

return numberone;
}

public int getnumbertwo()
{
numbertwo= (int) (Math.random()*100+1);

return numbertwo;
}

public String getoperator()
{

int i=(int)(Math.random()*10+1);

if(i>0&&i<=3)
{
operator="+";

}
if(i>3&&i<=5)
{
operator="-";

}

if(i>5&&i<=8)
{
operator="*";

}
if(i>8&&i<=11)
{
operator="/";

}
return operator;

}

public boolean check(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;
}
else 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;
}

}
 
package ma;

import java.awt.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;

@SuppressWarnings("serial")
public class ComputerFrame extends JFrame implements ActionListener{

Teacher teacher;

TextField text1,text2,textresult;

Button getquestion,ensureanswer;

Label label1,labelanswer,label2;

ComputerFrame(String s)
{
super(s);//命名

teacher = new Teacher();

setLayout(new FlowLayout());

getquestion= new Button("获取题目");

text1 = new TextField(10);//创建textOne,其可见字符长是10

text2 = new TextField(10);

textresult= new TextField(10);

label1= new Label("+");

label2= new Label ("=");

labelanswer= new Label("你还没有答案呢 ?");

ensureanswer= new Button("确认答案");

add(getquestion);
add(text1);
add(label1);
add(text2);
add(label2);
add(textresult);
add(getquestion);
add(ensureanswer);
add(labelanswer);
//	textresult.requestFocus();

text1.setEditable(false);//该方法设置文本框的可编辑性

text2.setEditable(false);

getquestion.addActionListener(this);//将当前窗口注册为getquestion的ActionEvent事件监视器

ensureanswer.addActionListener(this);

textresult.addActionListener(this);

setBounds(100,100,450,100);//设置出现屏幕上时的初始位置

setLocationRelativeTo(null);//居中

setVisible(true);//窗口的可见性

validate();

}

@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==getquestion)
{
int numberone= teacher.getnumberone();

int numbertwo= teacher.getnumbertwo();

String operator = teacher.getoperator();

text1.setText(""+numberone);//设置文本框中为参数字符串指定的文本

text2.setText(""+numbertwo);

label1.setText(operator);

labelanswer.setText("请回答");

textresult.setText(null);

}
if(e.getSource()==ensureanswer)
{
String answer = textresult.getText();

try{ int result = Integer.parseInt(answer);
if(teacher.check(result)==true){
labelanswer.setText("你回答正确");
}
else{
labelanswer.setText("你回答错误");
}
}
catch(NumberFormatException x){
labelanswer.setText("请输入数字字符");
}

//textresult.requestFocus();

validate();//确保组件具有有效的布局

}

}

}
 

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐